diff --git a/app/server/utils/ai.ts b/app/server/utils/ai.ts index 5f544f8..a74eed1 100644 --- a/app/server/utils/ai.ts +++ b/app/server/utils/ai.ts @@ -1,5 +1,5 @@ /** - * XFlow AI Utility — OpenRouter & Google Gemini Integration + * XFlow AI Utility — OpenRouter & Google Gemini Integration (Updated for May 2026 Models) */ const OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1/chat/completions' @@ -10,10 +10,12 @@ export const AI_MODELS = { laguna: 'poolside/laguna-m.1:free', /** MoE 120B тяжёлая аналитика, архитектурный анализ, сложные рассуждения */ nemotron: 'nvidia/nemotron-3-super-120b-a12b:free', - /** Прямой вызов Gemini Flash */ - geminiFlash: 'gemini-1.5-flash', - /** Прямой вызов Gemini Pro */ - geminiPro: 'gemini-1.5-pro' + /** Прямой вызов Gemini 3.5 Flash */ + geminiFlash: 'gemini-3.5-flash', + /** Прямой вызов Gemini 3.1 Pro Preview */ + geminiPro: 'gemini-3.1-pro-preview', + /** Прямой вызов Gemini 3.1 Flash Lite */ + geminiLite: 'gemini-3.1-flash-lite' } as const export type AiModelKey = keyof typeof AI_MODELS @@ -45,7 +47,7 @@ export const generateAIResponse = async ( if (!geminiKey) { throw new Error('Gemini API key (GEMINI_API_KEY or GOOGLE_API_KEY) is not configured') } - const geminiModel = resolvedModel.startsWith('gemini') ? resolvedModel : 'gemini-1.5-flash' + const geminiModel = resolvedModel.startsWith('gemini') ? resolvedModel : 'gemini-3.5-flash' console.log(`[AI] Direct Google Gemini call: ${geminiModel}`) try { @@ -130,6 +132,7 @@ export const getAvailableModels = () => const modelLabels: Record = { laguna: '🏊 Laguna M.1 — стабильная инженерная (Claude via OpenRouter)', nemotron: '🔬 Nemotron Super 120B — тяжёлая аналитика (NVIDIA via OpenRouter)', - geminiFlash: '⚡ Gemini 1.5 Flash — быстрая и стабильная (Google Direct)', - geminiPro: '🧠 Gemini 1.5 Pro — продвинутая аналитика (Google Direct)' + geminiFlash: '⚡ Gemini 3.5 Flash — быстрая и стабильная (Google Direct)', + geminiPro: '🧠 Gemini 3.1 Pro — продвинутая аналитика (Google Direct)', + geminiLite: '🍃 Gemini 3.1 Flash Lite — экономичная (Google Direct)' }