feat: 回忆录证据血缘与内部评测可追溯,顺带对齐本地评测台与 CI

数据库与模型:新增多版迁移(章节证据快照、对话血缘、记忆事实/时间线 lineage 等),把「成稿 ↔ 对话/记忆」的溯源信息落到表结构里。
业务链路:会话与 WS、回忆录/故事流水线、记忆写入与 enrichment 等跟着接上线索与快照;新增章节证据快照与评测侧 EvalTraceService 等模块,方便组评审用的证据包。
内部评测:自动化 run 与手工 memoir 评审共用可追溯证据;rubric/ judge 相关脚本与文档有配套调整。
app-eval-web:Memoir/实验详情里能展开看证据摘要与 evidence_trace(含对话轮次 id);Vite 代理与 development.sh 注入的 API 端口与当前默认内部评测端口一致,避免改端口后页面连错服务。
工程杂项:GitHub Actions / 仓库说明有更新;各适配器与支付/配额/plan 等多处为小改动或跟随主改动的收尾;新增/扩充了?
This commit is contained in:
Kevin
2026-04-08 15:37:09 +08:00
parent 6772e1269c
commit 309a051038
109 changed files with 4125 additions and 858 deletions

View File

@@ -1,83 +1,44 @@
# 快速配置指南
# Docker API 部署 — Secrets 快速清单
## GitHub Secrets 配置清单
与 [docker-build-deploy.yml](docker-build-deploy.yml) 保持一致。在 **Settings → Secrets and variables → Actions** 中配置(仓库级 Secrets
在 GitHub 仓库的 **Settings → Secrets and variables → Actions** 中添加以下 Secrets
## 必需
### 必需配置
| Secret | 说明 |
|--------|------|
| `STAGING_SSH_PRIVATE_KEY` | 预发机 SSH 私钥全文 |
| `STAGING_SSH_HOST` | 预发机主机名或 IP |
| `STAGING_SSH_USER` | SSH 用户名 |
| `STAGING_SSH_PORT` | SSH 端口(默认 `22` |
| `STAGING_DEPLOY_PATH` | 预发机上的部署目录 |
| `PROD_SSH_PRIVATE_KEY` | 生产机 SSH 私钥(可与预发不同) |
| `PROD_SSH_HOST` | 生产机主机 |
| `PROD_SSH_USER` | 生产 SSH 用户 |
| `PROD_SSH_PORT` | 生产 SSH 端口 |
| `PROD_DEPLOY_PATH` | 生产部署目录 |
| `ALIYUN_CR_USERNAME` | 阿里云 ACR 用户名 |
| `ALIYUN_CR_PASSWORD` | 阿里云 ACR 密码 |
1. **SSH_PRIVATE_KEY**
- 描述SSH 私钥,用于连接到远程服务器
- 生成方法:
```bash
ssh-keygen -t ed25519 -C "github-actions"
cat ~/.ssh/id_ed25519 # 复制全部内容
```
- 将公钥添加到远程服务器:
```bash
cat ~/.ssh/id_ed25519.pub | ssh user@your-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
```
> **Tag 部署**:推送 `v*.*.*`(如 `v1.2.0`)时使用 `PROD_*`。**main 分支推送**使用 `STAGING_*`。
2. **SSH_USER**
- 描述SSH 用户名
- 示例:`root`、`ubuntu`、`deploy`
## 触发条件
3. **SSH_HOST**
- 描述:远程服务器 IP 或域名
- 示例:`192.168.1.100`、`example.com`
- `push``main`:改动了 `api/**``.github/workflows/**` 时,先跑 **API tests**`uv sync --dev` + `pytest`),再构建镜像并部署预发。
- `push` tag `v*.*.*`:同上路径过滤;部署生产。
- **workflow_dispatch**:可选手动指定 ref。
4. **ALIYUN_CR_USERNAME**
- 描述:阿里云容器镜像服务用户名
- 值:`zaikunxu`
仓库内需存在 **`api/.env.staging`** / **`api/.env.production`**(供部署 job 校验与上传);勿将真实密钥提交到公开分支。
5. **ALIYUN_CR_PASSWORD**
- 描述:阿里云容器镜像服务密码
- 值:`57ucV,g4LF2cqm8`
## 本地验证 SSH
### 可选配置
6. **SSH_PORT**
- 描述SSH 端口默认22
- 示例:`22`、`2222`
7. **DEPLOY_PATH**
- 描述:远程服务器部署目录(默认:/opt/life-echo
- 示例:`/opt/life-echo`、`/home/deploy/life-echo`
## 镜像信息
- **镜像仓库地址**`crpi-u2903xccyzd6nqnc.cn-shanghai.personal.cr.aliyuncs.com`
- **命名空间**`huaga`
- **镜像名称**`lifecho-api`
- **完整镜像路径**`crpi-u2903xccyzd6nqnc.cn-shanghai.personal.cr.aliyuncs.com/huaga/lifecho-api:latest`
## 验证配置
配置完成后,推送代码到 `main`、`master` 或 `develop` 分支,工作流会自动触发。
或者手动触发:
1. 进入仓库的 **Actions** 标签页
2. 选择 **Docker Build and Deploy** 工作流
3. 点击 **Run workflow** 按钮
## 常见问题
### 1. 如何查看工作流执行日志?
- 进入 **Actions** 标签页,点击对应的运行记录查看详细日志
### 2. 如何测试 SSH 连接?
```bash
ssh -i ~/.ssh/id_ed25519 user@your-server
ssh -i ~/.ssh/your_key -p 22 user@your-host
```
### 3. 如何测试 Docker 登录
## 本地验证 registry 登录
```bash
docker login crpi-u2903xccyzd6nqnc.cn-shanghai.personal.cr.aliyuncs.com \
--username=zaikunxu \
--password=57ucV,g4LF2cqm8
docker login <registry> --username=<ACR_USERNAME> --password-stdin
```
### 4. 部署失败怎么办?
- 检查 GitHub Actions 日志中的错误信息
- 确认远程服务器可以访问阿里云容器镜像服务
- 验证 SSH 连接和 Docker 权限
(密码从控制台或密钥管理读取,勿写入文档。)