What is Config?

Config in mem0 is a dictionary that specifies the settings for your vector database. It allows you to customize the behavior and connection details of your chosen vector store.

How to Define Config

The config is defined as a Python dictionary with two main keys:

  • vector_store: Specifies the vector database provider and its configuration
    • provider: The name of the vector database (e.g., “chroma”, “pgvector”, “qdrant”, “milvus”)
    • config: A nested dictionary containing provider-specific settings

How to Use Config

Here’s a general example of how to use the config with mem0:

import os
from mem0 import Memory

os.environ["OPENAI_API_KEY"] = "sk-xx"

config = {
    "vector_store": {
        "provider": "your_chosen_provider",
        "config": {
            # Provider-specific settings go here
        }
    }
}

m = Memory.from_config(config)
m.add("Your text here", user_id="user", metadata={"category": "example"})

Why is Config Needed?

Config is essential for:

  1. Specifying which vector database to use.
  2. Providing necessary connection details (e.g., host, port, credentials).
  3. Customizing database-specific settings (e.g., collection name, path).
  4. Ensuring proper initialization and connection to your chosen vector store.

Master List of All Params in Config

Here’s a comprehensive list of all parameters that can be used across different vector databases:

ParameterDescription
collection_nameName of the collection
embedding_model_dimsDimensions of the embedding model
clientCustom client for the database
pathPath for the database
hostHost where the server is running
portPort where the server is running
userUsername for database connection
passwordPassword for database connection
dbnameName of the database
urlFull URL for the server
api_keyAPI key for the server
on_diskEnable persistent storage

Customizing Config

Each vector database has its own specific configuration requirements. To customize the config for your chosen vector store:

  1. Identify the vector database you want to use from supported vector databases.
  2. Refer to the Config section in the respective vector database’s documentation.
  3. Include only the relevant parameters for your chosen database in the config dictionary.

Supported Vector Databases

For detailed information on configuring specific vector databases, please visit the Supported Vector Databases section. There you’ll find individual pages for each supported vector store with provider-specific usage examples and configuration details.