Files
task-6a02e23d-agent-s-rag-p…/rag_tools.py
T

41 lines
1.3 KiB
Python

# 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}' успешно добавлен в базу знаний."