structurize-mcp
Version:
Anthropic MCP Server for generating structured CSV files from natural language descriptions
51 lines (49 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GeminiImageAnalyzer = void 0;
const generative_ai_1 = require("@google/generative-ai");
class GeminiImageAnalyzer {
genAI;
model;
constructor(config) {
this.genAI = new generative_ai_1.GoogleGenerativeAI(config.geminiApiKey);
this.model = this.genAI.getGenerativeModel({ model: 'gemini-1.5-pro' });
}
async analyzeImage(imageData) {
try {
const prompt = `
分析这张图片中的表格内容,并将其转换为 mermaid 图表格式。
请遵循以下规则:
1. 如果是简单表格,使用 mermaid 的 graph TD 格式
2. 如果是复杂的关系表格,使用 mermaid 的 erDiagram 格式
3. 保持表格的层级关系
4. 确保生成的 mermaid 语法正确
只返回 mermaid 格式的文本,不需要其他解释。
`;
const result = await this.model.generateContent([
prompt,
{
inlineData: {
mimeType: 'image/jpeg',
data: imageData.toString('base64')
}
}
]);
const response = await result.response;
const text = response.text();
// 提取 mermaid 文本(假设返回的文本中包含 mermaid 语法)
const mermaidText = text.trim();
return {
mermaidText,
rawText: text
};
}
catch (error) {
return {
mermaidText: '',
error: error instanceof Error ? error.message : '图片分析失败'
};
}
}
}
exports.GeminiImageAnalyzer = GeminiImageAnalyzer;