Решение готово к публикации: update tools.py
This commit is contained in:
@@ -9,11 +9,11 @@ from vectorstore import create_vectorstore
|
|||||||
|
|
||||||
def _format_local_docs(results: list[Any]) -> str:
|
def _format_local_docs(results: list[Any]) -> str:
|
||||||
if not results:
|
if not results:
|
||||||
return "Source: qdrant\nNo relevant local documents found."
|
return "Источник: chromadb\nНет релевантных локальных документов."
|
||||||
|
|
||||||
parts = ["Source: qdrant"]
|
parts = ["Источник: chromadb"]
|
||||||
for index, doc in enumerate(results, start=1):
|
for index, doc in enumerate(results, start=1):
|
||||||
source = doc.metadata.get("source", "unknown")
|
source = doc.metadata.get("source", "неизвестно")
|
||||||
parts.append(f"{index}. ({source}) {doc.page_content}")
|
parts.append(f"{index}. ({source}) {doc.page_content}")
|
||||||
return "\n".join(parts)
|
return "\n".join(parts)
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ def _format_local_docs(results: list[Any]) -> str:
|
|||||||
@tool
|
@tool
|
||||||
def search_local_kb(query: str, top_k: int = 3) -> str:
|
def search_local_kb(query: str, top_k: int = 3) -> str:
|
||||||
"""Search the local ChromaDB knowledge base for internal course notes and local documents."""
|
"""Search the local ChromaDB knowledge base for internal course notes and local documents."""
|
||||||
vectorstore = create_vectorstore()
|
collection = create_vectorstore()
|
||||||
retriever = vectorstore.as_retriever(search_kwargs={"k": top_k})
|
retriever = collection.as_retriever(search_kwargs={"k": top_k})
|
||||||
results = retriever.invoke(query)
|
results = retriever.invoke(query)
|
||||||
return _format_local_docs(results)
|
return _format_local_docs(results)
|
||||||
|
|
||||||
@@ -32,11 +32,11 @@ def web_search(query: str) -> str:
|
|||||||
"""Search the web with Tavily for fresh facts, current news, or anything not covered by local documents."""
|
"""Search the web with Tavily for fresh facts, current news, or anything not covered by local documents."""
|
||||||
api_key = os.getenv("TAVILY_API_KEY")
|
api_key = os.getenv("TAVILY_API_KEY")
|
||||||
if not api_key:
|
if not api_key:
|
||||||
return "Source: tavily\nTAVILY_API_KEY is not set, so web search is unavailable."
|
return "Источник: tavily\nTAVILY_API_KEY не задан, поиск в интернете недоступен."
|
||||||
|
|
||||||
search_tool = TavilySearch(
|
search_tool = TavilySearch(
|
||||||
max_results=5,
|
max_results=5,
|
||||||
topic="general",
|
topic="general",
|
||||||
)
|
)
|
||||||
result = search_tool.invoke({"query": query})
|
result = search_tool.invoke({"query": query})
|
||||||
return f"Source: tavily\n{result}"
|
return f"Источник: tavily\n{result}"
|
||||||
|
|||||||
Reference in New Issue
Block a user