-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvector_store_documents.py
More file actions
30 lines (24 loc) · 1.02 KB
/
vector_store_documents.py
File metadata and controls
30 lines (24 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from typing import List
from langchain.schema import Document
from langchain_chroma import Chroma
from langchain_core.vectorstores.base import VectorStoreRetriever
from llm_model import LLMModel
from config import CHROMA_PATH, CHROMA_COLLECTION
class VectorStoreDocuments:
def __init__(self):
self.vectorstore = None
def vector_store(self) -> 'VectorStoreDocuments':
self.vectorstore = Chroma(
collection_name=CHROMA_COLLECTION,
embedding_function=LLMModel.embeddings(),
persist_directory=CHROMA_PATH,
)
return self
def store_documents(self, documents: List[Document]) -> None:
self.vectorstore.add_documents(documents=documents, overwrite=True)
def retriever(self) -> VectorStoreRetriever:
return self.vectorstore.as_retriever()
def remove_collection(self):
self.vectorstore.reset_collection()
def search(self, query: str, k: int = 5) -> List[Document]:
return self.vectorstore.similarity_search(query=query, k=k)