fix(ai): use OpenAI endpoint for Fireworks GLM-5.2

closes #5923
This commit is contained in:
Armin Ronacher
2026-06-20 21:31:31 +02:00
parent 5505316ea2
commit 500b568b04
3 changed files with 14 additions and 5 deletions

View File

@@ -8,6 +8,7 @@
### Fixed ### Fixed
- Fixed Fireworks GLM-5.2 metadata to use the OpenAI-compatible Chat Completions endpoint with `reasoning_effort` support ([#5923](https://github.com/earendil-works/pi/issues/5923)).
- Fixed OpenRouter GLM-5.2 metadata to expose `xhigh` reasoning and send OpenRouter's native `xhigh` effort ([#5770](https://github.com/earendil-works/pi/issues/5770)). - Fixed OpenRouter GLM-5.2 metadata to expose `xhigh` reasoning and send OpenRouter's native `xhigh` effort ([#5770](https://github.com/earendil-works/pi/issues/5770)).
- Fixed GitHub Copilot OAuth model availability to use the authenticated account's model picker catalog ([#5897](https://github.com/earendil-works/pi/issues/5897)). - Fixed GitHub Copilot OAuth model availability to use the authenticated account's model picker catalog ([#5897](https://github.com/earendil-works/pi/issues/5897)).

View File

@@ -377,6 +377,9 @@ function applyThinkingLevelMetadata(model: Model<any>): void {
if (model.provider === "openrouter" && model.id === "z-ai/glm-5.2") { if (model.provider === "openrouter" && model.id === "z-ai/glm-5.2") {
mergeThinkingLevelMap(model, { xhigh: "xhigh" }); mergeThinkingLevelMap(model, { xhigh: "xhigh" });
} }
if (model.provider === "fireworks" && model.id === "accounts/fireworks/models/glm-5p2") {
mergeThinkingLevelMap(model, { off: "none", minimal: null, low: "high", medium: "high", xhigh: "max" });
}
if (model.provider === "opencode-go" && model.id === "kimi-k2.6") { if (model.provider === "opencode-go" && model.id === "kimi-k2.6") {
// OpenCode Go exposes Kimi K2.6 thinking as on/off, not distinct effort tiers. // OpenCode Go exposes Kimi K2.6 thinking as on/off, not distinct effort tiers.
mergeThinkingLevelMap(model, { minimal: null, low: null, medium: null }); mergeThinkingLevelMap(model, { minimal: null, low: null, medium: null });
@@ -1514,7 +1517,11 @@ async function generateModels() {
candidate.cost.output = 1.9; candidate.cost.output = 1.9;
candidate.cost.cacheRead = 0.119; candidate.cost.cacheRead = 0.119;
} }
if (candidate.provider === "fireworks" && candidate.id === "accounts/fireworks/models/glm-5p2") {
candidate.api = "openai-completions";
candidate.baseUrl = "https://api.fireworks.ai/inference/v1";
candidate.compat = { supportsStore: false, supportsDeveloperRole: false };
}
} }

View File

@@ -3930,11 +3930,12 @@ export const MODELS = {
"accounts/fireworks/models/glm-5p2": { "accounts/fireworks/models/glm-5p2": {
id: "accounts/fireworks/models/glm-5p2", id: "accounts/fireworks/models/glm-5p2",
name: "GLM 5.2", name: "GLM 5.2",
api: "anthropic-messages", api: "openai-completions",
provider: "fireworks", provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference", baseUrl: "https://api.fireworks.ai/inference/v1",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false},
reasoning: true, reasoning: true,
thinkingLevelMap: {"off":"none","minimal":null,"low":"high","medium":"high","xhigh":"max"},
input: ["text"], input: ["text"],
cost: { cost: {
input: 1.4, input: 1.4,
@@ -3944,7 +3945,7 @@ export const MODELS = {
}, },
contextWindow: 1048576, contextWindow: 1048576,
maxTokens: 131072, maxTokens: 131072,
} satisfies Model<"anthropic-messages">, } satisfies Model<"openai-completions">,
"accounts/fireworks/models/gpt-oss-120b": { "accounts/fireworks/models/gpt-oss-120b": {
id: "accounts/fireworks/models/gpt-oss-120b", id: "accounts/fireworks/models/gpt-oss-120b",
name: "GPT OSS 120B", name: "GPT OSS 120B",