feat: PLANNING体系首版(00路线图/02任务总表/03执行协议/I-03/I-04/registry42口径)+M1止血交付
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
// Retest vision for ambiguous models with a 64x64 red PNG.
|
||||
import { readFileSync, writeFileSync } from "node:fs";
|
||||
|
||||
const envText = readFileSync("C:/Users/12914/.mimo2codex/.env", "utf8");
|
||||
const KEY = envText.match(/^MIMO_API_KEY=(.+)$/m)?.[1]?.trim();
|
||||
const BASE = "https://opencode.ai/zen/go/v1";
|
||||
const B64 = readFileSync("C:/Users/12914/Desktop/vscode/.mimo2codex-audit/red64.png").toString("base64");
|
||||
|
||||
const MODELS = [
|
||||
"gpt-5.6-luna", // retry in case 500 was transient
|
||||
"deepseek-v4-pro",
|
||||
"deepseek-v4-flash",
|
||||
"longcat-2.0",
|
||||
"hy4-preview",
|
||||
"qwen3.5-plus",
|
||||
"qwen3.6-plus",
|
||||
"qwen3.7-max",
|
||||
"qwen3.7-plus",
|
||||
"qwen3.8-flash",
|
||||
"qwen3.8-max",
|
||||
"glm-5.3", // sanity: previously rejected image input
|
||||
"minimax-m2.5", // sanity: previously rejected image input
|
||||
];
|
||||
|
||||
async function call(body, timeoutMs = 90000) {
|
||||
const ctrl = new AbortController();
|
||||
const t = setTimeout(() => ctrl.abort(), timeoutMs);
|
||||
try {
|
||||
const res = await fetch(`${BASE}/chat/completions`, {
|
||||
method: "POST",
|
||||
headers: { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" },
|
||||
body: JSON.stringify(body),
|
||||
signal: ctrl.signal,
|
||||
});
|
||||
const raw = await res.text();
|
||||
let json = null;
|
||||
try { json = JSON.parse(raw); } catch {}
|
||||
return { status: res.status, json, raw: raw.slice(0, 200) };
|
||||
} catch (e) {
|
||||
return { status: 0, json: null, raw: String(e?.message || e) };
|
||||
} finally { clearTimeout(t); }
|
||||
}
|
||||
|
||||
const results = {};
|
||||
for (const m of MODELS) {
|
||||
const r = await call({
|
||||
model: m,
|
||||
messages: [{
|
||||
role: "user",
|
||||
content: [
|
||||
{ type: "text", text: "这张图片是什么颜色?只回答颜色词。" },
|
||||
{ type: "image_url", image_url: { url: `data:image/png;base64,${B64}` } },
|
||||
],
|
||||
}],
|
||||
max_tokens: 400,
|
||||
stream: false,
|
||||
});
|
||||
const msg = r.json?.choices?.[0]?.message;
|
||||
const content = typeof msg?.content === "string" ? msg.content : null;
|
||||
const thinkTag = content && /<think>/i.test(content);
|
||||
results[m] = {
|
||||
status: r.status,
|
||||
ok: r.status === 200 && !!msg,
|
||||
answer: content ? content.replace(/<think>[\s\S]*?<\/think>/g, "").trim().slice(0, 100) : null,
|
||||
err: r.json?.error?.message?.slice(0, 220) ?? (r.status !== 200 ? r.raw : null),
|
||||
};
|
||||
console.log(`${m}: ${r.status} ${results[m].ok ? "answer=" + results[m].answer : "err=" + results[m].err}`);
|
||||
writeFileSync("C:/Users/12914/Desktop/vscode/.mimo2codex-audit/vision-retest.json", JSON.stringify(results, null, 2));
|
||||
}
|
||||
console.log("DONE");
|
||||
Reference in New Issue
Block a user