From 9463c7fc88ca6e448fbe94390f5228554d15b627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AD=D0=BC=D0=B8=D0=BB=D1=8C=20=D0=90=D0=BC=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Wed, 27 May 2026 12:28:31 +0000 Subject: [PATCH] fix: align with accepted structure (main.py) --- main.py | 56 +++++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/main.py b/main.py index 615c756..2b31069 100644 --- a/main.py +++ b/main.py @@ -1,49 +1,39 @@ """Интерактивный RAG-агент (Qdrant + Ollama + LangChain).""" from __future__ import annotations -import os +try: + from agent_app import build_agent, build_llm + from knowledge_base import build_knowledge_base + from rag_tools import add_to_knowledge_base, get_knowledge_base, search_knowledge_base +except ModuleNotFoundError: + from .agent_app import build_agent, build_llm + from .knowledge_base import build_knowledge_base + from .rag_tools import add_to_knowledge_base, get_knowledge_base, search_knowledge_base -from langchain.agents import create_agent -from langchain_ollama import ChatOllama - -from rag_tools import add_to_knowledge_base, search_knowledge_base - -LLM_MODEL = os.getenv("OLLAMA_LLM_MODEL", "llama3") -OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434") - -SYSTEM_PROMPT = """\ -Ты ассистент с доступом к базе знаний. -Перед ответом на фактические вопросы используй search_knowledge_base. -Если пользователь просит сохранить информацию — вызывай add_to_knowledge_base. -Отвечай на русском, кратко и по существу. -""" - - -def build_agent(): - llm = ChatOllama( - model=LLM_MODEL, - base_url=OLLAMA_BASE_URL, - temperature=0.2, - ) - return create_agent( - model=llm, - tools=[search_knowledge_base, add_to_knowledge_base], - system_prompt=SYSTEM_PROMPT, - ) +__all__ = [ + "build_agent", + "build_llm", + "build_knowledge_base", + "get_knowledge_base", + "search_knowledge_base", + "add_to_knowledge_base", + "run_interactive_cli", +] def run_interactive_cli() -> None: agent = build_agent() - print("RAG-агент. Команды: /add, /search, /quit") + print("RAG-агент (Qdrant + Ollama). Команды: /add, /search, /quit") print(" /add <заголовок> | <текст>") print(" /search <запрос>") + print(" или задайте вопрос агенту\n") while True: - user_input = input("\n> ").strip() + user_input = input("Вы: ").strip() if not user_input: continue - if user_input == "/quit": - print("Выход.") + if user_input.lower() in ("/quit", "exit", "quit", "q"): + print("До встречи!") break if user_input.startswith("/search "): @@ -64,7 +54,7 @@ def run_interactive_cli() -> None: {"messages": [{"role": "human", "content": user_input}]} ) answer = result["messages"][-1] - print(getattr(answer, "content", answer)) + print(f"\nАгент: {getattr(answer, 'content', answer)}\n") if __name__ == "__main__":