fix: knowledge_base.py — lazy RAG + build_* для автопроверки
This commit is contained in:
+14
-2
@@ -13,7 +13,8 @@ from qdrant_client import QdrantClient
|
|||||||
from qdrant_client.http.models import Distance, VectorParams
|
from qdrant_client.http.models import Distance, VectorParams
|
||||||
|
|
||||||
COLLECTION_NAME = "knowledge_base"
|
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")
|
EMBED_MODEL = os.getenv("OLLAMA_EMBED_MODEL", "nomic-embed-text")
|
||||||
|
|
||||||
|
|
||||||
@@ -27,7 +28,11 @@ class KnowledgeBase:
|
|||||||
) -> None:
|
) -> None:
|
||||||
self.collection_name = collection_name
|
self.collection_name = collection_name
|
||||||
self.qdrant_path = Path(qdrant_path)
|
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.client = QdrantClient(path=str(self.qdrant_path))
|
||||||
self.splitter = RecursiveCharacterTextSplitter(
|
self.splitter = RecursiveCharacterTextSplitter(
|
||||||
chunk_size=500,
|
chunk_size=500,
|
||||||
@@ -76,3 +81,10 @@ class KnowledgeBase:
|
|||||||
text = file_path.read_text(encoding="utf-8")
|
text = file_path.read_text(encoding="utf-8")
|
||||||
title = file_path.stem
|
title = file_path.stem
|
||||||
return self.add_document(text, title)
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user