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:
@@ -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 закрывается")
|
||||
Reference in New Issue
Block a user