feat: Nyxos Plus as primary image provider, aiguoguo as fallback

- app_settings: AI_IMAGE_BASE_URL → https://plus.nyxos.workers.dev/v1
- app_settings: AI_IMAGE_FALLBACK_BASE_URL/API_KEY → aiguoguo (резерв)
- config/index.js: загружает imageFallbackBaseUrl + imageFallbackApiKey
- covers.js: generateCoverViaImageGenerations пробует Nyxos, при 5xx/timeout
  автоматически переключается на aiguoguo
This commit is contained in:
Ник (Claude)
2026-06-10 09:55:32 +03:00
parent bcb6583883
commit d1e6e2ef4a
2 changed files with 36 additions and 48 deletions
+4 -2
View File
@@ -66,9 +66,11 @@ async function reloadAi() {
config.ai.baseUrl = pick('AI_TEXT_BASE_URL', 'AI_BASE_URL', 'https://aiprimetech.io/v1');
config.ai.apiKey = pick('AI_TEXT_API_KEY', 'AI_API_KEY', null);
config.ai.imageBaseUrl= pick('AI_IMAGE_BASE_URL', 'AI_IMAGE_BASE_URL', 'https://api.aiguoguo199.com/v1');
config.ai.imageBaseUrl= pick('AI_IMAGE_BASE_URL', 'AI_IMAGE_BASE_URL', 'https://plus.nyxos.workers.dev/v1');
config.ai.imageApiKey = pick('AI_IMAGE_API_KEY', 'AI_IMAGE_API_KEY', config.ai.apiKey);
config.ai.imageModel = pick('AI_IMAGE_MODEL', 'AI_MODEL_IMAGE', 'gpt-image-1-mini');
config.ai.imageFallbackBaseUrl = (s['AI_IMAGE_FALLBACK_BASE_URL'] && s['AI_IMAGE_FALLBACK_BASE_URL'].trim()) || 'https://api.aiguoguo199.com/v1';
config.ai.imageFallbackApiKey = (s['AI_IMAGE_FALLBACK_API_KEY'] && s['AI_IMAGE_FALLBACK_API_KEY'].trim()) || config.ai.imageApiKey;
config.ai.imageModel = pick('AI_IMAGE_MODEL', 'AI_MODEL_IMAGE', 'gpt-image-2');
config.ai.imageModelViaResponses = pick('AI_IMAGE_MODEL_VIA_RESPONSES', 'AI_MODEL_IMAGE_VIA_RESPONSES', 'gpt-5.5');
config.ai.models.post = pick('AI_TEXT_MODEL_POST', 'AI_MODEL_POST', 'claude-haiku-4-5-20251001');
config.ai.models.article = pick('AI_TEXT_MODEL_ARTICLE', 'AI_MODEL_ARTICLE', 'claude-sonnet-4-6');