Files
vendoo/lib/ai-openai.mjs
Masterluke77andGitHub 6f48827f4d Vendoo 1.41.2 – Git Ignore Boundary & Module Tracking Hotfix (#18)
* docs: prepare Vendoo 1.41.2 git-ignore boundary hotfix

* fix: track native source modules with root-anchored runtime ignores
2026-07-09 17:09:00 +02:00

46 lines
1.3 KiB
JavaScript

import OpenAI from 'openai';
let client;
function getClient() {
if (!client) client = new OpenAI();
return client;
}
export async function generate(images, systemPrompt) {
const content = [];
for (const img of images) {
content.push({
type: 'image_url',
image_url: { url: `data:${img.mediaType};base64,${img.base64}`, detail: 'high' },
});
}
content.push({ type: 'text', text: 'Analysiere die Fotos und erstelle das Listing gemäß den Anweisungen. Antworte ausschließlich mit validem JSON.' });
const response = await getClient().chat.completions.create({
model: 'gpt-4o',
max_tokens: 1500,
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content },
],
});
const text = response.choices[0].message.content;
const jsonMatch = text.match(/\{[\s\S]*\}/);
if (!jsonMatch) throw new Error('AI returned no valid JSON');
return JSON.parse(jsonMatch[0]);
}
export async function generateText(systemPrompt, userPrompt) {
const response = await getClient().chat.completions.create({
model: 'gpt-4o',
max_tokens: 1400,
messages: [
{ role: 'system', content: String(systemPrompt || '') },
{ role: 'user', content: String(userPrompt || '') },
],
});
return String(response.choices?.[0]?.message?.content || '').trim();
}