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:

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:

Index Configuration

The vector index is automatically configured with the following HNSW parameters:

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.