From 39049b390d9b06f9c01ad45a860bb14dc320a3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=B8=D0=BD=D0=B0=D1=80=20=D0=9C=D0=B8=D1=80=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D0=B8=D1=82=D0=BE=D0=B2?= Date: Thu, 18 Jun 2026 09:07:44 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE=20=D0=BA=20=D0=BF=D1=83?= =?UTF-8?q?=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D0=B8:=20update=20ve?= =?UTF-8?q?ctorstore.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vectorstore.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/vectorstore.py b/vectorstore.py index ff41888..2d919e0 100644 --- a/vectorstore.py +++ b/vectorstore.py @@ -2,7 +2,6 @@ from pathlib import Path from uuid import uuid4 from langchain_chroma import Chroma, Settings - from langchain_ollama import OllamaEmbeddings from langchain_core.documents import Document from langchain_text_splitters import RecursiveCharacterTextSplitter @@ -14,12 +13,17 @@ OLLAMA_BASE_URL = "http://127.0.0.1:11434" def create_vectorstore(persist_directory: str = CHROMA_DIR): + """Return a Chroma collection configured for the local knowledge base. + + The collection is persisted in ``persist_directory`` and named + ``COLLECTION_NAME``. + """ client = Chroma(Settings(persist_directory=persist_directory)) collection = client.get_or_create_collection(name=COLLECTION_NAME) return collection -def load_documents(directory: str, vectorstore: Chroma) -> int: +def load_documents(directory: str, collection) -> int: splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200, @@ -48,5 +52,10 @@ def load_documents(directory: str, vectorstore: Chroma) -> int: ids = [str(uuid4()) for _ in chunks] embeddings = OllamaEmbeddings(model=EMBED_MODEL, base_url=OLLAMA_BASE_URL) vectors = embeddings.embed_documents([doc.page_content for doc in chunks]) - vectorstore.add(ids=ids, documents=[doc.page_content for doc in chunks], embeddings=vectors, metadatas=[doc.metadata for doc in chunks]) + collection.add( + ids=ids, + documents=[doc.page_content for doc in chunks], + embeddings=vectors, + metadatas=[doc.metadata for doc in chunks], + ) return len(chunks)