555e282cc4
pi-agent-plugin checks / lint (push) Has been cancelled
pi-agent-plugin checks / test (20) (push) Has been cancelled
pi-agent-plugin checks / test (22) (push) Has been cancelled
pi-agent-plugin checks / build (push) Has been cancelled
TypeScript SDK CI / check_changes (push) Has been cancelled
TypeScript SDK CI / changelog_check (push) Has been cancelled
ci / changelog_check (push) Has been cancelled
ci / check_changes (push) Has been cancelled
ci / build_mem0 (3.10) (push) Has been cancelled
ci / build_mem0 (3.11) (push) Has been cancelled
ci / build_mem0 (3.12) (push) Has been cancelled
CLI Node CI / lint (push) Has been cancelled
CLI Node CI / test (20) (push) Has been cancelled
CLI Node CI / test (22) (push) Has been cancelled
CLI Node CI / build (push) Has been cancelled
CLI Python CI / lint (push) Has been cancelled
CLI Python CI / test (3.10) (push) Has been cancelled
CLI Python CI / test (3.11) (push) Has been cancelled
CLI Python CI / test (3.12) (push) Has been cancelled
CLI Python CI / build (push) Has been cancelled
openclaw checks / lint (push) Has been cancelled
openclaw checks / test (20) (push) Has been cancelled
openclaw checks / test (22) (push) Has been cancelled
openclaw checks / build (push) Has been cancelled
opencode-plugin checks / build (push) Has been cancelled
TypeScript SDK CI / build_ts_sdk (20) (push) Has been cancelled
TypeScript SDK CI / build_ts_sdk (22) (push) Has been cancelled
TypeScript SDK CI / integration_ts_sdk (20) (push) Has been cancelled
TypeScript SDK CI / integration_ts_sdk (22) (push) Has been cancelled
110 lines
3.4 KiB
Plaintext
110 lines
3.4 KiB
Plaintext
---
|
|
title: Hugging Face
|
|
description: "Configure Hugging Face as an embedding provider in Mem0 for local embedding generation with open-source models."
|
|
---
|
|
|
|
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>
|
|
|
|
### Usage
|
|
|
|
```python
|
|
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")
|
|
```
|
|
|
|
### Using Text Embeddings Inference (TEI)
|
|
|
|
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 Memory
|
|
|
|
os.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM
|
|
|
|
# Using HuggingFace Text Embeddings Inference API
|
|
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" });
|
|
```
|
|
</CodeGroup>
|
|
|
|
To run the TEI service, you can use Docker:
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
### Config
|
|
|
|
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> |