2.6 KiB
2.6 KiB
title, created
| title | created |
|---|---|
| 部署指南 | 2026-02-25 |
部署指南
前置条件
- Python 3.10+,已安装 uv
- Docker + Docker Compose(含 pgvector 扩展,推荐)或本机 PostgreSQL 15+
- OpenRouter API key
步骤
1. 启动 pgvector
在 .scripts/memory/ 目录下创建 docker-compose.yml:
services:
postgres:
image: pgvector/pgvector:pg16
container_name: pgvector
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: memory
ports:
- "5432:5432"
volumes:
- pg_data:/var/lib/postgresql/data
- ./initdb:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d memory"]
interval: 5s
timeout: 3s
retries: 20
volumes:
pg_data:
启动:
docker compose up -d
# 等待 healthy 后再继续
docker compose ps
2. 初始化 Schema
psql postgresql://postgres:postgres@localhost:5432/memory -f schema.sql
3. 配置环境变量
cp .env.memory.example .env.memory
# 编辑 .env.memory,填入 VAULT_DIR 和 OPENROUTER_API_KEY
必填项:
VAULT_DIR=/path/to/your/obsidian-vault
PG_DSN=postgresql://postgres:postgres@localhost:5432/memory
OPENROUTER_API_KEY=sk-or-v1-...
OPENROUTER_EMBED_MODEL=openai/text-embedding-3-small
OPENROUTER_EMBED_DIM=1536
4. 安装依赖
uv sync
5. 全量索引
uv run python ingest_vault.py
预期输出:[DONE] 全量索引完成 primary=N secure=N ...
6. 安装 Git Hook(在 vault 目录执行)
bash /path/to/vault-memory-pgvector/install-hook.sh
验证:.git/hooks/post-commit 中出现 memory async index hook begin
验收检查
| 检查项 | 命令 | 预期 |
|---|---|---|
| DB 连通 | psql $PG_DSN -c "SELECT 1;" |
返回 1 |
| 表存在 | psql $PG_DSN -c "\dt memory_*" |
两张表可见 |
| 索引条数 | psql $PG_DSN -c "SELECT count(*) FROM memory_primary;" |
> 0 |
| 查询链路 | uv run python query_pgvector.py "测试查询" |
返回 <retrieved_context> 块 |
| Hook 生效 | 提交一个 .md 文件后查看 .memory-sync.log |
出现 [UPSERTED] |
回滚
禁用记忆同步(不删数据):
# 编辑 vault 的 .git/hooks/post-commit
# 删除 --- memory async index hook begin --- 到 --- memory async index hook end --- 之间的内容
清空数据库:
psql postgresql://postgres:postgres@localhost:5432/memory \
-c "TRUNCATE memory_primary, memory_secure_audit;"