Skip to content

Commit cd5c52a

Browse files
committed
fix(gateway): dsh 的网关模型声明可收图片,不再被 dsh 拦下(#3042)
pi-ai 模型条目缺 input 时只当文本模型。网关 Chat 入站会把 image_url 转成 input_image,与 Codex 侧一样声明 [text, image]。
1 parent 0282573 commit cd5c52a

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

‎crates/codex-plus-core/src/gateway/agents/catalog_tools.rs‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,10 @@ fn dsh_block(wiring: &Wiring, user_config: Option<&str>) -> String {
277277
.models
278278
.iter()
279279
.map(|model| {
280-
let mut entry = json!({ "id": model.id, "name": model.display_name });
280+
// pi-ai 的模型条目缺 `input` 时只当文本模型,dsh 就不让发图(#3042)。
281+
// 网关的 Chat 入站会把 image_url 转成 input_image,图片按各供应商的图片处理设置走,
282+
// 与 Codex 侧一样声明可收图。
283+
let mut entry = json!({ "id": model.id, "name": model.display_name, "input": ["text", "image"] });
281284
if let Some(window) = model.context_window {
282285
entry["contextWindow"] = json!(window);
283286
entry["maxTokens"] = json!(output_limit(window));
@@ -2094,6 +2097,8 @@ mod tests {
20942097
);
20952098
assert!(layer.contains(" baseURL: \"http://127.0.0.1:57321/gw/dsh/v1\"\n"));
20962099
assert!(layer.contains(" apiKeyEnv: \"CODEXPLUS_GATEWAY_KEY\"\n"));
2100+
// #3042:网关模型声明可收图,否则 dsh 不让发图。
2101+
assert!(layer.contains("input:\n - \"text\"\n - \"image\"\n"), "{layer}");
20972102
assert!(layer.contains(" mine:\n api: openai-completions\n"));
20982103
assert!(layer.contains("- id: agent-default-model\n name: \"@deepseek-ai/dsh-agent-default-model\"\n config:\n provider: \"codexplus\"\n model: \"ds/deepseek-chat\"\n"));
20992104
assert_eq!(files[".dsh/.env"], "CODEXPLUS_GATEWAY_KEY=cpx-gw-test\n");

0 commit comments

Comments
 (0)