Update 9 files

- /rag/config_models.py
- /rag/utils/config_loader.py
- /rag/auth.py
- /rag/rag_server.py
- /rag/rag_api.py
- /rag/rag_orchestrator.py
- /rag/__init__.py
- /bots/xmpp/client.py
- /bots/rag_client.py
This commit is contained in:
Markov Andrey
2026-06-30 14:27:34 +00:00
parent 068504c988
commit 59feffc190
9 changed files with 180 additions and 179 deletions

View File

@@ -5,16 +5,10 @@
знать внутреннее устройство оркестратора.
Этот класс является прослойкой (facade) между ботами и RAGOrchestrator.
В будущем он может быть легко заменён на HTTP-клиент,
если оркестратор будет вынесен в отдельный сервис.
Сейчас этот файл может использоваться для локальной работы,
но в новой архитектуре мы используем RAGClient (HTTP),
поэтому данный класс является опциональным.
"""
import logging
from typing import Optional, Dict, List, Any
from typing import Optional, Dict, Any
from .rag_orchestrator import RAGOrchestrator
from .services.kb_service import KBService
@@ -30,7 +24,6 @@ class RAGAPI:
"""
Единый API-интерфейс для RAG-функциональности.
Создаёт и содержит экземпляр RAGOrchestrator.
Предоставляет методы для выполнения запросов и индексации документов.
"""
def __init__(
@@ -44,24 +37,9 @@ class RAGAPI:
config: AppConfig,
default_prompts: Optional[Dict[str, str]] = None
):
"""
Инициализация API.
Аргументы:
db: сервис PostgreSQL (PostgresService)
qdrant: сервис Qdrant (QdrantService)
embedding: сервис эмбеддингов (EmbeddingService)
kb: сервис базы знаний (KBService)
giga: клиент GigaChat (GigaClient)
files: сервис файлов (FileService)
config: объект конфигурации (AppConfig)
default_prompts: словарь промптов по умолчанию.
Используется, если в запросе не переданы свои промпты.
"""
self.config = config
self.default_prompts = default_prompts or {}
# Создаём оркестратор с переданными сервисами
self.orchestrator = RAGOrchestrator(
db=db,
qdrant=qdrant,
@@ -84,10 +62,6 @@ class RAGAPI:
last_file_path: Optional[str] = None,
last_file_text: Optional[str] = None,
) -> Dict[str, Any]:
"""
Выполняет RAG-запрос через оркестратор.
ИСТОРИЯ НЕ ПЕРЕДАЁТСЯ оркестратор получает её из БД.
"""
try:
if prompts is None:
prompts = self.default_prompts.copy()
@@ -126,7 +100,6 @@ class RAGAPI:
file_hash: Optional[str] = None,
update_if_exists: bool = True
) -> Dict[str, Any]:
"""Индексирует документ через оркестратор."""
try:
result = await self.orchestrator.index_document(
file_name=file_name,
@@ -146,5 +119,4 @@ class RAGAPI:
return {"doc_id": None, "chunk_count": 0, "error": str(e)}
def close(self):
"""Закрывает ресурсы (если необходимо)."""
logger.debug("RAGAPI закрывается")