mirror of
https://github.com/arkorty/B.Tech-Project-III.git
synced 2026-04-19 12:41:48 +00:00
26 lines
1.0 KiB
Python
26 lines
1.0 KiB
Python
from tavily import TavilyClient
|
|
from config import TAVILY_API_KEY
|
|
|
|
class TavilySearchTool:
|
|
name = "tavily_search"
|
|
|
|
def __init__(self):
|
|
self.client = TavilyClient(api_key=TAVILY_API_KEY)
|
|
|
|
async def execute(self, query: str, search_depth: str = "basic") -> dict:
|
|
try:
|
|
response = self.client.search(
|
|
query=query, search_depth=search_depth,
|
|
include_answer=True, max_results=5
|
|
)
|
|
results = [{"title": r.get("title", ""), "content": r.get("content", ""), "url": r.get("url", "")}
|
|
for r in response.get("results", [])]
|
|
return {
|
|
"query": query,
|
|
"answer": response.get("answer", ""),
|
|
"results": results,
|
|
"summary": response.get("answer", results[0]["content"][:200] if results else "No results")
|
|
}
|
|
except Exception as e:
|
|
return {"query": query, "answer": "", "results": [], "summary": f"Search failed: {str(e)}"}
|