Files
WebAI2API/lib/test.js
T
2025-11-23 22:43:43 +08:00

66 lines
2.0 KiB
JavaScript

import readline from 'readline';
import config from './config.js';
import { initBrowser, generateImage } from './lmarena.js';
/**
* 创建命令行交互接口
*/
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
/**
* 封装 readline 为 Promise
* @param {string} query 提示问题
* @returns {Promise<string>} 用户输入
*/
const ask = (query) => new Promise((resolve) => rl.question(query, resolve));
async function main() {
console.log('>>> [CLI] LMArena CLI 测试工具');
console.log('>>> [CLI] 正在启动浏览器...');
let browserContext;
try {
// 传入配置对象
browserContext = await initBrowser(config);
console.log('>>> [CLI] 浏览器已就绪。');
} catch (err) {
console.error('>>> [Error] 浏览器启动失败:', err);
process.exit(1);
}
while (true) {
console.log('-----------------------------');
// 1. 获取图片路径
const imgInput = await ask('>>> [CLI] 请输入图片路径 (多张用逗号隔开,回车跳过): ');
const imagePaths = imgInput.trim()
? imgInput.split(',').map(p => p.trim()).filter(p => p)
: [];
// 2. 获取提示词
const prompt = await ask('>>> [CLI] 请输入提示词: ');
if (!prompt.trim()) {
console.log('>>> [Error] 提示词不能为空,请重试。');
continue;
}
console.log(`>>> [CLI] 开始任务: Prompt="${prompt}", Images=${imagePaths.length}`);
// 3. 调用生图逻辑
const result = await generateImage(browserContext, prompt, imagePaths);
// 4. 显示结果
if (result.error) {
console.error('>>> [Error]', result.error);
} else if (result.image) {
console.log('>>> [Success] 图片 URL:', result.image);
} else {
console.log('>>> [CLI] AI 使用文本回复:', result.text);
}
}
}
main();