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)