---
title: "Configure the OSS Stack"
description: "Wire up Mem0 OSS with your preferred LLM, vector store, embedder, and reranker."
icon: "sliders"
---

# Configure Mem0 OSS Components

<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>

<Tip>
  Start from the <Link href="/open-source/python-quickstart">Python quickstart</Link> if you still need the base CLI and repository.
</Tip>

## Install dependencies

<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>

## 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},
    },
    "llm": {
        "provider": "openai",
        "config": {"model": "gpt-4.1-mini", "temperature": 0.1},
    },
    "embedder": {
        "provider": "vertexai",
        "config": {"model": "textembedding-gecko@003"},
    },
    "reranker": {
        "provider": "cohere",
        "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

llm:
  provider: azure_openai
  config:
    api_key: ${AZURE_OPENAI_KEY}
    deployment_name: gpt-4.1-mini

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
from mem0 import Memory

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="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>

<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>

## Quick recovery

- 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.

<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="/open-source/features/rest-api"
  />
</CardGroup>
