Files
codex-market-app/scripts/smoke-multimodal.js
T

47 lines
1.6 KiB
JavaScript

const fs = require("fs");
const path = require("path");
const media = require("../electron/lib/media-understanding");
const { gatewayConfig } = require("../electron/lib/multimodal-config");
const imagePath = process.argv[2] || path.join(__dirname, "..", "renderer", "logo.png");
const config = gatewayConfig();
if (!config.key) {
console.error("缺少多模态网关 Key:请先生成 resources/multimodal-gateway.json,或设置 TD_MULTIMODAL_GATEWAY_KEY。");
process.exit(2);
}
const ext = path.extname(imagePath).toLowerCase();
const mime =
ext === ".jpg" || ext === ".jpeg" ? "image/jpeg" :
ext === ".webp" ? "image/webp" :
"image/png";
const data = fs.readFileSync(imagePath).toString("base64");
const request = {
input: [{
type: "message",
role: "user",
content: [
{ type: "input_text", text: "请识别这张图片里的主要内容和可见文字。" },
{ type: "input_image", image_url: `data:${mime};base64,${data}` },
],
}],
};
media.enrichResponsesRequest(request, { instruction: "请识别这张图片里的主要内容和可见文字。" })
.then((result) => {
if (!result.processed) throw new Error("没有检测到可处理的图片附件");
const evidence = result.evidence || {};
console.log(JSON.stringify({
provider: evidence.provider,
modality: evidence.modality,
summary: evidence.summary,
items: evidence.items,
unsupported: evidence.unsupported,
}, null, 2));
})
.catch((error) => {
console.error(String((error && error.message) || error));
process.exit(1);
});