docs(skill): model-auto-config端点/路径职责约定重写——端点可互换(主机根+region+timeout,protocol标签废止),profile.path=完整相对路径(含版本段),endpoint_ids空=全部端点;记录2026-09-12测试机数据迁移(自校验14/14)与已废止旧机制清单
This commit is contained in:
parent
d0eb95d436
commit
d8ba6f210f
@ -15,8 +15,9 @@ tools: [fetch_model_doc, extract_llm_api_spec, apply_llm_config, apply_model_pri
|
||||
1. **抓取**:`fetch_model_doc(url)` → 纯文本(末尾自动带 [出处URL] 行)。失败/内容不足如实说明,不凭记忆编。
|
||||
2. **提取**:`extract_llm_api_spec(doc_text)` → 结构化规格。**成功后规格自动锚定到本会话缓存**
|
||||
(会话级隔离,返回里有 `__anchored__` 提示)。重点核对:
|
||||
- `endpoints[].base_url / region`(domestic 国内 / international 国际)
|
||||
- `protocol`:能走 `/chat/completions` 的一律 `openai_compat`;提交+轮询的填 `dashscope_async`
|
||||
- `endpoints[].base_url / region`(domestic 国内 / international 国际)——
|
||||
base_url 只填**主机根**(scheme+域名),路径段归 chat_path/步骤 path(见「端点/路径职责约定」)
|
||||
- `protocol`:能走 chat/completions 语义的一律 `openai_compat`;提交+轮询的填 `dashscope_async`(协议只决定模板形态,不再参与端点选择)
|
||||
- `models[].capability`:必须在能力字典内(见硬规则)
|
||||
- `models[].sync_mode`:提交后需轮询的填 async
|
||||
- `pricing.items[]`:每条带 factor/unit_price/unit/dimensions/doc_quote(文档原文定价句)
|
||||
@ -119,32 +120,46 @@ schema 是 Bricks 动态表单的渲染契约,违规字段会被前端**静默
|
||||
- 模板渲染失败**不要**手工拼模板内容找用户确认方案——修正规格(补 request_example)重新
|
||||
extract→apply 即可,全链幂等;旧坏模板会被自动弃用重建
|
||||
|
||||
## 端点协议感知(2026-09-05 404 实测教训)
|
||||
## 端点/路径职责约定(2026-09-12 重构:端点可互换,废止协议感知)
|
||||
|
||||
**症状**:dashscope_async 原生模型 test_model_call 报「异步任务提交失败 HTTP 404」,
|
||||
但模板渲染正常。
|
||||
**核心原则(用户定夺)**:
|
||||
1. **模型和端点不能强绑定**:供应商有多个端点时,每个端点都必须支持所有模型。
|
||||
端点是纯连接点 = 主机根(scheme+域名)+ region + timeout,多端点只为冗余/区域/多 key。
|
||||
2. **模型中不能把端点写进 path**:profile.path 是从主机根起的**完整相对路径**
|
||||
(含版本段),运行时 url = 端点主机根 + path。禁止 path 写全 URL、禁止端点
|
||||
base_url 带路径段。
|
||||
|
||||
**根因链**(三个环,缺一环都不 404):
|
||||
1. 供应商同时挂两类端点:`compatible-mode/v1`(openai_compat 对话用)与
|
||||
`api/v1`(原生异步生成用),路径前缀不同、**不可互换**
|
||||
2. 账号「选用端点」只绑了 compatible-mode → 原生模型运行时被拼到
|
||||
`compatible-mode/v1/services/aigc/...` → 404
|
||||
3. 查询模板 path 带了 `/api/v1` 前缀,与端点 base_url 重复拼接 → 双前缀 404
|
||||
**新约定下的正确形态**(以阿里云百炼为例):
|
||||
- 端点:`https://dashscope.aliyuncs.com`(单主机根,timeout 取该主机全部接口
|
||||
形态的最大值,异步视频需 ≥120)
|
||||
- t2t/m2t profile.path:`/compatible-mode/v1/chat/completions`
|
||||
- 异步生成提交 path:`/api/v1/services/aigc/video-generation/video-synthesis`
|
||||
- 异步查询 path:`/api/v1/tasks/{task_id}`(单花括号占位符)
|
||||
- 账号 endpoint_ids:**空 = 选用全部端点**(语义即"任意端点皆可")
|
||||
|
||||
**机制修复**(已内置,无需人工):
|
||||
- 端点落库带 `protocol` 标签;裸域 base_url(无路径段)自动拦截不入目录
|
||||
- `_pick_candidate` 协议感知:模型模板 protocol 与端点标签匹配才可用;
|
||||
有匹配端点时**只选匹配项**(不匹配/未标注的都排除)
|
||||
- apply 自检:活跃账号未绑本协议端点 → 自动补绑并报 `account_notes`
|
||||
- 运行时 `_join_url` 拼接去重:path 带 base_url 已有前缀时不重复拼
|
||||
- 提交模板按精确命名(`{protocol}-{cap}-自动配置-{指纹}`)查找,查询/下载步骤模板
|
||||
命名形态不同,天然不会误选为提交模板(历史版本靠 LIKE 排除,已升级为指纹命名)
|
||||
**已废止的旧机制**(2026-09-05 协议感知,勿再照做):
|
||||
- ~~端点带 protocol 标签 + `_pick_candidate` 协议过滤~~ → 已删(它正是 t2t 间歇
|
||||
404 根因:模型无 profile → 过滤跳过 → 被轮询到 api/v1 原生端点拼
|
||||
/chat/completions 404)
|
||||
- ~~裸域 base_url 拦截~~ → 反转:主机根才是合法形态,apply/normalize_endpoints
|
||||
会把带路径段的输入确定性剥成主机根(同主机去重、timeout 取 max)
|
||||
- ~~账号"协议补绑"自检~~ → 已删(端点等价后无补绑场景)
|
||||
- ~~path 剥 base_url 前缀归一~~ → 反转:保留完整相对路径(`_norm_relative_path`
|
||||
只剥 scheme+host)
|
||||
|
||||
**给内部 agent 的规则**:
|
||||
- base_url 必须取文档示例 URL 除接口路径外的**完整前缀**(含 /api/v1 等路径段),
|
||||
裸域必 404;提取提示词已强调,若仍提成裸域用 overrides.base_url 纠正
|
||||
- 报 404 先看 apply 返回的 `account_notes`(账号绑定问题)与端点标签
|
||||
(供应商端点问题),不要重跑模板——模板渲染崩与端点 404 是两类病
|
||||
- 提取规格的 base_url 只填主机根;chat_path/各步骤 path 填完整相对路径(含版本段)。
|
||||
提取提示词已按新约定改写;apply 有确定性归一兜底,但规格本身要按新约定给。
|
||||
- 报 404 先核对 profile.path 是否完整(缺版本段)与端点是否主机根,不要重跑模板。
|
||||
- 同主机不同协议形态(compatible-mode 与 api/v1)**不再拆成多个端点**——同一主机根
|
||||
端点 + 不同 profile.path 即可。
|
||||
|
||||
**数据迁移记录(2026-09-12 测试机)**:7 供应商端点收敛主机根(智谱全角逗号
|
||||
脏数据一并修复);16 个 active profile path 补全前缀/全 URL 改相对;跨供应商共用
|
||||
profile 冲突(cHoLup m2t 被阿里+MiniMax 共用但版本段不同)按"克隆源模板只改
|
||||
path"拆分为独立 profile;空 profile 的 t2t/m2t 模型新建标准 openai_compat
|
||||
profile;账号 endpoint_ids 清空。迁移脚本带自校验(host+新path==旧数据下能跑通的
|
||||
目标 URL,14/14 active 模型 OK 才写库),备份在测试机 backups/。
|
||||
|
||||
## 定价(2026-09-05 新模式:一模型一方案,无 model 维度,无 filters)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user