4.9 KiB
4.9 KiB
织忆 (MemoryWeave) — 手动安装指南
本文档提供非 Docker 环境下的完整安装步骤(systemd 用户级服务)。
前置条件
- Linux(本文以 Arch Linux 为例)
- Go 1.21+
- Redis 7.0+(可选,内存模式可跳过)
- systemd(用户级服务支持)
Step 0:确认目录结构
mkdir -p ~/.config/systemd/user
mkdir -p ~/.local/bin
mkdir -p /var/lib/memoryweave
mkdir -p ~/.logs
Step 1:构建二进制
cd ~/projects/memoryweave
# 构建 Go daemon
make build
# 构建 CLI 工具(可选)
make build-cli
# 确认二进制存在
ls -lh ~/projects/memoryweave/go/cmd/zhiyid/zhiyid
Step 2:安装二进制
# 复制到用户 bin 目录(已在 PATH 中)
cp ~/projects/memoryweave/go/cmd/zhiyid/zhiyid ~/.local/bin/zhiyid
chmod +x ~/.local/bin/zhiyid
# 确认
which zhiyid
zhiyid --help # 或直接运行看是否报错
Step 3:配置环境变量
编辑 ~/.config/zhiyi/config.env(或直接使用 systemd service 中的 Environment):
mkdir -p ~/.config/zhiyi
cat > ~/.config/zhiyi/config.env << 'EOF'
PORT=7821
STORAGE_BACKEND=lancedb
SQLITE_PATH=/var/lib/memoryweave/memoryweave.db
GRAPH_PATH=/var/lib/memoryweave/graph.db
API_KEY=your-secret-api-key-here
VLLM_ENDPOINT=http://127.0.0.1:8000/v1/embeddings
RERANK_ENDPOINT=https://ai.gitee.com/v1
LLM_ENDPOINT=http://127.0.0.1:3000/v1/chat/completions
LLM_MODEL=qwen/qwen3.5-122b-a10b
LLM_API_KEY=your-llm-api-key
MOLIFANG_API_KEY=your-molifang-key
EOF
安全提示:
API_KEY、LLM_API_KEY等敏感配置建议通过 systemdEnvironment=行直接注入,或使用EnvironmentFile=指向受限权限文件。
Step 4:安装 systemd 服务
# 方法一:使用项目中的 service 文件
cp ~/projects/memoryweave/deploy/zhiyid.service ~/.config/systemd/user/zhiyid.service
# 方法二:手动创建(完整示例见下方)
cat > ~/.config/systemd/user/zhiyid.service << 'EOF'
[Unit]
Description=ZhiYi MemoryWeave (织忆) — Go Service
After=network.target
[Service]
Type=simple
ExecStartPre=/bin/mkdir -p /var/lib/memoryweave ~/.logs
ExecStart=/home/muc/.local/bin/zhiyid
Restart=always
RestartSec=5
Environment=PORT=7821
Environment=STORAGE_BACKEND=lancedb
Environment=SQLITE_PATH=/var/lib/memoryweave/memoryweave.db
Environment=GRAPH_PATH=/var/lib/memoryweave/graph.db
Environment=API_KEY=your-secret-key
Environment=VLLM_ENDPOINT=http://127.0.0.1:8000/v1/embeddings
Environment=RERANK_ENDPOINT=https://ai.gitee.com/v1
Environment=LLM_ENDPOINT=http://127.0.0.1:3000/v1/chat/completions
Environment=LLM_MODEL=qwen/qwen3.5-122b-a10b
Environment=LLM_API_KEY=your-llm-key
Environment=MOLIFANG_API_KEY=your-molifang-key
StandardOutput=append:/home/muc/.logs/zhiyid.log
StandardError=append:/home/muc/.logs/zhiyid.log
[Install]
WantedBy=default.target
EOF
编辑密钥:将上述 your-secret-key 等替换为真实值。
Step 5:重载 systemd 并启动
# 重载 daemon
systemctl --user daemon-reload
# 启用(开机自启)
systemctl --user enable zhiyid
# 启动
systemctl --user start zhiyid
# 检查状态
systemctl --user status zhiyid
Step 6:验证
# 健康检查
curl http://localhost:7821/health
# 查看日志
journalctl --user -u zhiyid -n 20 --no-pager
# 获取统计
curl -H "X-API-Key: your-secret-key" http://localhost:7821/api/v1/stats | jq .
常见问题
Q:服务启动失败
# 查看详细日志
journalctl --user -u zhiyid -xe --no-pager
常见原因:
- 端口 7821 被占用 → 修改
PORT环境变量 - 目录不存在 →
mkdir -p /var/lib/memoryweave ~/.logs - 二进制无执行权限 →
chmod +x ~/.local/bin/zhiyid
Q:Redis 未安装
默认降级为内存存储,无需 Redis。保留 redis-server.service 相关行无影响。
Q:用户级 systemd 开机不启动
确保 lingering 已开启:
loginctl enable-linger $USER
Q:查看日志文件
tail -f ~/.logs/zhiyid.log
Q:升级 zhiyid
# 重新构建
make build
# 替换二进制
cp ~/projects/memoryweave/go/cmd/zhiyid/zhiyid ~/.local/bin/zhiyid
# 重启服务
systemctl --user restart zhiyid
目录权限
# 数据目录
sudo chown -R $(id -u):$(id -g) /var/lib/memoryweave
sudo chmod 700 /var/lib/memoryweave
# 日志目录
mkdir -p ~/.logs
chmod 700 ~/.logs
# config
chmod 600 ~/.config/zhiyi/config.env
Rust sidecar 安装(可选)
如需完整的 LanceDB IPC 支持,还需安装 zhiyi-consolidate:
make build-rust
sudo cp ~/projects/memoryweave/rust/target/release/zhiyi-consolidate /usr/local/bin/
# 安装 systemd service + timer
sudo cp ~/projects/memoryweave/deploy/zhiyi-consolidate.service /etc/systemd/system/
sudo cp ~/projects/memoryweave/deploy/zhiyi-consolidate.timer /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now zhiyi-consolidate.timer