diff --git a/AI/mem0/deploy.md b/AI/mem0/deploy.md index 4de4e89..c3d0799 100644 --- a/AI/mem0/deploy.md +++ b/AI/mem0/deploy.md @@ -135,15 +135,158 @@ spec: app: mem0 ``` +## History PVC(SQLite 持久化) + +mem0 的对话历史(history)默认存在 SQLite,**必须用 PVC 持久化**(emptyDir 重启丢失)。 + +### 前置:创建 PVC + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mem0-history + namespace: tei +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: standard # 根据你的 StorageClass 调整 +``` + +### 环境变量追加 + +| 变量 | 值 | 说明 | +|---|---|---| +| HISTORY_DB_PATH | /app/data/mem0_history.db | SQLite 数据库路径 | + +### PVC + 完整 Deployment + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mem0-history + namespace: tei +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: standard +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mem0-env + namespace: tei +data: + DATABASE_URL: "postgres://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" + HISTORY_DB_PATH: "/app/data/mem0_history.db" +--- +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 + volumeMounts: + - name: mem0-history + mountPath: /app/data + 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" + volumes: + - name: mem0-history + persistentVolumeClaim: + claimName: mem0-history +--- +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 启动时自动创建(首次调用时) +4. **mem0-history PVC** — 必须提前创建 ## 验证 ```bash +kubectl get pvc -n tei mem0-history kubectl get pods -n tei -l app=mem0 kubectl logs -n tei -l app=mem0 --tail=50