docs(p1r): 记录外部验收依赖留痕
This commit is contained in:
parent
7155285940
commit
36fbcca486
179
docs/memorys/2026-06-02-P1R外部验收依赖留痕.md
Normal file
179
docs/memorys/2026-06-02-P1R外部验收依赖留痕.md
Normal 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 侧落库链路。
|
||||
22
muse-cloud/scripts/dev/p1r-external-acceptance.env
Normal file
22
muse-cloud/scripts/dev/p1r-external-acceptance.env
Normal 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
|
||||
Loading…
x
Reference in New Issue
Block a user