Добавить rag_tools.py
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
# 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}' успешно добавлен в базу знаний."
|
||||||
Reference in New Issue
Block a user