Atualização do ChromaComponent adicionando campos que havia na versão antiga

This commit is contained in:
DiogenesBR 2023-08-18 21:10:03 +00:00
commit 5fd3da010e
2 changed files with 46 additions and 0 deletions

View file

@ -40,6 +40,12 @@ install_frontendc:
run_frontend: run_frontend:
cd src/frontend && npm start cd src/frontend && npm start
run_cli:
poetry run langflow --path src/frontend/build
run_cli_debug:
poetry run langflow --path src/frontend/build --log-level debug
setup_devcontainer: setup_devcontainer:
make init make init
make build_frontend make build_frontend

View file

@ -6,6 +6,7 @@ from langchain.schema import Document
from langchain.vectorstores.base import VectorStore from langchain.vectorstores.base import VectorStore
from langchain.schema import BaseRetriever from langchain.schema import BaseRetriever
from langchain.embeddings.base import Embeddings from langchain.embeddings.base import Embeddings
import chromadb
class ChromaComponent(CustomComponent): class ChromaComponent(CustomComponent):
@ -32,15 +33,34 @@ class ChromaComponent(CustomComponent):
"code": {"show": False, "display_name": "Code"}, "code": {"show": False, "display_name": "Code"},
"documents": {"display_name": "Documents", "is_list": True}, "documents": {"display_name": "Documents", "is_list": True},
"embedding": {"display_name": "Embedding"}, "embedding": {"display_name": "Embedding"},
"chroma_server_cors_allow_origins": {
"display_name": "Server CORS Allow Origins",
"advanced": True,
},
"chroma_server_host": {"display_name": "Server Host", "advanced": True},
"chroma_server_port": {"display_name": "Server Port", "advanced": True},
"chroma_server_grpc_port": {
"display_name": "Server gRPC Port",
"advanced": True,
},
"chroma_server_ssl_enabled": {
"display_name": "Server SSL Enabled",
"advanced": True,
},
} }
def build( def build(
self, self,
collection_name: str, collection_name: str,
persist: bool, persist: bool,
chroma_server_ssl_enabled: bool,
persist_directory: Optional[str] = None, persist_directory: Optional[str] = None,
embedding: Optional[Embeddings] = None, embedding: Optional[Embeddings] = None,
documents: Optional[Document] = None, documents: Optional[Document] = None,
chroma_server_cors_allow_origins: Optional[str] = None,
chroma_server_host: Optional[str] = None,
chroma_server_port: Optional[int] = None,
chroma_server_grpc_port: Optional[int] = None,
) -> Union[VectorStore, BaseRetriever]: ) -> Union[VectorStore, BaseRetriever]:
""" """
Builds the Vector Store or BaseRetriever object. Builds the Vector Store or BaseRetriever object.
@ -48,13 +68,32 @@ class ChromaComponent(CustomComponent):
Args: Args:
- collection_name (str): The name of the collection. - collection_name (str): The name of the collection.
- persist_directory (Optional[str]): The directory to persist the Vector Store to. - persist_directory (Optional[str]): The directory to persist the Vector Store to.
- chroma_server_ssl_enabled (bool): Whether to enable SSL for the Chroma server.
- persist (bool): Whether to persist the Vector Store or not. - persist (bool): Whether to persist the Vector Store or not.
- embedding (Optional[Embeddings]): The embeddings to use for the Vector Store. - embedding (Optional[Embeddings]): The embeddings to use for the Vector Store.
- documents (Optional[Document]): The documents to use for the Vector Store. - documents (Optional[Document]): The documents to use for the Vector Store.
- chroma_server_cors_allow_origins (Optional[str]): The CORS allow origins for the Chroma server.
- chroma_server_host (Optional[str]): The host for the Chroma server.
- chroma_server_port (Optional[int]): The port for the Chroma server.
- chroma_server_grpc_port (Optional[int]): The gRPC port for the Chroma server.
Returns: Returns:
- Union[VectorStore, BaseRetriever]: The Vector Store or BaseRetriever object. - Union[VectorStore, BaseRetriever]: The Vector Store or BaseRetriever object.
""" """
# Chroma settings
chroma_settings = None
if chroma_server_host is not None:
chroma_settings = chromadb.config.Settings(
chroma_server_cors_allow_origins=chroma_server_cors_allow_origins
or None,
chroma_server_host=chroma_server_host,
chroma_server_port=chroma_server_port or None,
chroma_server_grpc_port=chroma_server_grpc_port or None,
chroma_server_ssl_enabled=chroma_server_ssl_enabled,
)
# If documents, then we need to create a Chroma instance using .from_documents # If documents, then we need to create a Chroma instance using .from_documents
if documents is not None and embedding is not None: if documents is not None and embedding is not None:
return Chroma.from_documents( return Chroma.from_documents(
@ -62,6 +101,7 @@ class ChromaComponent(CustomComponent):
persist_directory=persist_directory if persist else None, persist_directory=persist_directory if persist else None,
collection_name=collection_name, collection_name=collection_name,
embedding=embedding, embedding=embedding,
client_settings=chroma_settings,
) )
return Chroma( return Chroma(