Files
knowledge-base/AI/mem0/deploy.md
2026-05-30 14:18:17 +00:00

152 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# mem0 自托管部署
## 镜像
```
ccr.ccs.tencentyun.com/tei_agent/mem0:latest
```
## 依赖服务tei namespace
| 服务 | 地址 | 用途 |
|---|---|---|
| PostgreSQL | 192.168.3.49:5432 | 关系数据存储 |
| Qdrant | qdrant:6333 | 向量存储 |
| TEI (BGE-M3) | tei:8080 | Embedder文本→向量 |
## 环境变量
### ConfigMap (mem0-env)
| 变量 | 值 | 说明 |
|---|---|---|
| DATABASE_URL | postgres://gitlab:gitlab@192.168.3.49:5432/mem0 | 连接字串 |
| APP_DB_NAME | mem0_app | 数据库名 |
| QDRANT_HOST | qdrant | Qdrant 服务地址 |
| QDRANT_PORT | 6333 | Qdrant 端口 |
| QDRANT_COLLECTION_NAME | mem0 | 集合名 |
| EMBEDDER_PROVIDER | tei | Embedder 使用 TEI |
| TEI_ENDPOINT | http://tei:8080 | TEI endpoint |
| LLM_PROVIDER | openai | LLM providerMiniMax 兼容 OpenAI 格式) |
| OPENAI_API_KEY | YOUR_MINIMAX_KEY | MiniMax API key |
| OPENAI_BASE_URL | https://api.minimax.chat/v1 | MiniMax API 地址 |
| AUTH_DISABLED | false | 启用认证 |
| MEM0_TELEMETRY | false | 关闭遥测 |
| REQUEST_LOG_RETENTION_DAYS | 30 | 日志保留天数 |
### Secret (mem0-secrets)
| 变量 | 说明 |
|---|---|
| JWT_SECRET | JWT 签名密钥 |
| ADMIN_API_KEY | 管理后台 API key |
| POSTGRES_PASSWORD | PostgreSQL 密码 |
## 部署清单
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mem0-env
namespace: tei
data:
DATABASE_URL: "postgres://gitlab:gitlab@192.168.3.49:5432/mem0"
APP_DB_NAME: "mem0_app"
QDRANT_HOST: "qdrant"
QDRANT_PORT: "6333"
QDRANT_COLLECTION_NAME: "mem0"
EMBEDDER_PROVIDER: "tei"
TEI_ENDPOINT: "http://tei:8080"
LLM_PROVIDER: "openai"
OPENAI_API_KEY: "YOUR_MINIMAX_KEY"
OPENAI_BASE_URL: "https://api.minimax.chat/v1"
AUTH_DISABLED: "false"
MEM0_TELEMETRY: "false"
REQUEST_LOG_RETENTION_DAYS: "30"
---
apiVersion: v1
kind: Secret
metadata:
name: mem0-secrets
namespace: tei
type: Opaque
stringData:
JWT_SECRET: "your-jwt-secret-change-me"
ADMIN_API_KEY: "your-admin-key-change-me"
POSTGRES_PASSWORD: "gitlab"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mem0
namespace: tei
spec:
replicas: 1
selector:
matchLabels:
app: mem0
template:
metadata:
labels:
app: mem0
spec:
containers:
- name: mem0
image: ccr.ccs.tencentyun.com/tei_agent/mem0:latest
ports:
- containerPort: 8000
name: http
envFrom:
- configMapRef:
name: mem0-env
- secretRef:
name: mem0-secrets
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 10
periodSeconds: 5
resources:
limits:
cpu: "2"
memory: "4Gi"
requests:
cpu: "500m"
memory: "1Gi"
---
apiVersion: v1
kind: Service
metadata:
name: mem0
namespace: tei
spec:
ports:
- port: 8000
name: http
selector:
app: mem0
```
## 前置要求
1. **pgvector 扩展** — PostgreSQL 需要安装 pgvector
2. **mem0_app 数据库** — 需要提前创建
3. **Qdrant collection** — mem0 启动时自动创建(首次调用时)
## 验证
```bash
kubectl get pods -n tei -l app=mem0
kubectl logs -n tei -l app=mem0 --tail=50
# 健康检查
curl http://mem0:8000/health
```