fix(ai): correct Azure gpt-5.4/5.5 context window and gpt-5-pro maxTokens
Azure Foundry deploys gpt-5.4 and gpt-5.5 with a 1,050,000 context window, but the Azure provider cloned OpenAI-direct's 272k API limit. Override the context window in the Azure derivation. Also fix gpt-5-pro maxTokens, which upstream metadata set to 272000 (a duplicate of the input sub-limit) instead of the actual 128000 max output; corrected at the source so OpenAI-direct and Azure both match. closes #5559
This commit is contained in:
@@ -13,6 +13,8 @@
|
|||||||
- Fixed OpenCode completions model metadata to send explicit `maxTokens` as `max_tokens` ([#5331](https://github.com/earendil-works/pi/issues/5331)).
|
- Fixed OpenCode completions model metadata to send explicit `maxTokens` as `max_tokens` ([#5331](https://github.com/earendil-works/pi/issues/5331)).
|
||||||
- Fixed Moonshot Kimi thinking-off requests to send the provider's `thinking: { type: "disabled" }` compatibility parameter ([#5531](https://github.com/earendil-works/pi/issues/5531)).
|
- Fixed Moonshot Kimi thinking-off requests to send the provider's `thinking: { type: "disabled" }` compatibility parameter ([#5531](https://github.com/earendil-works/pi/issues/5531)).
|
||||||
- Fixed Azure OpenAI Responses requests to disable server-side response storage ([#5530](https://github.com/earendil-works/pi/issues/5530)).
|
- Fixed Azure OpenAI Responses requests to disable server-side response storage ([#5530](https://github.com/earendil-works/pi/issues/5530)).
|
||||||
|
- Fixed Azure GPT-5.4 and GPT-5.5 context window metadata to 1,050,000 tokens, matching Azure Foundry deployments instead of OpenAI's 272k limit ([#5559](https://github.com/earendil-works/pi/issues/5559)).
|
||||||
|
- Fixed OpenAI and Azure GPT-5 Pro `maxTokens` metadata to 128,000, correcting an upstream value that duplicated the 272,000 input sub-limit as the output limit ([#5559](https://github.com/earendil-works/pi/issues/5559)).
|
||||||
|
|
||||||
## [0.79.0] - 2026-06-08
|
## [0.79.0] - 2026-06-08
|
||||||
|
|
||||||
|
|||||||
@@ -1366,6 +1366,11 @@ async function generateModels() {
|
|||||||
candidate.contextWindow = 272000;
|
candidate.contextWindow = 272000;
|
||||||
candidate.maxTokens = 128000;
|
candidate.maxTokens = 128000;
|
||||||
}
|
}
|
||||||
|
// models.dev reports gpt-5-pro output as 272000 (a duplicate of the input sub-limit);
|
||||||
|
// the actual max output is 128000. Also propagates to the derived Azure clone.
|
||||||
|
if (candidate.provider === "openai" && candidate.id === "gpt-5-pro") {
|
||||||
|
candidate.maxTokens = 128000;
|
||||||
|
}
|
||||||
// Keep selected OpenRouter model metadata stable until upstream settles.
|
// Keep selected OpenRouter model metadata stable until upstream settles.
|
||||||
if (candidate.provider === "openrouter" && candidate.id === "moonshotai/kimi-k2.5") {
|
if (candidate.provider === "openrouter" && candidate.id === "moonshotai/kimi-k2.5") {
|
||||||
candidate.cost.input = 0.41;
|
candidate.cost.input = 0.41;
|
||||||
@@ -2064,6 +2069,12 @@ async function generateModels() {
|
|||||||
];
|
];
|
||||||
allModels.push(...vertexModels);
|
allModels.push(...vertexModels);
|
||||||
|
|
||||||
|
// Azure Foundry deploys these with larger context windows than OpenAI's own API,
|
||||||
|
// which caps gpt-5.4/gpt-5.5 at 272k. See models-sold-directly-by-azure docs.
|
||||||
|
const AZURE_CONTEXT_WINDOW_OVERRIDES: Record<string, number> = {
|
||||||
|
"gpt-5.4": 1050000,
|
||||||
|
"gpt-5.5": 1050000,
|
||||||
|
};
|
||||||
const azureOpenAiModels: Model<Api>[] = allModels
|
const azureOpenAiModels: Model<Api>[] = allModels
|
||||||
.filter((model) => model.provider === "openai" && model.api === "openai-responses")
|
.filter((model) => model.provider === "openai" && model.api === "openai-responses")
|
||||||
.map((model) => ({
|
.map((model) => ({
|
||||||
@@ -2071,6 +2082,7 @@ async function generateModels() {
|
|||||||
api: "azure-openai-responses",
|
api: "azure-openai-responses",
|
||||||
provider: "azure-openai-responses",
|
provider: "azure-openai-responses",
|
||||||
baseUrl: "",
|
baseUrl: "",
|
||||||
|
contextWindow: AZURE_CONTEXT_WINDOW_OVERRIDES[model.id] ?? model.contextWindow,
|
||||||
}));
|
}));
|
||||||
allModels.push(...azureOpenAiModels);
|
allModels.push(...azureOpenAiModels);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user