fix(compute): 按官网补对话型号的 tool_use 标签 (#119)

逐条对照供应商官方文档,核对 36 个对话规格与 70 个 Provider / 套餐预置条目
(capabilities 缺 tool_use / tools / function_calling)的工具调用支持情况:

- 补 tool_use 25 条:规格 9、随规格继承的接入条目 5、接入覆盖 11
- 保持原样 81 条:官方写明不支持或页面互相矛盾 10、已下线或数日内下线 26、
  官方当前文档无该型号或无工具调用说明 34、只在未适配接口上支持 2、官网读取失败 9
- 只改 capabilities,不动 routing;qwen-max 等按华北 2(北京)地域记,国际站不适用
- 同步单模型来源记录、供应商证据目录与来源缺口清单;逐条决定与依据见
  docs/source-rechecks/2026-10-05-tool-calling/README.md
- presetDataVersion 128 → 129
This commit is contained in:
2026-10-04 18:26:40 -07:00
committed by GitHub
parent a94a751078
commit e8122c1d77
73 changed files with 1014 additions and 302 deletions

View File

@@ -19,8 +19,8 @@
| [`dall-e-3`](../../model-sources/providers/openai/models/dall-e-3.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4.1-mini`](../../model-sources/providers/openai/models/gpt-4.1-mini.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`defaultTemperature`、`defaultTopP`、`extra.serverSideWebSearch.searchRequestPriceUsd`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4.1-mini`](../../model-sources/providers/openai/models/gpt-4.1-mini.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4.1-nano`](../../model-sources/providers/openai/models/gpt-4.1-nano.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`defaultTemperature`、`defaultTopP`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4.1-nano`](../../model-sources/providers/openai/models/gpt-4.1-nano.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4.1-nano`](../../model-sources/providers/openai/models/gpt-4.1-nano.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`defaultTemperature`、`defaultTopP`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched;[openai-gpt-4-1-nano-tools](../../model-sources/providers/openai/SOURCES.md#openai-gpt-4-1-nano-tools):fetched |
| [`gpt-4.1-nano`](../../model-sources/providers/openai/models/gpt-4.1-nano.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched;[openai-gpt-4-1-nano-tools](../../model-sources/providers/openai/SOURCES.md#openai-gpt-4-1-nano-tools):fetched |
| [`gpt-4.1`](../../model-sources/providers/openai/models/gpt-4.1.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`defaultTemperature`、`defaultTopP`、`extra.serverSideWebSearch.searchRequestPriceUsd`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4.1`](../../model-sources/providers/openai/models/gpt-4.1.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-4o-mini`](../../model-sources/providers/openai/models/gpt-4o-mini.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`defaultTemperature`、`defaultTopP`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
@@ -29,8 +29,8 @@
| [`gpt-4o-realtime`](../../model-sources/providers/openai/models/gpt-4o-realtime.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5-mini`](../../model-sources/providers/openai/models/gpt-5-mini.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5-mini`](../../model-sources/providers/openai/models/gpt-5-mini.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens`、`spec.supportsReasoning` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5-nano`](../../model-sources/providers/openai/models/gpt-5-nano.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5-nano`](../../model-sources/providers/openai/models/gpt-5-nano.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5-nano`](../../model-sources/providers/openai/models/gpt-5-nano.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched;[openai-gpt-5-nano-tools](../../model-sources/providers/openai/SOURCES.md#openai-gpt-5-nano-tools):fetched |
| [`gpt-5-nano`](../../model-sources/providers/openai/models/gpt-5-nano.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched;[openai-gpt-5-nano-tools](../../model-sources/providers/openai/SOURCES.md#openai-gpt-5-nano-tools):fetched |
| [`gpt-5-pro`](../../model-sources/providers/openai/models/gpt-5-pro.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5-pro`](../../model-sources/providers/openai/models/gpt-5-pro.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.defaultTemperature`、`spec.maxOutputTokens`、`spec.supportsReasoning` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-5.1`](../../model-sources/providers/openai/models/gpt-5.1.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
@@ -64,7 +64,7 @@
| [`gpt-image-2.5-sunburst`](../../model-sources/providers/openai/models/gpt-image-2.5-sunburst.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-image-2`](../../model-sources/providers/openai/models/gpt-image-2.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `extra.imageCachedInputPrice`、`extra.imageInputPrice`、`extra.textCachedInputPrice`、`inputPrice`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-image-2`](../../model-sources/providers/openai/models/gpt-image-2.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-oss-120b`](../../model-sources/providers/openai/models/gpt-oss-120b.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-oss-120b`](../../model-sources/providers/openai/models/gpt-oss-120b.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.maxOutputTokens` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched;[openai-gpt-oss-120b-tools](../../model-sources/providers/openai/SOURCES.md#openai-gpt-oss-120b-tools):fetched |
| [`gpt-realtime-2.1-mini`](../../model-sources/providers/openai/models/gpt-realtime-2.1-mini.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `contextWindow`、`extra.audioCachedInputPrice`、`extra.audioInputPrice`、`extra.audioOutputPrice`、`extra.imageCachedInputPrice`、`extra.imageInputPrice`、`extra.textCachedInputPrice`、`inputPrice`、`maxOutputTokens`、`modelName`、`outputPrice` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-reserve`](../../model-sources/providers/openai/models/gpt-reserve.md) | [`compute/providers/openai-codex.json`](../../../compute/providers/openai-codex.json) | `contextWindow`、`extra.reasoning.defaultEffort`、`extra.reasoning.supportedEfforts`、`maxOutputTokens`、`modelName` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
| [`gpt-reserve`](../../model-sources/providers/openai/models/gpt-reserve.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `id`、`spec.contextWindow`、`spec.maxOutputTokens`、`spec.supportsReasoning` | [openai-models](../../model-sources/providers/openai/SOURCES.md#openai-models):fetched |
@@ -109,7 +109,7 @@
| --- | --- | --- | --- |
| [`gpt-5.4-mini`](../../model-sources/providers/openai/models/gpt-5.4-mini.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `extra.serverSideWebSearch.searchRequestPriceUsd` | [gpt-5-4-mini-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-mini-api):fetched |
| [`gpt-5.4-mini`](../../model-sources/providers/openai/models/gpt-5.4-mini.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | `spec.supportsReasoning` | [gpt-5-4-mini-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-mini-api):fetched |
| [`gpt-5.4-nano`](../../model-sources/providers/openai/models/gpt-5.4-nano.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `extra.serverSideWebSearch.searchRequestPriceUsd` | [gpt-5-4-nano-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-nano-api):fetched |
| [`gpt-5.4-nano`](../../model-sources/providers/openai/models/gpt-5.4-nano.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `extra.serverSideWebSearch.searchRequestPriceUsd` | [gpt-5-4-nano-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-nano-api):fetched;[openai-gpt-5-4-nano-tools](../../model-sources/providers/openai/SOURCES.md#openai-gpt-5-4-nano-tools):fetched |
| [`gpt-5.4-nano`](../../model-sources/providers/openai/models/gpt-5.4-nano.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | 已登记关键字段都有证明;其他合同限制仍按原记录复核 | [gpt-5-4-nano-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-nano-api):fetched |
| [`gpt-5.4-pro`](../../model-sources/providers/openai/models/gpt-5.4-pro.md) | [`compute/providers/openai.json`](../../../compute/providers/openai.json) | `extra.serverSideWebSearch.searchRequestPriceUsd` | [gpt-5-4-pro-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-pro-api):fetched |
| [`gpt-5.4-pro`](../../model-sources/providers/openai/models/gpt-5.4-pro.md) | [`compute/model-specs/openai.json`](../../../compute/model-specs/openai.json) | 已登记关键字段都有证明;其他合同限制仍按原记录复核 | [gpt-5-4-pro-api](../../model-sources/providers/openai/SOURCES.md#gpt-5-4-pro-api):fetched |