From cf7703506cd4ad4c3853b715b700f14573bc1f8e Mon Sep 17 00:00:00 2001 From: RomanKurlygin Date: Wed, 27 May 2026 08:23:31 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20knowledge=5Fbase.py=20=E2=80=94=20lazy?= =?UTF-8?q?=20RAG=20+=20build=5F*=20=D0=B4=D0=BB=D1=8F=20=D0=B0=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- knowledge_base.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/knowledge_base.py b/knowledge_base.py index 3ac2e96..7890407 100644 --- a/knowledge_base.py +++ b/knowledge_base.py @@ -13,7 +13,8 @@ from qdrant_client import QdrantClient from qdrant_client.http.models import Distance, VectorParams COLLECTION_NAME = "knowledge_base" -DEFAULT_QDRANT_PATH = "./qdrant_storage" +DEFAULT_QDRANT_PATH = os.getenv("QDRANT_PATH", "./qdrant_storage") +OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434") EMBED_MODEL = os.getenv("OLLAMA_EMBED_MODEL", "nomic-embed-text") @@ -27,7 +28,11 @@ class KnowledgeBase: ) -> None: self.collection_name = collection_name self.qdrant_path = Path(qdrant_path) - self.embeddings = OllamaEmbeddings(model=EMBED_MODEL) + self.qdrant_path.mkdir(parents=True, exist_ok=True) + self.embeddings = OllamaEmbeddings( + model=EMBED_MODEL, + base_url=OLLAMA_BASE_URL, + ) self.client = QdrantClient(path=str(self.qdrant_path)) self.splitter = RecursiveCharacterTextSplitter( chunk_size=500, @@ -76,3 +81,10 @@ class KnowledgeBase: text = file_path.read_text(encoding="utf-8") title = file_path.stem return self.add_document(text, title) + + +def build_knowledge_base( + qdrant_path: str | Path = DEFAULT_QDRANT_PATH, +) -> KnowledgeBase: + """Сборка RAG-хранилища — точка входа для автопроверки.""" + return KnowledgeBase(qdrant_path=qdrant_path)