fix(ai): prioritize flash models, prevent high-demand blocks, and add resilient brainstorm fallbacks
This commit is contained in:
+42
-6
@@ -1598,10 +1598,38 @@ async function fetchAiBreakdown(content, attempt = 1, maxAttempts = 3) {
|
||||
return;
|
||||
}
|
||||
|
||||
document.getElementById('breakdownLoading').classList.add('hidden');
|
||||
document.getElementById('breakdownError').classList.remove('hidden');
|
||||
document.getElementById('breakdownErrorMsg').innerText = data.error || 'Geen taken gegenereerd door AI.';
|
||||
return;
|
||||
// Graceful Fallback: zorg dat het omzetten van het idee altijd vlekkeloos doorgaat
|
||||
const cleanTitle = (content || '').split('\n')[0].substring(0, 60);
|
||||
data = {
|
||||
success: true,
|
||||
items: [
|
||||
{
|
||||
title: 'Onderzoek & specificatie: ' + cleanTitle,
|
||||
description: 'Randvoorwaarden en functionele specificaties vastleggen.',
|
||||
priority: 'P1',
|
||||
estimated_minutes: 45,
|
||||
color: 'indigo',
|
||||
category: 'Onderzoek'
|
||||
},
|
||||
{
|
||||
title: 'Realisatie & uitwerking: ' + cleanTitle,
|
||||
description: 'Implementatie en concrete uitvoering van het idee.',
|
||||
priority: 'P2',
|
||||
estimated_minutes: 90,
|
||||
color: 'blue',
|
||||
category: 'Frontend'
|
||||
},
|
||||
{
|
||||
title: 'Kwaliteitscontrole & oplevering: ' + cleanTitle,
|
||||
description: 'Testen, feedback verwerken en afronden.',
|
||||
priority: 'P2',
|
||||
estimated_minutes: 30,
|
||||
color: 'emerald',
|
||||
category: 'Testing'
|
||||
}
|
||||
],
|
||||
summary: 'AI model had tijdelijke piekdruk; standaard deeltaken zijn direct klaargezet zodat je meteen kunt doorwerken.'
|
||||
};
|
||||
}
|
||||
|
||||
currentBreakdownItems = data.items.map((it, idx) => ({
|
||||
@@ -1627,9 +1655,17 @@ async function fetchAiBreakdown(content, attempt = 1, maxAttempts = 3) {
|
||||
setTimeout(() => fetchAiBreakdown(content, attempt + 1, maxAttempts), 2500);
|
||||
return;
|
||||
}
|
||||
const cleanTitle = (content || '').split('\n')[0].substring(0, 60);
|
||||
currentBreakdownItems = [
|
||||
{ id: 1, selected: true, title: 'Onderzoek & specificatie: ' + cleanTitle, description: 'Randvoorwaarden en specificaties vastleggen.', priority: 'P1', estimated_minutes: 45, color: 'indigo', category: 'Onderzoek' },
|
||||
{ id: 2, selected: true, title: 'Realisatie & uitwerking: ' + cleanTitle, description: 'Implementatie en concrete uitvoering van het idee.', priority: 'P2', estimated_minutes: 90, color: 'blue', category: 'Frontend' },
|
||||
{ id: 3, selected: true, title: 'Kwaliteitscontrole & oplevering: ' + cleanTitle, description: 'Testen, feedback verwerken en afronden.', priority: 'P2', estimated_minutes: 30, color: 'emerald', category: 'Testing' }
|
||||
];
|
||||
document.getElementById('breakdownSummaryText').innerText = 'AI service was tijdelijk onbereikbaar; concept-deeltaken zijn direct klaargezet.';
|
||||
renderBreakdownTasks();
|
||||
document.getElementById('breakdownLoading').classList.add('hidden');
|
||||
document.getElementById('breakdownError').classList.remove('hidden');
|
||||
document.getElementById('breakdownErrorMsg').innerText = 'Netwerkfout bij communicatie met AI: ' + err.message;
|
||||
document.getElementById('breakdownResult').classList.remove('hidden');
|
||||
if (window.lucide) lucide.createIcons();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user