#!/usr/bin/env node
/**
* AI图像识别模块演示
* 演示如何使用ai-vision.js在OpenClaw环境中识别图片
*
* 使用方法:
* 在OpenClaw agent中直接执行此脚本
*/
import { analyzeImageWithAI, extractImageData } from '/root/.openclaw/workspace/skills/image-table-extractor/ai-vision.js';
console.log('🧪 AI图像识别模块演示\n');
console.log('图片路径: /root/clawd/downloads/A3D320F0F4CC95C19A651F3E1AAB4342_1771574423278.jpg');
console.log('=' .repeat(60));
// 测试图片路径
const testImage = '/root/clawd/downloads/A3D320F0F4CC95C19A651F3E1AAB4342_1771574423278.jpg';
// 验证图片是否存在
import fs from 'fs';
if (!fs.existsSync(testImage)) {
console.error('❌ 测试图片不存在:', testImage);
process.exit(1);
}
console.log('✅ 图片验证成功\n');
// 测试1: 基本描述
console.log('测试1: 基本图片描述');
console.log('-'.repeat(50));
const result1 = await analyzeImageWithAI(testImage, '请详细描述这张图片的内容');
console.log(JSON.stringify(result1, null, 2));
// 测试2: 针对性提问
console.log('\n\n测试2: 针对性提问');
console.log('-'.repeat(50));
const result2 = await analyzeImageWithAI(
testImage,
'这张风景照中有哪些主要元素?请描述天空、山脉和树木的情况。'
);
console.log(JSON.stringify(result2, null, 2));
// 测试3: 批量提问
console.log('\n\n测试3: 批量提问');
console.log('-'.repeat(50));
const questions = [
"这张图片的整体氛围如何?",
"天空的颜色和云朵情况?",
"山脉的远近和清晰度?",
"前景中的植被类型?",
"适合用作什么?(如壁纸、设计素材等)"
];
for (let i = 0; i < questions.length; i++) {
console.log(`\n提问 ${i+1}: ${questions[i]}`);
const answer = await analyzeImageWithAI(testImage, questions[i]);
console.log(`结果: ${JSON.stringify(answer, null, 2)}`);
}
// 测试4: 结构化数据提取
console.log('\n\n测试4: 结构化数据提取(模拟场景)');
console.log('-'.repeat(50));
// 假设这是一张发票或文档图片
const fields = [
"文档类型",
"日期",
"金额",
"公司名称",
"重要信息"
];
console.log(`提取字段: ${fields.join(', ')}`);
const result4 = await extractImageData(testImage, fields);
console.log(JSON.stringify(result4, null, 2));
console.log('\n' + '='.repeat(60));
console.log('✅ 所有测试完成');
console.log('='.repeat(60));
console.log('\n💡 说明:');
console.log('- 上述演示展示了如何在OpenClaw环境中调用AI能力');
console.log('- analyzeImageWithAI() 函数会返回AI分析结果');
console.log('- extractImageData() 函数用于提取结构化数据');
console.log('- 支持对同一张图片进行多次不同提问');