Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | /** * Service IA — Dispatcher multi-provider. * * Route les requêtes chat vers le bon provider (Anthropic, OpenAI, Mistral). * * @module services/ai */ const claudeService = require('./claude'); const openaiService = require('./openai'); /** * Chat avec le provider IA spécifié. * Interface unifiée pour tous les providers. * * @param {Object} params * @param {string} params.provider — 'anthropic', 'openai', ou 'mistral' * @param {string} params.userId * @param {string} params.serverId * @param {string} params.apiKey * @param {string} params.model * @param {Array} params.messages * @param {string} [params.context] * @param {boolean} [params.allowTools=true] — false pour desactiver les outils (plan free) * @param {Function} [params.onPendingAction] * @returns {Promise<{ reply: string, messages: Array }>} */ async function chat(params) { const { provider } = params; if (provider === 'anthropic') { return claudeService.chat(params); } if (['openai', 'mistral', 'google', 'deepseek', 'xai'].includes(provider)) { return openaiService.chat(params); } throw new Error(`Provider IA non supporté : ${provider}`); } module.exports = { chat }; |