安装与设置
安装与设置
相关源文件
本章引用的主要源码文件:
Makefiledocs/components/vectordbs/config.mdxdocs/components/vectordbs/dbs/chroma.mdxdocs/components/vectordbs/dbs/qdrant.mdxdocs/components/vectordbs/overview.mdxdocs/cookbooks/essentials/building-ai-companion.mdxdocs/cookbooks/essentials/controlling-memory-ingestion.mdxdocs/cookbooks/essentials/entity-partitioning-playbook.mdxdocs/cookbooks/essentials/exporting-memories.mdxdocs/cookbooks/integrations/healthcare-google-adk.mdxdocs/cookbooks/integrations/openai-tool-calls.mdxdocs/cookbooks/overview.mdxdocs/docs.jsondocs/llms.txtdocs/open-source/python-quickstart.mdxdocs/platform/features/contextual-add.mdxdocs/platform/features/entity-scoped-memory.mdxdocs/platform/features/v2-memory-filters.mdxmem0-ts/package.jsonmem0-ts/src/client/index.tsmem0-ts/src/client/mem0.tsmem0-ts/src/client/mem0.types.tsmem0-ts/src/client/telemetry.tsmem0-ts/src/client/tests/memoryClient.webhooks.test.tsmem0/utils/factory.pymem0/vector_stores/configs.pypoetry.lockpyproject.toml
本文档涵盖了 Python 和 TypeScript/JavaScript SDK 的安装过程及初始配置。内容包括前置条件、包安装、基本配置以及用于验证安装的快速入门示例。
前置条件
Python SDK 要求
- Python 3.10 或更高版本
pyproject.toml:15-15,docs/open-source/python-quickstart.mdx:11-11 - OpenAI API 密钥(OSS 模式的默认提供方)
docs/open-source/python-quickstart.mdx:12-12 - 依赖项:核心包需要
qdrant-client、pydantic、openai、posthog、pytz、sqlalchemy和protobufpyproject.toml:16-24
TypeScript/JavaScript SDK 要求
- Node.js 18 或更高版本
mem0-ts/package.json:130-130 - npm、pnpm 或 yarn 包管理器
docs/llms.txt:17-17,mem0-ts/package.json:135-135 - OpenAI API 密钥(默认提供方)
docs/llms.txt:92-92
环境变量
在本地开发时,两个 SDK 通常使用环境变量来配置 API 凭证:
export OPENAI_API_KEY="sk-..." # 默认 OpenAI 提供方必需
来源:docs/open-source/python-quickstart.mdx:14-18, docs/llms.txt:92-92
SDK 安装
Python SDK
Python SDK 以 mem0ai 包名发布在 PyPI 上。它包含用于自托管部署的 Memory 类和用于托管平台的 MemoryClient 类。
pip install mem0ai
对于特定的后端,可以安装 pyproject.toml 中定义的可选依赖:
pip install "mem0ai[vector_stores]"(例如 ChromaDB、Pinecone、Milvus)pyproject.toml:30-54pip install "mem0ai[llms]"(例如 Groq、Anthropic、Ollama)pyproject.toml:55-64pip install "mem0ai[nlp]"(例如 Spacy)pyproject.toml:27-29
来源:pyproject.toml:5-7, pyproject.toml:26-74, docs/llms.txt:16-16
TypeScript/JavaScript SDK
TypeScript SDK 可通过 npm 获取,同时支持 CommonJS 和 ESM。
npm install mem0ai
该包提供了不同的入口点:
- 平台(托管):
import MemoryClient from "mem0ai"mem0-ts/package.json:19-23,docs/llms.txt:57-57 - OSS(自托管):
import { Memory } from "mem0ai/oss"mem0-ts/package.json:24-28,docs/llms.txt:114-114
来源:mem0-ts/package.json:2-7, docs/llms.txt:17-17, docs/llms.txt:57-57, docs/llms.txt:114-114
安装架构
下图展示了安装和初始化阶段中自然语言概念与代码实体之间的关联。
安装与组件加载流程
来源:pyproject.toml:6-7, mem0/utils/factory.py:30-167, mem0-ts/package.json:2-29, docs/llms.txt:16-19
默认配置
默认情况下,Memory() 类(OSS)会使用一套针对本地开发优化的特定技术栈进行初始化。
默认 OSS 技术栈
| 组件 | 默认实现 | 配置键 |
|---|---|---|
| 大语言模型(LLM) | OpenAI gpt-4o-mini | llm docs/open-source/python-quickstart.mdx:82-82 |
| 嵌入器 | OpenAI text-embedding-3-small(1536 维) | embedder docs/open-source/python-quickstart.mdx:83-83 |
| 向量存储 | Qdrant(本地路径:/tmp/qdrant) | vector_store docs/open-source/python-quickstart.mdx:84-84, mem0/vector_stores/configs.py:64-64 |
| 历史记录 | SQLite(路径:~/.mem0/history.db) | history_db_path docs/open-source/python-quickstart.mdx:85-85 |
来源:docs/open-source/python-quickstart.mdx:80-87, mem0/vector_stores/configs.py:7-67
基本配置示例
Python OSS 模式(自定义提供方)
要使用自定义配置(例如 Ollama),可以传入一个配置字典。LlmFactory 和 EmbedderFactory 会动态解析提供方。
from mem0 import Memory
config = {
"vector_store": {
"provider": "qdrant",
"config": {
"collection_name": "fitness_companion",
"host": "localhost",
"port": 6333,
"embedding_model_dims": 768,
},
},
"llm": {
"provider": "ollama",
"config": {
"model": "llama3.1:latest",
"ollama_base_url": "http://localhost:11434",
},
},
}
memory = Memory.from_config(config)
来源:mem0/utils/factory.py:37-56, mem0/vector_stores/configs.py:13-38, docs/open-source/python-quickstart.mdx:21-22
Python 平台模式
MemoryClient 初始化时会向 API 发送 ping 请求并设置遥测标识符。
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
来源:docs/llms.txt:30-32, mem0-ts/src/client/mem0.ts:102-122
快速入门示例
Python 快速入门(OSS)
from mem0 import Memory
m = Memory()
# 添加记忆 - 通过大语言模型(LLM)触发事实提取
m.add("Alex loves basketball.", user_id="alex")
# 搜索记忆 - 执行向量搜索
results = m.search("What does Alex like?", user_id="alex")
来源:docs/open-source/python-quickstart.mdx:34-57
TypeScript 快速入门(平台)
import MemoryClient from "mem0ai";
const client = new MemoryClient({ apiKey: "your-api-key" });
// 添加记忆
await client.add(
[{ role: "user", content: "I love hiking" }],
{ userId: "alice" }
);
来源:docs/llms.txt:60-71, mem0-ts/src/client/mem0.ts:251-254
常见安装问题
维度不匹配
如果使用维度不是 1536(例如 768)的自定义模型,必须更新向量存储配置以避免对齐错误。 解决方案:在 vector_store.config 中添加 "embedding_model_dims": 768。
来源:docs/components/vectordbs/overview.mdx:47-53
依赖管理
在本地开发中,该仓库使用 hatch 作为构建后端。
hatch env create:创建包含所有功能的开发环境Makefile:10-11。hatch run test:运行 pytest 测试套件Makefile:42-43。
来源:pyproject.toml:1-3, Makefile:1-53