Baidu VectorDB (Mochow) - Mem0
Baidu VectorDB
Baidu VectorDB is an enterprise-level distributed vector database service developed by Baidu Intelligent Cloud. It is powered by Baidu’s proprietary “Mochow” vector database kernel, providing high performance, availability, and security for vector search.
Installation
Python
pip install pymochow
TypeScript
npm install @mochow/mochow-sdk-node
Usage
from mem0 import Memory
config = {
"vector_store": {
"provider": "baidu",
"config": {
"endpoint": "http://your-mochow-endpoint:8287",
"account": "root",
"api_key": "your-api-key",
"database_name": "mem0",
"table_name": "mem0_table",
"embedding_model_dims": 1536,
"metric_type": "COSINE"
}
}
}
m = Memory.from_config(config)
messages = [\
{"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},\
{"role": "assistant", "content": "How about a thriller movie? 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="alice", metadata={"category": "movies"})
import { Memory } from "mem0ai/oss";
const memory = new Memory({
embedder: {
provider: "openai",
config: {
apiKey: process.env.OPENAI_API_KEY || "",
model: "text-embedding-3-small",
embeddingDims: 1536,
},
},
vectorStore: {
provider: "baidu",
config: {
endpoint: process.env.BAIDU_ENDPOINT || "",
account: process.env.BAIDU_ACCOUNT || "root",
apiKey: process.env.BAIDU_API_KEY || "",
databaseName: "mem0",
tableName: "mem0_table",
embeddingModelDims: 1536,
metricType: "COSINE",
},
},
llm: {
provider: "openai",
config: {
apiKey: process.env.OPENAI_API_KEY || "",
model: "gpt-5-mini",
},
},
});
Config
Here are the parameters available for configuring Baidu VectorDB:
| Parameter | Description | Default Value |
|---|---|---|
endpoint |
Endpoint URL for your Baidu VectorDB instance | Required |
account |
Baidu VectorDB account name | root |
api_key |
API key for accessing Baidu VectorDB | Required |
database_name |
Name of the database | mem0 |
table_name |
Name of the table | mem0 |
embedding_model_dims |
Dimensions of the embedding model | 1536 |
metric_type |
Distance metric for similarity search | L2 |
client |
Prebuilt Mochow client (TypeScript SDK only) | None |
For the TypeScript OSS SDK, use the camelCase equivalents:
databaseNametableNameembeddingModelDimsmetricType
For OSS TS usage, endpoint, account, apiKey, databaseName, tableName, and embeddingModelDims are required unless you inject a prebuilt client. metricType defaults to L2, matching the Python SDK.
Distance Metrics
The following distance metrics are supported:
L2: Euclidean distance (default)IP: Inner productCOSINE: Cosine similarity
Index Configuration
The vector index is automatically configured with the following HNSW parameters:
m: 16 (number of connections per element)efconstruction: 200 (size of the dynamic candidate list)auto_build: true (automatically build index)auto_build_index_policy: Incremental build with 10000 rows increment
The TypeScript provider also creates a BM25 inverted index over a textLemmatized column so keywordSearch() runs against a real full-text index. Mem0 lemmatizes the query before it reaches the vector store, so only the lemmatized form of each memory is indexed. If you point tableName at a table created before this index existed, keywordSearch() returns null and search falls back to vector similarity alone; recreate the table to enable it.