feat: routerai as primary image provider, Nyxos as fallback

- covers.js: RouterAI /responses → Nyxos /images/generations → SVG
- postImages.js: RouterAI /responses → Nyxos /images/generations
- config: imageBaseUrl = routerai, imageFallbackBaseUrl = nyxos
- app_settings: AI_IMAGE_BASE_URL = routerai, MODEL = gpt-5-image-mini
This commit is contained in:
Ник (Claude)
2026-06-11 13:20:52 +03:00
parent 2a61cc08c2
commit 06ab7e0c1d
2 changed files with 36 additions and 30 deletions
+4 -13
View File
@@ -325,23 +325,14 @@ async function generateCoverViaImageGenerations({ prompt }) {
}
}
// Основной: Nyxos Plus
// Основной: RouterAI /responses (стабильный)
try {
return await tryProvider(config.ai.imageBaseUrl, config.ai.imageApiKey);
return await generateCoverViaRouterAI({ prompt });
} catch (err) {
const status = err.response?.status;
if (!status || status >= 500) {
console.warn(`[Cover] primary failed (${status||'timeout'}), trying Nyxos fallback...`);
try {
return await tryProvider(config.ai.imageFallbackBaseUrl, config.ai.imageFallbackApiKey);
} catch (err2) {
const status2 = err2.response?.status;
if ((!status2 || status2 >= 500) && config.ai.routeraiApiKey) {
console.warn(`[Cover] Nyxos failed (${status2||'timeout'}), trying RouterAI /responses...`);
return await generateCoverViaRouterAI({ prompt });
}
throw err2;
}
console.warn(`[Cover] RouterAI failed (${status||'timeout'}), trying Nyxos fallback...`);
return await tryProvider(config.ai.imageFallbackBaseUrl, config.ai.imageFallbackApiKey);
}
throw err;
}