How to define configurations?

The config is defined as an object 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”,“azure_ai_search”, “vertex_ai_vector_search”)
    • 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"})

The in-memory vector database is only supported in the TypeScript implementation.

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
endpoint_idEndpoint ID (vertex_ai_vector_search)
index_idIndex ID (vertex_ai_vector_search)
deployment_index_idDeployment index ID (vertex_ai_vector_search)
project_idProject ID (vertex_ai_vector_search)
project_numberProject number (vertex_ai_vector_search)
vector_search_api_endpointVector search API endpoint (vertex_ai_vector_search)
connection_stringPostgreSQL connection string (for Supabase/PGVector)
index_methodVector index method (for Supabase)
index_measureDistance measure for similarity search (for Supabase)

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.