docs/components/embedders/models/fastembed.mdx
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.
FastEmbed is an optional dependency, so install it alongside Mem0.
<CodeGroup> ```bash Python pip install fastembed ```npm install fastembed
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" });
The TypeScript SDK supports these FastEmbed models. Pass the exact string as model:
fast-bge-small-en-v1.5 (default)fast-bge-small-enfast-bge-base-enfast-bge-base-en-v1.5fast-bge-small-zh-v1.5fast-all-MiniLM-L6-v2fast-multilingual-e5-largeHere 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>