Новый раг

This commit is contained in:
2026-03-01 14:21:33 +03:00
parent 2728c07ba9
commit 1ef0b4d68c
95 changed files with 3145 additions and 927 deletions

View File

@@ -0,0 +1,15 @@
from __future__ import annotations
from app.modules.rag.contracts import RagDocument
from app.modules.rag.persistence.repository import RagRepository
class RagDocumentUpserter:
def __init__(self, repository: RagRepository) -> None:
self._repository = repository
def replace(self, rag_session_id: str, docs: list[RagDocument]) -> None:
self._repository.replace_documents(rag_session_id, docs)
def apply_changes(self, rag_session_id: str, delete_paths: list[str], docs: list[RagDocument]) -> None:
self._repository.apply_document_changes(rag_session_id, delete_paths, docs)

View File

@@ -0,0 +1,21 @@
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass(slots=True)
class IndexReport:
indexed_files: int = 0
failed_files: int = 0
cache_hit_files: int = 0
cache_miss_files: int = 0
documents: int = 0
warnings: list[str] = field(default_factory=list)
def as_tuple(self) -> tuple[int, int, int, int]:
return (
self.indexed_files,
self.failed_files,
self.cache_hit_files,
self.cache_miss_files,
)