[docs] Template moulding in docs/platform and index improvement (#3663)
This commit is contained in:
+134
-297
@@ -1,336 +1,173 @@
|
||||
---
|
||||
title: "Configuration"
|
||||
description: "Configure Mem0 with custom LLMs, vector stores, embedders, and rerankers for production deployments"
|
||||
title: "Configure the OSS Stack"
|
||||
description: "Wire up Mem0 OSS with your preferred LLM, vector store, embedder, and reranker."
|
||||
icon: "sliders"
|
||||
iconType: "solid"
|
||||
---
|
||||
|
||||
Mem0 is highly configurable, allowing you to customize every component of your memory system. Choose from **51+ supported providers** across LLMs, vector databases, embedders, and rerankers.
|
||||
# Configure Mem0 OSS Components
|
||||
|
||||
## Quick Start
|
||||
<Info>
|
||||
**Prerequisites**
|
||||
- Python 3.10+ with `pip` available
|
||||
- Running vector database (e.g., Qdrant, Postgres + pgvector) or access credentials for a managed store
|
||||
- API keys for your chosen LLM, embedder, and reranker providers
|
||||
</Info>
|
||||
|
||||
The simplest setup uses OpenAI defaults:
|
||||
<Tip>
|
||||
Start from the <Link href="/open-source/python-quickstart">Python quickstart</Link> if you still need the base CLI and repository.
|
||||
</Tip>
|
||||
|
||||
```python
|
||||
import os
|
||||
from mem0 import Memory
|
||||
## Install dependencies
|
||||
|
||||
os.environ["OPENAI_API_KEY"] = "your-api-key"
|
||||
m = Memory()
|
||||
<Tabs>
|
||||
<Tab title="Python">
|
||||
<Steps>
|
||||
<Step title="Install Mem0 OSS">
|
||||
```bash
|
||||
pip install mem0ai
|
||||
```
|
||||
</Step>
|
||||
<Step title="Add provider SDKs (example: Qdrant + OpenAI)">
|
||||
```bash
|
||||
pip install qdrant-client openai
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
</Tab>
|
||||
<Tab title="Docker Compose">
|
||||
<Steps>
|
||||
<Step title="Clone the repo and copy the compose file">
|
||||
```bash
|
||||
git clone https://github.com/mem0ai/mem0.git
|
||||
cd mem0/examples/docker-compose
|
||||
```
|
||||
</Step>
|
||||
<Step title="Install dependencies for local overrides">
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
For production or custom setups, configure specific components:
|
||||
## Define your configuration
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Python">
|
||||
<Steps>
|
||||
<Step title="Create a configuration dictionary">
|
||||
```python
|
||||
from mem0 import Memory
|
||||
|
||||
config = {
|
||||
"vector_store": {
|
||||
"provider": "qdrant",
|
||||
"config": {
|
||||
"host": "localhost",
|
||||
"port": 6333
|
||||
}
|
||||
"config": {"host": "localhost", "port": 6333},
|
||||
},
|
||||
"llm": {
|
||||
"provider": "openai",
|
||||
"config": {
|
||||
"model": "gpt-4.1-nano-2025-04-14",
|
||||
"temperature": 0.1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m = Memory.from_config(config)
|
||||
```
|
||||
|
||||
## Configuration Components
|
||||
|
||||
Mem0 has four configurable components. Click any to see all supported providers and detailed configuration options.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="LLMs" icon="message-bot" href="/components/llms/overview">
|
||||
**17 providers** including OpenAI, Anthropic, Ollama, Groq, and more
|
||||
|
||||
Configure the language model for memory extraction and processing
|
||||
|
||||
</Card>
|
||||
|
||||
<Card title="Vector Databases" icon="hard-drive" href="/components/vectordbs/overview">
|
||||
**25+ databases** including Qdrant, Chroma, Pinecone, Weaviate, and more
|
||||
|
||||
Choose where to store and retrieve memory embeddings
|
||||
|
||||
</Card>
|
||||
|
||||
<Card title="Embedding Models" icon="cube" href="/components/embedders/overview">
|
||||
**9 providers** including OpenAI, HuggingFace, Ollama, and more
|
||||
|
||||
Select the model to convert memories into vector embeddings
|
||||
|
||||
</Card>
|
||||
|
||||
<Card title="Rerankers" icon="ranking-star" href="/components/rerankers/overview">
|
||||
**4 models** including Cohere, Zero Entropy, and LLM-based
|
||||
|
||||
Improve search relevance by re-scoring retrieved memories
|
||||
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Configuration Recipes
|
||||
|
||||
### Production Setup with Qdrant
|
||||
|
||||
For production deployments, use a dedicated vector store:
|
||||
|
||||
<Steps>
|
||||
<Step title="Start Qdrant">
|
||||
```bash
|
||||
docker pull qdrant/qdrant
|
||||
|
||||
docker run -p 6333:6333 -p 6334:6334 \
|
||||
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
|
||||
qdrant/qdrant
|
||||
|
||||
````
|
||||
</Step>
|
||||
|
||||
<Step title="Configure Mem0">
|
||||
```python
|
||||
import os
|
||||
from mem0 import Memory
|
||||
|
||||
os.environ["OPENAI_API_KEY"] = "your-api-key"
|
||||
|
||||
config = {
|
||||
"vector_store": {
|
||||
"provider": "qdrant",
|
||||
"config": {
|
||||
"host": "localhost",
|
||||
"port": 6333,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m = Memory.from_config(config)
|
||||
````
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
### Fully Local Setup
|
||||
|
||||
Run Mem0 completely offline with Ollama (no external APIs):
|
||||
|
||||
<Card title="Local Setup with Ollama" icon="server" href="/examples/mem0-with-ollama">
|
||||
Step-by-step guide to run Mem0 with local LLM and embeddings
|
||||
</Card>
|
||||
|
||||
### Multi-Cloud Setup
|
||||
|
||||
Mix providers from different clouds:
|
||||
|
||||
```python
|
||||
config = {
|
||||
"llm": {
|
||||
"provider": "azure_openai",
|
||||
"config": {
|
||||
"api_key": "azure-key",
|
||||
"deployment_name": "gpt-4.1-nano-2025-04-14"
|
||||
}
|
||||
},
|
||||
"vector_store": {
|
||||
"provider": "pinecone",
|
||||
"config": {
|
||||
"api_key": "pinecone-key",
|
||||
"index_name": "mem0"
|
||||
}
|
||||
"config": {"model": "gpt-4.1-mini", "temperature": 0.1},
|
||||
},
|
||||
"embedder": {
|
||||
"provider": "vertexai",
|
||||
"config": {
|
||||
"model": "textembedding-gecko@003"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Graph Memory Setup
|
||||
|
||||
Enable relationship tracking with Neo4j:
|
||||
|
||||
```python
|
||||
config = {
|
||||
"graph_store": {
|
||||
"provider": "neo4j",
|
||||
"config": {
|
||||
"url": "neo4j+s://your-instance.databases.neo4j.io",
|
||||
"username": "neo4j",
|
||||
"password": "your-password"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m = Memory.from_config(config)
|
||||
```
|
||||
|
||||
<Card title="Graph Memory Guide" icon="diagram-project" href="/open-source/features/graph-memory">
|
||||
Learn how to use graph memory for relationship-based retrieval
|
||||
</Card>
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Custom Prompts
|
||||
|
||||
Override default prompts for memory processing:
|
||||
|
||||
```python
|
||||
config = {
|
||||
"custom_fact_extraction_prompt": """
|
||||
Extract key facts from the conversation.
|
||||
Focus on: preferences, decisions, and context.
|
||||
Output as a single sentence.
|
||||
""",
|
||||
"custom_update_memory_prompt": """
|
||||
Update the existing memory with new information.
|
||||
Preserve important context from the old memory.
|
||||
"""
|
||||
}
|
||||
```
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Custom Fact Extraction" icon="sparkles" href="/open-source/features/custom-fact-extraction-prompt">
|
||||
Customize how memories are extracted from conversations
|
||||
</Card>
|
||||
|
||||
<Card title="Custom Memory Updates" icon="pen" href="/open-source/features/custom-update-memory-prompt">
|
||||
Control how existing memories are modified
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Reranking for Better Search
|
||||
|
||||
Add reranking to improve search relevance:
|
||||
|
||||
```python
|
||||
config = {
|
||||
"rerank": {
|
||||
"config": {"model": "textembedding-gecko@003"},
|
||||
},
|
||||
"reranker": {
|
||||
"provider": "cohere",
|
||||
"config": {
|
||||
"model": "rerank-english-v3.0",
|
||||
"top_k": 5
|
||||
}
|
||||
}
|
||||
"config": {"model": "rerank-english-v3.0"},
|
||||
},
|
||||
}
|
||||
|
||||
memory = Memory.from_config(config)
|
||||
```
|
||||
</Step>
|
||||
<Step title="Store secrets as environment variables">
|
||||
```bash
|
||||
export QDRANT_API_KEY="..."
|
||||
export OPENAI_API_KEY="..."
|
||||
export COHERE_API_KEY="..."
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
</Tab>
|
||||
<Tab title="config.yaml">
|
||||
<Steps>
|
||||
<Step title="Create a `config.yaml` file">
|
||||
```yaml
|
||||
vector_store:
|
||||
provider: qdrant
|
||||
config:
|
||||
host: localhost
|
||||
port: 6333
|
||||
|
||||
<Card title="Reranker-Enhanced Search" icon="arrow-up-arrow-down" href="/open-source/features/reranker-search">
|
||||
Learn how reranking improves memory search accuracy
|
||||
</Card>
|
||||
llm:
|
||||
provider: azure_openai
|
||||
config:
|
||||
api_key: ${AZURE_OPENAI_KEY}
|
||||
deployment_name: gpt-4.1-mini
|
||||
|
||||
### History Database
|
||||
|
||||
Configure where operation history is stored:
|
||||
embedder:
|
||||
provider: ollama
|
||||
config:
|
||||
model: nomic-embed-text
|
||||
|
||||
reranker:
|
||||
provider: zero_entropy
|
||||
config:
|
||||
api_key: ${ZERO_ENTROPY_KEY}
|
||||
```
|
||||
</Step>
|
||||
<Step title="Load the config file at runtime">
|
||||
```python
|
||||
config = {
|
||||
"history_db_path": "/custom/path/to/history.db"
|
||||
}
|
||||
```
|
||||
from mem0 import Memory
|
||||
|
||||
## All Configuration Options
|
||||
memory = Memory.from_config_file("config.yaml")
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Info icon="check">
|
||||
Run `memory.add(["Remember my favorite cafe in Tokyo."], user_id="alex")` and then `memory.search("favorite cafe", user_id="alex")`. You should see the Qdrant collection populate and the reranker mark the memory as a top hit.
|
||||
</Info>
|
||||
|
||||
## Tune component settings
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="LLM Configuration">
|
||||
| Parameter | Description | Provider |
|
||||
|-----------------------|-----------------------------------------------|-------------------|
|
||||
| `provider` | LLM provider (e.g., "openai", "anthropic") | All |
|
||||
| `model` | Model to use | All |
|
||||
| `temperature` | Temperature of the model (0.0-2.0) | All |
|
||||
| `api_key` | API key to use | Most |
|
||||
| `max_tokens` | Maximum tokens to generate | All |
|
||||
| `top_p` | Nucleus sampling threshold | All |
|
||||
| `top_k` | Top-k sampling parameter | Some |
|
||||
| `ollama_base_url` | Base URL for Ollama API | Ollama |
|
||||
| `openai_base_url` | Base URL for OpenAI API | OpenAI |
|
||||
| `azure_kwargs` | Azure-specific initialization args | Azure OpenAI |
|
||||
|
||||
**See all 17 LLM providers:** [LLMs Overview](/components/llms/overview)
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Vector Store Configuration">
|
||||
Common parameters (provider-specific options vary):
|
||||
|
||||
| Parameter | Description | Example |
|
||||
| ----------------- | -------------------------- | ----------- |
|
||||
| `provider` | Vector store provider | "qdrant" |
|
||||
| `host` | Host address | "localhost" |
|
||||
| `port` | Port number | 6333 |
|
||||
| `collection_name` | Collection/index name | "memories" |
|
||||
| `api_key` | API key (for cloud stores) | "your-key" |
|
||||
|
||||
**See all 25+ vector stores:** [Vector Databases Overview](/components/vectordbs/overview)
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Embedder Configuration">
|
||||
| Parameter | Description | Default |
|
||||
|-------------|---------------------------------|------------------------------|
|
||||
| `provider` | Embedding provider | "openai" |
|
||||
| `model` | Embedding model to use | "text-embedding-3-small" |
|
||||
| `api_key` | API key for embedding service | None |
|
||||
|
||||
**See all 9 embedder providers:** [Embedders Overview](/components/embedders/overview)
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Reranker Configuration">
|
||||
| Parameter | Description | Example |
|
||||
|-------------|---------------------------------|------------------------------|
|
||||
| `provider` | Reranker provider | "cohere" |
|
||||
| `model` | Reranker model to use | "rerank-english-v3.0" |
|
||||
| `top_k` | Number of results to return | 5 |
|
||||
| `api_key` | API key for reranker service | "your-key" |
|
||||
|
||||
**See all reranker options:** [Rerankers Overview](/components/rerankers/overview)
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Graph Store Configuration">
|
||||
| Parameter | Description | Example |
|
||||
|-------------|---------------------------------|------------------------------|
|
||||
| `provider` | Graph store provider | "neo4j" |
|
||||
| `url` | Connection URL | "neo4j+s://..." |
|
||||
| `username` | Authentication username | "neo4j" |
|
||||
| `password` | Authentication password | "your-password" |
|
||||
|
||||
**Learn more:** [Graph Memory Overview](/open-source/features/graph-memory)
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="General Configuration">
|
||||
| Parameter | Description | Default |
|
||||
|------------------|--------------------------------------|----------------------------|
|
||||
| `history_db_path` | Path to the history database | "{mem0_dir}/history.db" |
|
||||
| `custom_fact_extraction_prompt` | Custom prompt for memory extraction | None |
|
||||
| `custom_update_memory_prompt` | Custom prompt for memory updates | None |
|
||||
</Accordion>
|
||||
<Accordion title="Vector store collections">
|
||||
Name collections explicitly in production (`collection_name`) to isolate tenants and enable per-tenant retention policies.
|
||||
</Accordion>
|
||||
<Accordion title="LLM extraction temperature">
|
||||
Keep extraction temperatures ≤0.2 so advanced memories stay deterministic. Raise it only when you see missing facts.
|
||||
</Accordion>
|
||||
<Accordion title="Reranker depth">
|
||||
Limit `top_k` to 10–20 results; sending more adds latency without meaningful gains.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Next Steps
|
||||
<Warning>
|
||||
Mixing managed and self-hosted components? Make sure every outbound provider call happens through a secure network path. Managed rerankers often require outbound internet even if your vector store is on-prem.
|
||||
</Warning>
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Python Quickstart" icon="python" href="/open-source/python-quickstart">
|
||||
Get started with the Python SDK
|
||||
</Card>
|
||||
## Quick recovery
|
||||
|
||||
<Card title="Self-Hosting Features" icon="server" href="/open-source/features/overview">
|
||||
Explore OSS-specific capabilities
|
||||
</Card>
|
||||
- Qdrant connection errors → confirm port `6333` is exposed and API key (if set) matches.
|
||||
- Empty search results → verify the embedder model name; a mismatch causes dimension errors.
|
||||
- `Unknown reranker` → update the SDK (`pip install --upgrade mem0ai`) to load the latest provider registry.
|
||||
|
||||
<Card title="Examples" icon="book" href="/examples">
|
||||
See configuration examples in action
|
||||
</Card>
|
||||
<CardGroup cols={2}>
|
||||
<Card
|
||||
title="Pick Providers"
|
||||
description="Review the LLM, vector store, embedder, and reranker catalogs."
|
||||
icon="sitemap"
|
||||
href="/components/llms/overview"
|
||||
/>
|
||||
<Card
|
||||
title="Deploy with Docker Compose"
|
||||
description="Follow the end-to-end OSS deployment walkthrough."
|
||||
icon="server"
|
||||
href="/examples/mem0-with-ollama"
|
||||
/>
|
||||
</CardGroup>
|
||||
|
||||
Reference in New Issue
Block a user