From 758a8077241bc4079a5c243ff29909f8f1d9956d Mon Sep 17 00:00:00 2001 From: lonpatovaadelina Date: Thu, 4 Jun 2026 16:19:42 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0:=201)=20=D0=92=20agent.py=20=D1=80=D0=B5=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D1=84=D1=83?= =?UTF-8?q?=D0=BD=D0=BA=D1=86=D0=B8=D1=8E=20main()=20=D1=81=20=D1=86=D0=B8?= =?UTF-8?q?=D0=BA=D0=BB=D0=BE=D0=BC=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/agent.py b/agent.py index 112085c..f411e57 100644 --- a/agent.py +++ b/agent.py @@ -63,15 +63,15 @@ agent = initialize_agent( def main(): print("RAG Agent with ChromaDB and Tavily Web Search") print("Type 'exit' to quit\n") - + while True: query = input("Запрос: ").strip() if query.lower() == "exit": break - + if not query: continue - + try: response = agent.run(query) print(f"\n{response}\n") @@ -79,4 +79,56 @@ def main(): print(f"Error: {str(e)}\n") if __name__ == "__main__": - main() \ No newline at end of file + main() +``` + +```python +# main.py + +import os +from dotenv import load_dotenv +from langchain_community.tools.tavily_search import TavilySearchResults +from langchain.tools import tool +from vectorstore import get_vectorstore + +load_dotenv() +TAVILY_API_KEY = os.getenv("TAVILY_API_KEY") +if not TAVILY_API_KEY: + raise ValueError("TAVILY_API_KEY not found in .env file") + +vectorstore = get_vectorstore() + +@tool +def search_local_kb(query: str) -> str: + """Search local knowledge base using ChromaDB.""" + retriever = vectorstore.as_retriever(search_kwargs={"k": 3}) + docs = retriever.get_relevant_documents(query) + return "\n\n".join([doc.page_content for doc in docs]) + +@tool +def web_search(query: str) -> str: + """Search the web using Tavily.""" + search = TavilySearchResults(tavily_api_key=TAVILY_API_KEY, max_results=3) + results = search.run(query) + return "\n\n".join([result["content"] for result in results]) +``` + +```python +# tools.py + +import os +from dotenv import load_dotenv +from langchain_community.tools.tavily_search import TavilySearchResults +from langchain.tools import tool + +load_dotenv() +TAVILY_API_KEY = os.getenv("TAVILY_API_KEY") +if not TAVILY_API_KEY: + raise ValueError("TAVILY_API_KEY not found in .env file") + +@tool +def web_search(query: str) -> str: + """Search the web using Tavily.""" + search = TavilySearchResults(tavily_api_key=TAVILY_API_KEY, max_results=3) + results = search.run(query) + return "\n\n".join([result["content"] for result in results]) \ No newline at end of file