fix: correct API endpoints for z.ai, opencode, and glm providers (#167)
Fixes #167 - z.ai: https://api.z.ai → https://api.z.ai/api/paas/v4 - opencode: https://api.opencode.ai → https://opencode.ai/zen/v1 - glm: https://open.bigmodel.cn/api/paas → https://open.bigmodel.cn/api/paas/v4 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b8c6937fbc
commit
716fb382ec
2 changed files with 37 additions and 3 deletions
|
|
@ -524,4 +524,38 @@ mod tests {
|
||||||
let p = make_provider("test", "https://api.example.com/v1", None);
|
let p = make_provider("test", "https://api.example.com/v1", None);
|
||||||
assert_eq!(p.chat_completions_url(), "https://api.example.com/v1/chat/completions");
|
assert_eq!(p.chat_completions_url(), "https://api.example.com/v1/chat/completions");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ══════════════════════════════════════════════════════════
|
||||||
|
// Provider-specific endpoint tests (Issue #167)
|
||||||
|
// ══════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn chat_completions_url_zai() {
|
||||||
|
// Z.AI uses /api/paas/v4 base path
|
||||||
|
let p = make_provider("zai", "https://api.z.ai/api/paas/v4", None);
|
||||||
|
assert_eq!(
|
||||||
|
p.chat_completions_url(),
|
||||||
|
"https://api.z.ai/api/paas/v4/chat/completions"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn chat_completions_url_glm() {
|
||||||
|
// GLM (BigModel) uses /api/paas/v4 base path
|
||||||
|
let p = make_provider("glm", "https://open.bigmodel.cn/api/paas/v4", None);
|
||||||
|
assert_eq!(
|
||||||
|
p.chat_completions_url(),
|
||||||
|
"https://open.bigmodel.cn/api/paas/v4/chat/completions"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn chat_completions_url_opencode() {
|
||||||
|
// OpenCode Zen uses /zen/v1 base path
|
||||||
|
let p = make_provider("opencode", "https://opencode.ai/zen/v1", None);
|
||||||
|
assert_eq!(
|
||||||
|
p.chat_completions_url(),
|
||||||
|
"https://opencode.ai/zen/v1/chat/completions"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -186,13 +186,13 @@ pub fn create_provider(name: &str, api_key: Option<&str>) -> anyhow::Result<Box<
|
||||||
"Synthetic", "https://api.synthetic.com", api_key, AuthStyle::Bearer,
|
"Synthetic", "https://api.synthetic.com", api_key, AuthStyle::Bearer,
|
||||||
))),
|
))),
|
||||||
"opencode" | "opencode-zen" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
"opencode" | "opencode-zen" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
||||||
"OpenCode Zen", "https://api.opencode.ai", api_key, AuthStyle::Bearer,
|
"OpenCode Zen", "https://opencode.ai/zen/v1", api_key, AuthStyle::Bearer,
|
||||||
))),
|
))),
|
||||||
"zai" | "z.ai" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
"zai" | "z.ai" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
||||||
"Z.AI", "https://api.z.ai", api_key, AuthStyle::Bearer,
|
"Z.AI", "https://api.z.ai/api/paas/v4", api_key, AuthStyle::Bearer,
|
||||||
))),
|
))),
|
||||||
"glm" | "zhipu" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
"glm" | "zhipu" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
||||||
"GLM", "https://open.bigmodel.cn/api/paas", api_key, AuthStyle::Bearer,
|
"GLM", "https://open.bigmodel.cn/api/paas/v4", api_key, AuthStyle::Bearer,
|
||||||
))),
|
))),
|
||||||
"minimax" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
"minimax" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
||||||
"MiniMax", "https://api.minimax.chat", api_key, AuthStyle::Bearer,
|
"MiniMax", "https://api.minimax.chat", api_key, AuthStyle::Bearer,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue