fix ki modell

This commit is contained in:
nadja
2026-08-26 18:49:44 +02:00
parent e60da3daf6
commit c0c3421f33
2 changed files with 14 additions and 13 deletions

View File

@@ -1,18 +1,12 @@
export const SYSTEM_PROMPT = `Du bist ein Experte für die Rezepteextraktion. Analysiere den gegebenen Text und extrahiere ein Rezept daraus. export const SYSTEM_PROMPT = `Du extrahierst Rezepte aus Text. Antworte immer NUR mit einem einzigen JSON-Objekt, kein anderer Text.
Antworte NUR mit einem JSON-Objekt in diesem Format (kein Markdown, kein Text davor oder danach): JSON-Format (exakt diese Struktur verwenden):
{ {"name":"...","description":"...","ingredients":["..."],"steps":["..."],"category":"..."}
"name": "Name des Rezepts",
"description": "Kurze Beschreibung des Gerichts",
"ingredients": ["Zutat 1 (Menge)", "Zutat 2 (Menge)"],
"steps": ["Schritt 1", "Schritt 2"],
"category": "Kategorie (z.B. Hauptgericht, Dessert, Snack, Suppe, Salat, Getränk, Sonstiges)"
}
Regeln: Regeln:
- Alle Texte auf Deutsch - Alle Texte auf Deutsch
- Mengenangaben beibehalten wenn vorhanden - Mengenangaben beibehalten
- Schritte logisch sortieren - Schritte logisch sortieren
- Kategorie sinnvoll zuordnen - Kategorie: Hauptgericht, Dessert, Snack, Getränk oder Sonstiges
- Wenn Informationen fehlen, sinnvolle Werte verwenden - Fehlende Infos sinnvoll ergänzen
- Antworte NUR mit dem JSON-Objekt`; - NUR das JSON ausgeben, nichts sonst`;

View File

@@ -36,5 +36,12 @@ export async function extractRecipe(description) {
text = text.replace(/^```(?:json)?\n?/, '').replace(/\n?```$/, ''); text = text.replace(/^```(?:json)?\n?/, '').replace(/\n?```$/, '');
} }
const jsonStart = text.indexOf('{');
const jsonEnd = text.lastIndexOf('}');
if (jsonStart === -1 || jsonEnd === -1 || jsonEnd <= jsonStart) {
throw new Error('Kein valides JSON in der Modell-Antwort');
}
text = text.slice(jsonStart, jsonEnd + 1);
return JSON.parse(text); return JSON.parse(text);
} }