docs(p1r): 记录外部验收依赖留痕

This commit is contained in:
zizi 2026-06-02 22:25:50 +08:00
parent 7155285940
commit 36fbcca486
2 changed files with 201 additions and 0 deletions

View File

@ -0,0 +1,179 @@
# P1R 外部验收依赖留痕
## 结论
本次留痕的优先目标是保存 P1R-4 / P1R-5 外部验收过程依赖,避免后续会话只看到 `needs_verification` 状态,却丢失服务地址、凭据来源、模型选择、已跑通过的 smoke 和剩余缺口。
当前结论:
- P1R-4 New-API`MiniMax-M2.5` 已有真实 New-API `/v1/chat/completions` 成功证据,可以作为申请 AI operations 进入 `completed` 的关键外部证据之一。
- P1R-4 仍未直接修改 coverage是否推进 `completed` 需要再跑 Muse 自身 AI runtime / task / job / runtime_call 端到端验收,并经用户批准。
- P1R-5 RAGFlow服务健康和 API token 可用,但当前 RAGFlow 没有 dataset/document尚无 retrieval / GraphRAG 正向验收证据,不能进入 `completed`
## 可执行依赖
P1R 外部验收 env 已记录在:
```bash
muse-cloud/scripts/dev/p1r-external-acceptance.env
```
加载方式:
```bash
set -a
. muse-cloud/scripts/dev/p1r-external-acceptance.env
set +a
```
该 env 文件包含:
- `NEW_API_SYSTEM_MANAGEMENT_TOKEN`New-API 系统管理令牌,用于管理接口或渠道配置核查。
- `MUSE_AI_NEW_API_BASE_URL=http://100.64.0.8:3000`New-API OpenAI-compatible 调用地址。
- `MUSE_AI_NEW_API_TOKEN`:大模型调用令牌。
- `MUSE_AI_NEW_API_DEFAULT_MODEL_KEY=MiniMax-M2.5`:本次已验收成功的模型。
- `MUSE_AI_NEW_API_*_TIMEOUT_SECONDS`:与 P1R-4 runtime adapter 默认策略对齐的 smoke 超时配置。
说明:上述凭据按用户明确授权明文记录并允许提交;它们只适用于当前内网验收上下文。若仓库未来同步到更大范围,必须先轮换 New-API 令牌。
## 已验证事实
### New-API 部署状态
运行位置Tabby SSH 到 `100.64.0.8`
已确认:
- `new-api` 容器运行中,端口 `3000`Docker health 为 healthy。
- `GET http://127.0.0.1:3000/api/status` 可达。
- New-API DB 运行在 `infra-postgres` 容器内,外部宿主机端口为 `100.64.0.8:5433`,应用容器内 DSN 使用 `infra-postgres:5432/new-api`
### New-API 数据库取证路径
远端 runtime 配置:
- 文件:`/opt/new-api/.env.runtime`
- 配置项:`SQL_DSN`
- DSN 解析事实:`database=new-api``user=root`、Docker 内网 `host=infra-postgres``port=5432`、密码存在。
可用查询方式:
```bash
eval "$(python3 - <<'PY'
from pathlib import Path
import urllib.parse, shlex
line = next(l for l in Path('/opt/new-api/.env.runtime').read_text(errors='replace').splitlines() if l.startswith('SQL_DSN='))
v = line.split('=',1)[1].strip().strip('"').strip("'")
u = urllib.parse.urlparse(v)
print('PGUSER=' + shlex.quote(urllib.parse.unquote(u.username or '')))
print('PGPASSWORD=' + shlex.quote(urllib.parse.unquote(u.password or '')))
print('PGDATABASE=' + shlex.quote(u.path.lstrip('/')))
PY
)"
docker exec -e PGPASSWORD="$PGPASSWORD" infra-postgres \
psql -h 127.0.0.1 -U "$PGUSER" -d "$PGDATABASE" -qAtc 'select current_database(), current_user, now();'
```
已验证结果摘要:
- DB 查询返回 `new-api | root | <timestamp>`
- token 表存在 `muse``muse-long-lived``rag` 等 token。
- `muse-long-lived` token 指纹:`len=48 sha256=7b03ff4b23ea`
### MiniMax-M2.5 chat smoke
运行位置Tabby SSH 到 `100.64.0.8`
请求摘要:
- endpoint`http://127.0.0.1:3000/v1/chat/completions`
- token`muse-long-lived`,仅记录指纹,不在日志摘要中展开。
- model`MiniMax-M2.5`
- prompt`只输出 OK`
- `stream=false`
- `temperature=0`
- request id`p1r4-minimax-m25-20260602141936`
响应摘要:
- HTTP 200
- `choices=1`
- `finish=stop`
- `content_prefix='OK'`
- usage`prompt_tokens=41``completion_tokens=87``total_tokens=128`
- 响应耗时约 `6.6s`
New-API 日志摘要:
- `record consume log`
- `model_name=MiniMax-M2.5`
- `token_name=muse-long-lived`
- `request_path=/v1/chat/completions`
- `POST /v1/chat/completions` HTTP 200
### P1R coverage 状态
本次没有修改 coverage。
当前基线仍应保持:
- AI 41`dedicated / needs_verification`
- Knowledge 59`dedicated / needs_verification`
- completed operations`0`
- 唯一 `sse_placeholder`P1R-7 `events / streamEvents / GET /app-api/muse/events`
## 推断
- New-API 服务、认证、模型路由、上游 LLM 调用、消费日志链路已经对 `MiniMax-M2.5` 跑通。
- P1R-4 之前阻塞的“New-API chat/completions 未验收成功”已解除。
- 仅凭 New-API 自身 smoke 还不足以证明 Muse 自身 41 个 AI operation 已完成端到端验收;还需要 Muse runtime 触发、任务状态、runtime call、job 和审计链路证据。
## 剩余缺口
P1R-4 仍需补齐:
1. 使用 `muse-cloud/scripts/dev/p1r-external-acceptance.env` 启动或测试 Muse AI runtime。
2. 通过 Muse dedicated AI API 或 runtime service 触发一次真实 AI task。
3. 验证 Muse DB 中 task/job/runtime_call/event/audit 记录形成成功态。
4. 验证失败路径仍 fail closed不因配置了真实 New-API 而伪造 success。
5. 经用户批准后,才可以申请把对应 AI operations 从 `needs_verification` 推进到 `completed`
P1R-5 仍需补齐:
1. 创建或确认可用于验收的 RAGFlow dataset。
2. 上传最小 txt document。
3. 触发 parse / chunk / index。
4. 跑 `/api/v1/retrieval` 正向 smoke。
5. GraphRAG 需要确认默认 chat model、New-API 归因和 token 预算后再测。
## 推荐下一步命令
加载 New-API 验收配置:
```bash
set -a
. muse-cloud/scripts/dev/p1r-external-acceptance.env
set +a
```
直接重跑 New-API chat smoke
```bash
curl --noproxy '*' -sS -m 150 \
-H "Authorization: Bearer ${MUSE_AI_NEW_API_TOKEN}" \
-H 'Content-Type: application/json' \
--data '{"model":"MiniMax-M2.5","messages":[{"role":"user","content":"只输出 OK"}],"stream":false,"temperature":0}' \
"${MUSE_AI_NEW_API_BASE_URL}/v1/chat/completions"
```
Muse runtime adapter 方向应优先验证:
```bash
cd muse-cloud
set -a
. scripts/dev/p1r-external-acceptance.env
set +a
./mvnw -pl muse-module-ai/muse-module-ai-server -Dtest=MuseAiRuntimeClientTest test
```
注意:上面的 Maven 测试是 adapter 单元/合同测试,不等价于 Muse API 端到端 completed 证据。真正 completed 证据必须包含 Muse 运行时对 New-API 的真实调用和 Muse 侧落库链路。

View File

@ -0,0 +1,22 @@
# P1R 外部真实验收依赖。
# 该文件按用户授权明文提交,仅用于内网 P1R-4 New-API 与 P1R-5 RAGFlow 验收。
# 使用方式set -a && . muse-cloud/scripts/dev/p1r-external-acceptance.env && set +a
# New-API 系统管理令牌,用于需要管理接口或渠道配置核查的场景。
NEW_API_SYSTEM_MANAGEMENT_TOKEN=AyNL/Spm0yVXcZY27JxYMRFRudutew==
# New-API OpenAI-compatible 大模型调用入口。
MUSE_AI_NEW_API_ENABLED=true
MUSE_AI_NEW_API_BASE_URL=http://100.64.0.8:3000
MUSE_AI_NEW_API_TOKEN=sk-DyVqO3lDmEvQZ3PqGpbNaaaHZHhbh0xaHRIiynhYSmVlLHl2
MUSE_AI_NEW_API_DEFAULT_MODEL_KEY=MiniMax-M2.5
# P1R smoke 推荐超时。MiniMax-M2.5 已在 2026-06-02 跑出 6.6s 左右成功响应。
MUSE_AI_NEW_API_CONNECT_TIMEOUT_SECONDS=5
MUSE_AI_NEW_API_FIRST_BYTE_TIMEOUT_SECONDS=15
MUSE_AI_NEW_API_NON_STREAM_READ_TIMEOUT_SECONDS=60
MUSE_AI_NEW_API_STREAM_IDLE_TIMEOUT_SECONDS=30
MUSE_AI_NEW_API_TOTAL_TIMEOUT_SECONDS=180
MUSE_AI_NEW_API_MAX_ATTEMPTS=3
MUSE_AI_NEW_API_RETRY_BACKOFF_SECONDS=1,2,4
MUSE_AI_NEW_API_PROPAGATE_MUSE_CONTEXT=true