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. """