docs/components/embedders/models/huggingface.mdx
You can use embedding models from Huggingface to run Mem0 locally.
<Note> The TypeScript SDK supports Hugging Face only through a hosted [Text Embeddings Inference (TEI)](#using-text-embeddings-inference-tei) endpoint, or any OpenAI-compatible Hugging Face endpoint. The local `sentence-transformers` mode shown first is Python-only. </Note>import os
from mem0 import Memory
os.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM
config = {
"embedder": {
"provider": "huggingface",
"config": {
"model": "multi-qa-MiniLM-L6-cos-v1"
}
}
}
m = Memory.from_config(config)
messages = [
{"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
{"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},
{"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},
{"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
]
m.add(messages, user_id="john")
You can also use Hugging Face's Text Embeddings Inference service for faster and more efficient embeddings. This is the mode the TypeScript SDK uses.
<CodeGroup> ```python Python import os from mem0 import Memoryos.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM
config = { "embedder": { "provider": "huggingface", "config": { "huggingface_base_url": "http://localhost:3000/v1" } } }
m = Memory.from_config(config) m.add("This text will be embedded using the TEI service.", user_id="john")
```typescript TypeScript
import { Memory } from 'mem0ai/oss';
// Point at a running TEI server, or any OpenAI-compatible HF endpoint
const config = {
embedder: {
provider: 'huggingface',
config: {
huggingfaceBaseUrl: 'http://localhost:3000/v1',
},
},
};
const memory = new Memory(config);
await memory.add("This text will be embedded using the TEI service.", { userId: "john" });
To run the TEI service, you can use Docker:
docker run -d -p 3000:80 -v huggingfacetei:/data --platform linux/amd64 \
ghcr.io/huggingface/text-embeddings-inference:cpu-1.6 \
--model-id BAAI/bge-small-en-v1.5
Here are the parameters available for configuring the Hugging Face embedder:
<Tabs> <Tab title="Python"> | Parameter | Description | Default Value | | --- | --- | --- | | `model` | The name of the model to use | `multi-qa-MiniLM-L6-cos-v1` | | `embedding_dims` | Dimensions of the embedding model | `selected_model_dimensions` | | `model_kwargs` | Additional arguments for the model | `None` | | `huggingface_base_url` | URL to connect to Text Embeddings Inference (TEI) API | `None` | </Tab> <Tab title="TypeScript"> | Parameter | Description | Default Value | | --- | --- | --- | | `huggingfaceBaseUrl` | TEI or OpenAI-compatible endpoint URL. Required; falls back to `baseURL`, `url`, then the `HUGGINGFACE_BASE_URL` env var | `None` | | `model` | Model name sent to the endpoint (TEI ignores it) | `tei` | | `apiKey` | API key for the endpoint; falls back to the `HUGGINGFACE_API_KEY` env var | `"hf"` | </Tab> </Tabs>