Subimission / submission /tools /tools_web_scrapper.py
TPey
Add application file
b156b8a
Raw
History Blame Contribute Delete
1.61 kB
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
from duckduckgo_search import DDGS
from tools.interfaces.interface_wikipedia_search import WikipediaSearchInterface
class SearchTool(WikipediaSearchInterface):
"""
Classe concrète qui implémente l'interface WikipediaSearchInterface.
Fournit des méthodes de recherche via Wikipedia et DuckDuckGo.
"""
def __init__(self):
self.wikipedia_tool = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
def query_wikipedia(self, query: str) -> str:
"""
Fait une recherche Internet avec DuckDuckGo (backend='api') et retourne 3 résultats.
"""
try:
result = self.wikipedia_tool.run(query)
return f"(Wikipedia) Résumé : {result}"
except Exception as e:
return f"(Wikipedia) Erreur : {e}"
def web_search(self, query: str) -> str:
"""
Fait une recherche Internet avec DuckDuckGo (backend='api') et retourne 3 résultats.
"""
try:
with DDGS() as ddgs:
results = ddgs.text(query, max_results=3, backend="api")
if not results:
return "Aucun résultat trouvé."
output = ""
for i, r in enumerate(results, start=1):
output += f"{i}. {r['title']}\n{r['href']}\n{r['body']}\n\n"
return output.strip()
except Exception as e:
return f"Erreur lors de la recherche : {e}"