From 8dba30f31e42d4f982c40509b2d4d4baf2d9aa72 Mon Sep 17 00:00:00 2001 From: Harrison Chase Date: Fri, 10 Mar 2023 15:05:06 -0800 Subject: [PATCH] Harrison/kwargs loaders (#1588) Co-authored-by: Tim Asp <707699+timothyasp@users.noreply.github.com> --- langchain/indexes/vectorstore.py | 7 +++++-- langchain/vectorstores/chroma.py | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/langchain/indexes/vectorstore.py b/langchain/indexes/vectorstore.py index 3b4bceea..b3d0ca72 100644 --- a/langchain/indexes/vectorstore.py +++ b/langchain/indexes/vectorstore.py @@ -50,8 +50,9 @@ class VectorstoreIndexCreator(BaseModel): """Logic for creating indexes.""" vectorstore_cls: Type[VectorStore] = Chroma - embedding: Embeddings = Field(default_factory=OpenAIEmbeddings) text_splitter: TextSplitter = Field(default_factory=_get_default_text_splitter) + embedding: Embeddings = Field(default_factory=OpenAIEmbeddings) + vectorstore_kwargs: dict = Field(default_factory=dict) class Config: """Configuration for this pydantic object.""" @@ -65,5 +66,7 @@ class VectorstoreIndexCreator(BaseModel): for loader in loaders: docs.extend(loader.load()) sub_docs = self.text_splitter.split_documents(docs) - vectorstore = self.vectorstore_cls.from_documents(sub_docs, self.embedding) + vectorstore = self.vectorstore_cls.from_documents( + sub_docs, self.embedding, **self.vectorstore_kwargs + ) return VectorStoreIndexWrapper(vectorstore=vectorstore) diff --git a/langchain/vectorstores/chroma.py b/langchain/vectorstores/chroma.py index df729467..0699b089 100644 --- a/langchain/vectorstores/chroma.py +++ b/langchain/vectorstores/chroma.py @@ -230,6 +230,7 @@ class Chroma(VectorStore): embedding (Optional[Embeddings]): Embedding function. Defaults to None. metadatas (Optional[List[dict]]): List of metadatas. Defaults to None. ids (Optional[List[str]]): List of document IDs. Defaults to None. + client_settings (Optional[chromadb.config.Settings]): Chroma client settings Returns: Chroma: Chroma vectorstore. @@ -264,7 +265,7 @@ class Chroma(VectorStore): persist_directory (Optional[str]): Directory to persist the collection. documents (List[Document]): List of documents to add to the vectorstore. embedding (Optional[Embeddings]): Embedding function. Defaults to None. - + client_settings (Optional[chromadb.config.Settings]): Chroma client settings Returns: Chroma: Chroma vectorstore. """