Table of Contents

run

A simple script to run a Flow that can be used for development and debugging.

ChromaDBFlow

ChromaDBFlow Objects

class ChromaDBFlow(AtomicFlow)

A flow that uses the ChromaDB model to write and read memories stored in a database

Configuration Parameters:

  • name (str): The name of the flow. Default: "chroma_db"

  • description (str): A description of the flow. This description is used to generate the help message of the flow. Default: "ChromaDB is a document store that uses vector embeddings to store and retrieve documents."

  • backend (Dict[str, Any]): The configuration of the backend which is used to fetch api keys. Default: LiteLLMBackend with the default parameters of LiteLLMBackend (see aiflows.backends.LiteLLMBackend). Except for the following parameter whose default value is overwritten:

    • api_infos (List[Dict[str, Any]]): The list of api infos. Default: No default value, this parameter is required.
    • model_name (str): The name of the model. Default: "". In the current implementation, this parameter is not used.
  • similarity_search_kwargs (Dict[str, Any]): The parameters to pass to the similarity search method of the ChromaDB. Default:

    • k (int): The number of documents to retrieve. Default: 2
    • filter (str): The filter to apply to the documents. Default: null
  • paths_to_data (List[str]): The paths to the data to store in the database at instantiation. Default: []

  • chunk_size (int): The size of the chunks to split the documents into. Default: 700

  • seperator (str): The separator to use to split the documents. Default: "\n"

  • chunk_overlap (int): The overlap between the chunks. Default: 0

  • persist_directory (str): The directory to persist the database. Default: "./demo_db_dir"

  • Other parameters are inherited from the default configuration of AtomicFlow (see AtomicFlow)

Input Interface:

  • operation (str): The operation to perform. It can be "write" or "read".
  • content (str or List[str]): The content to write or read. If operation is "write", it must be a string or a list of strings. If operation is "read", it must be a string.

Output Interface:

  • retrieved (str or List[str]): The retrieved content. If operation is "write", it is an empty string. If operation is "read", it is a string or a list of strings.

Arguments:

  • backend (LiteLLMBackend): The backend of the flow (used to retrieve the API key)
  • \**kwargs: Additional arguments to pass to the flow.

instantiate_from_config

@classmethod
def instantiate_from_config(cls, config)

This method instantiates the flow from a configuration file

Arguments:

  • config (Dict[str, Any]): The configuration of the flow.

Returns:

ChromaDBFlow: The instantiated flow.

run

def run(input_message: FlowMessage)

This method runs the flow. It runs the ChromaDBFlow. It either writes or reads memories from the database.

Arguments:

  • input_message (FlowMessage): The input message of the flow.

VectorStoreFlow

VectorStoreFlow Objects

class VectorStoreFlow(AtomicFlow)

A flow that uses the VectorStore model to write and read memories stored in a database (see VectorStoreFlow.yaml for the default configuration)

Configuration Parameters:

  • name (str): The name of the flow. Default: "VecotrStoreFlow"
  • description (str): A description of the flow. This description is used to generate the help message of the flow. Default: "VectorStoreFlow"
  • backend (Dict[str, Any]): The configuration of the backend which is used to fetch api keys. Default: LiteLLMBackend with the default parameters of LiteLLMBackend (see flows.backends.LiteLLMBackend). Except for the following parameter whose default value is overwritten:
    • api_infos (List[Dict[str, Any]]): The list of api infos. Default: No default value, this parameter is required.
    • model_name (str): The name of the model. Default: "". In the current implementation, this parameter is not used.
  • type (str): The type of the vector store. It can be "chroma" or "faiss". Default: "chroma"
  • embedding_size (int): The size of the embeddings (only for faiss). Default: 1536
  • retriever_config (Dict[str, Any]): The configuration of the retriever. Default: empty dictionary
  • Other parameters are inherited from the default configuration of AtomicFlow (see AtomicFlow)

Input Interface:

  • operation (str): The operation to perform. It can be "write" or "read".
  • content (str or List[str]): The content to write or read. If operation is "write", it must be a string or a list of strings. If operation is "read", it must be a string.

Output Interface:

  • retrieved (str or List[str]): The retrieved content. If operation is "write", it is an empty string. If operation is "read", it is a string or a list of strings.

Arguments:

  • backend (LiteLLMBackend): The backend of the flow (used to retrieve the API key)
  • vector_db (VectorStoreRetriever): The vector store retriever
  • type (str): The type of the vector store
  • \**kwargs: Additional arguments to pass to the flow. See :class:aiflows.base_flows.AtomicFlow for more details.

instantiate_from_config

@classmethod
def instantiate_from_config(cls, config: Dict[str, Any])

This method instantiates the flow from a configuration file

Arguments:

  • config (Dict[str, Any]): The configuration of the flow.

Returns:

VectorStoreFlow: The instantiated flow.

package_documents

@staticmethod
def package_documents(documents: List[str]) -> List[Document]

This method packages the documents in a list of Documents.

Arguments:

  • documents (List[str]): The documents to package.

Returns:

List[Document]: The packaged documents.

run

def run(input_message: FlowMessage)

This method runs the flow. It either writes or reads memories from the database.

Arguments:

  • input_message (FlowMessage): The input data of the flow.

__init__

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference API
Unable to determine this model's library. Check the docs .