docs/components/vectordbs/dbs/baidu.mdx
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.
npm install @mochow/mochow-sdk-node
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",
},
},
});
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:
databaseNametableNameembeddingModelDimsmetricTypeFor 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.
The following distance metrics are supported:
L2: Euclidean distance (default)IP: Inner productCOSINE: Cosine similarityThe 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 incrementThe 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.