Add Demo Mode and error handling to AE_AITools component

- Implemented 'Demo Mode' fallback when no API token is provided.
- Ensured the AI modal opens even on connection errors to display troubleshooting info.
- Improved user feedback with simulated loading states for demo data.
This commit is contained in:
Scott Idem
2026-01-08 18:15:16 -05:00
parent 51bdad9485
commit b912350829

View File

@@ -63,14 +63,28 @@
return;
}
active_tab = 'result';
// If no token is provided, trigger a "Demo Mode" placeholder after a fake delay
if (!token || token === '') {
console.log('AE_AITools: No token provided. Entering Demo Mode.');
ae_promises = new Promise((resolve) => {
setTimeout(() => {
tmp_summary = `### AI Summary (DEMO MODE)\n\nThis is a placeholder summary because no API token was provided in the settings. \n\n**Original Content Length:** ${content.length} characters.\n\n**System Prompt:** ${systemPrompt}\n\n**Model:** ${model}`;
show_modal = true;
resolve(true);
}, 1500);
});
return;
}
const ai_client = new OpenAI({
apiKey: token || 'no-token-provided',
apiKey: token,
baseURL: baseUrl,
dangerouslyAllowBrowser: true
});
try {
active_tab = 'result';
ae_promises = ai_client.chat.completions.create({
model: model,
max_tokens: maxTokens,
@@ -86,7 +100,10 @@
});
} catch (err: any) {
console.error('AE_AITools: AI Error:', err);
alert('AI Error: ' + err.message);
// Even on error, show the modal with the error message so the UI can be inspected
tmp_summary = `### AI Error\n\nFailed to connect to the AI service.\n\n**Error:** ${err.message}\n\nCheck your Settings tab for Base URL and Token configuration.`;
show_modal = true;
ae_promises = Promise.resolve();
}
}