Добавить 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