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
112 lines
3.7 KiB
Plaintext
112 lines
3.7 KiB
Plaintext
---
|
|
title: "FastEmbed"
|
|
description: "Configure FastEmbed as an embedding provider in Mem0 to generate embeddings locally using ONNX-based models without a GPU."
|
|
---
|
|
|
|
You can use FastEmbed to run embedding models locally in Mem0. FastEmbed is an ONNX-based embedding library that runs efficiently on CPU without requiring a GPU or an external API key.
|
|
|
|
### Installation
|
|
|
|
FastEmbed is an optional dependency, so install it alongside Mem0.
|
|
|
|
<CodeGroup>
|
|
```bash Python
|
|
pip install fastembed
|
|
```
|
|
|
|
```bash TypeScript
|
|
npm install fastembed
|
|
```
|
|
</CodeGroup>
|
|
|
|
### Usage
|
|
|
|
<CodeGroup>
|
|
```python Python
|
|
import os
|
|
from mem0 import Memory
|
|
|
|
os.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM
|
|
|
|
config = {
|
|
"embedder": {
|
|
"provider": "fastembed",
|
|
"config": {
|
|
"model": "thenlper/gte-large"
|
|
}
|
|
}
|
|
}
|
|
|
|
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")
|
|
```
|
|
|
|
```typescript TypeScript
|
|
import { Memory } from "mem0ai/oss";
|
|
|
|
// FastEmbed needs no API key. Leave the embedder config empty to use the
|
|
// default model (fast-bge-small-en-v1.5), or set `model` to one of the
|
|
// supported models listed below.
|
|
const memory = new Memory({
|
|
embedder: {
|
|
provider: "fastembed",
|
|
config: {
|
|
model: "fast-bge-small-en-v1.5",
|
|
},
|
|
},
|
|
llm: {
|
|
provider: "openai",
|
|
config: { apiKey: process.env.OPENAI_API_KEY }, // For fact extraction
|
|
},
|
|
});
|
|
|
|
const 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." },
|
|
];
|
|
await memory.add(messages, { userId: "john" });
|
|
```
|
|
</CodeGroup>
|
|
|
|
<Note>
|
|
**The Python and TypeScript SDKs default to different models.** Python defaults to `thenlper/gte-large` (1024 dimensions), while TypeScript defaults to `fast-bge-small-en-v1.5` (384 dimensions). The TypeScript package (`fastembed` on npm) ships a fixed set of ONNX models and does not include `thenlper/gte-large`. Because the two defaults produce vectors of different dimensions, do not point both SDKs at the same vector store collection unless you configure them to use the same model.
|
|
</Note>
|
|
|
|
The TypeScript SDK supports these FastEmbed models. Pass the exact string as `model`:
|
|
|
|
- `fast-bge-small-en-v1.5` (default)
|
|
- `fast-bge-small-en`
|
|
- `fast-bge-base-en`
|
|
- `fast-bge-base-en-v1.5`
|
|
- `fast-bge-small-zh-v1.5`
|
|
- `fast-all-MiniLM-L6-v2`
|
|
- `fast-multilingual-e5-large`
|
|
|
|
### Config
|
|
|
|
Here are the parameters available for configuring the FastEmbed embedder:
|
|
|
|
<Tabs>
|
|
<Tab title="Python">
|
|
| Parameter | Description | Default Value |
|
|
| --- | --- | --- |
|
|
| `model` | The name of the FastEmbed model to use | `thenlper/gte-large` |
|
|
| `embedding_dims` | Dimensions of the embedding model (auto-derived from the model if not set) | `None` |
|
|
</Tab>
|
|
<Tab title="TypeScript">
|
|
| Parameter | Description | Default Value |
|
|
| --- | --- | --- |
|
|
| `model` | The FastEmbed model to use (see the supported list above) | `fast-bge-small-en-v1.5` |
|
|
|
|
The embedding dimension is detected automatically at startup, so you do not need to set it manually.
|
|
</Tab>
|
|
</Tabs>
|