# rag_tools.py """ Инструменты для LangChain-агента. Используют QdrantClient из qdrant_client.py. """ from langchain.tools import tool from qdrant_client import QdrantClient _store = QdrantClient() @tool def search_knowledge_base(query: str, max_results: int = 5) -> list: """ Семантический поиск в базе знаний. Args: query: поисковый запрос. max_results: максимальное количество результатов. Returns: Список найденных фрагментов с оценкой релевантности. """ results = _store.search(query, limit=max_results) return [ {"title": r["metadata"].get("title", ""), "content": r["text"], "score": r["score"]} for r in results ] @tool def add_to_knowledge_base(content: str, title: str) -> str: """ Добавляет новый документ в базу знаний. Args: content: полный текст документа. title: заголовок документа. Returns: Сообщение об успехе. """ _store.add_documents([content], [title]) return f"Документ '{title}' успешно добавлен в базу знаний."