Erreur de nœud Azure OpenAI Chat

Le nœud Azure OpenAI chat ne fonctionne pas dans nos workflows d’agent de chat. Bien que nous n’ayons apporté aucune modification à la configuration ou au contenu de ces flux, nous recevons une erreur de requête invalide. Nous pensons que quelque chose a changé du côté de l’API OpenAI mais le nœud n’a pas encore été mis à jour pour refléter ce changement.

Quel est le message d’erreur (le cas échéant) ?

Requête invalide - veuillez vérifier vos paramètres

Paramètre requis manquant : ‘tools[0].type’.

Veuillez partager votre workflow

Partagez la sortie renvoyée par le dernier nœud

Requête invalide - veuillez vérifier vos paramètres
Paramètre requis manquant : ‘tools[0].type’.

Informations sur votre configuration n8n

  • Version n8n : 2.29.10
  • Base de données (par défaut : SQLite) : SQLite
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) : own
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : Docker
  • Système d’exploitation : RHEL

Pouvez-vous utiliser le modèle de chat OpenAI ?
Il suffit de changer l’URL de base. Est-ce que ça fonctionne ?

Salut, merci pour la réponse rapide !

L’URL de base pour nos identifiants Azure OpenAI est « https://swedencentral.api.cognitive.microsoft.com/ »

Tu penses que ça fonctionnerait avec OpenAI node ? Comment on devrait modifier l’URL de base ?

Pour que le nœud OpenAI fonctionne avec Azure, vous devriez configurer un proxy (tel que LiteLLM) qui traduit les requêtes au format OpenAI en requêtes au format Azure.

Cette erreur « Missing required parameter: tools[0].type » vient presque toujours de la api-version d’Azure, pas des credentials en eux-mêmes. Récemment, certaines régions (Sweden Central notamment) ont commencé à valider le tableau de tools de manière stricte, exigeant que chaque tool soit au format {“type”:“function”,“function”:{…}}. Si ta api-version pointe sur « latest »/preview, l’endpoint attend le nouveau format mais le payload qui sort du node ne correspond pas, et tu vois cette erreur même sans avoir changé quoi que ce soit au flux. Fixe la api-version sur une GA stable, genre 2024-10-21 (ou 2024-08-01-preview), directement dans la credential/base URL du deployment, au lieu de laisser la plus récente. Cela réaligne le payload que le node envoie avec ce que l’endpoint accepte. Deux vérifications rapides pour confirmer le diagnostic avant de modifier quoi que ce soit : 1) retire temporairement les sous-nœuds de tool de l’AI Agent et lance juste le chat pur ; si ça marche, c’est confirmé que c’est la sérialisation des tools liée à la api-version, pas la credential. 2) confirme que le deployment est un modèle qui supporte le tool calling dans une version récente (gpt-4o / gpt-4-turbo) ; les deployments anciens de gpt-35-turbo rejettent le format de tools. Un proxy comme LiteLLM résout le problème, mais c’est un contournement, tu n’en as pas besoin pour ce cas.

Bonjour, merci beaucoup pour votre réponse détaillée ! Après avoir modifié la version d’API et testé les exemples GA stables que vous avez fournis, nous rencontrons une autre erreur, mais cette fois-ci elle provient du nœud AI Agent, et non du nœud Azure OpenAI Chat. Voici la trace d’erreur :

NodeOperationError: Cannot read properties of undefined (reading ‘toLowerCase’) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_2c7f106572ec97ecf6e9416b33a264bd/node_modules/@n8n/n8n-nodes-langchain/nodes/agents/Agent/agents/ToolsAgent/V2/execute.ts:418:13 at Array.forEach () at ExecuteContext.toolsAgentExecute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_2c7f106572ec97ecf6e9416b33a264bd/node_modules/@n8n/n8n-nodes-langchain/nodes/agents/Agent/agents/ToolsAgent/V2/execute.ts:406:17) at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_2c7f106572ec97ecf6e9416b33a264bd/node_modules/@n8n/n8n-nodes-langchain/nodes/agents/Agent/V2/AgentV2.node.ts:142:10) at WorkflowExecute.executeNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1080:8) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1380:11) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1842:27 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2534:11

Pensez-vous que cela pourrait être lié au changement de version d’API dans le nœud de chat ? Parce que dans l’éditeur de débogage, je vois ce message dans la fenêtre de chat en bas à gauche :

L’erreur toLowerCase dans l’Agent IA (ToolsAgentV2) est un problème distinct de la version d’API - elle se déclenche généralement quand un appel d’outil retourne undefined ou null au lieu d’une chaîne de caractères, et l’agent essaie d’appeler .toLowerCase() dessus pour normaliser le nom de l’outil avant le routage. Deux choses à vérifier :

  1. Isolez quel outil la cause - supprimez les outils un par un de l’Agent IA jusqu’à ce que l’agent s’exécute sans planter. L’outil qui le casse retourne un format de réponse invalide.
  2. Assurez-vous que chaque nœud d’outil connecté retourne toujours { json: { output: "some string" } } - l’Agent IA s’attend au résultat de l’outil dans le champ output en tant que chaîne de caractères. Si votre nœud d’outil ne retourne rien ou une forme inattendue, vous rencontrerez cette erreur.

Le message « Connection rejected » dans la fenêtre de chat suggère que la connexion Azure OpenAI elle-même échoue toujours en amont, donc stabiliser d’abord celle-ci (en corrigeant la version d’API comme nocoderobots l’a décrit) aidera à isoler si l’erreur d’outil est secondaire.

Bonjour,

Merci beaucoup pour votre réponse détaillée ! C’était en fait causé par un nœud Chat connecté à l’Agent IA en tant qu’outil. Donc quand on l’a supprimé, ça a remarché. Je vais explorer comment on peut le corriger et le reconnecter à l’Agent IA.

Merci à tous pour votre temps et votre soutien !

Bonjour @nguyenthieutoan ,

Nous avons essayé de corriger le problème dans le nœud de chat humain-dans-la-boucle, mais il semble y avoir un problème de communication entre les nœuds.

Nous obtenons toujours l’erreur

Mauvaise requête - veuillez vérifier vos paramètres
400 Paramètre obligatoire manquant : « tools[0].type ».

Nous avons essayé d’ajouter le nœud à partir de zéro (pour voir s’il y a un problème de compatibilité des versions de nœuds) et de refaire toutes les configurations à partir de zéro. Je ne sais pas quel pourrait être le problème. Avez-vous une idée sur la façon dont cela pourrait être résolu ?

La reconstruction des nœuds à partir de zéro ne résoudra pas ce problème - le problème se trouve dans les identifiants Azure, pas dans la configuration du nœud. Vérifiez la version d’API définie dans vos identifiants Azure OpenAI. Si elle pointe vers une version d’API plus récente (comme 2025-xx-xx ou une version d’aperçu), Azure exige maintenant strictement type: "function" dans chaque définition d’outil, ce que le nœud n8n n’envoie pas encore.

La solution : ouvrez vos identifiants Azure OpenAI et épinglez la version d’API à 2024-10-21 (GA stable). Cette version accepte le format d’outil qu’n8n envoie actuellement. Si vos identifiants utilisent une URL de base avec la version intégrée dedans, mettez à jour cette URL directement.

Salut ! Ton intuition est 100% correcte—quelque chose du côté de l’API OpenAI a effectivement changé, et c’est exactement à l’origine de ce problème.

OpenAI a récemment mis à jour ses exigences d’API pour l’appel de fonctions et d’outils. Ils exigent maintenant explicitement qu’un champ type (généralement défini sur "function") soit transmis dans chaque définition d’outil de la charge utile. Parce que ton Agent IA transmet les outils au nœud Azure OpenAI Chat en utilisant l’ancienne structure de charge utile héritée, l’API Azure le rejette avec l’erreur Missing required parameter: 'tools[0].type'.

La Solution :
Je vois que tu exécutes actuellement la version n8n 2.29.10. L’équipe n8n est déjà consciente de ce changement d’API OpenAI et a publié un correctif spécifiquement pour y remédier.

Tout ce que tu dois faire, c’est mettre à jour ton image Docker n8n vers la version 2.31.0 ou supérieure.

Une fois la mise à jour effectuée, le nœud Azure OpenAI structurera automatiquement le tableau tools pour se conformer aux nouvelles exigences, et tes agents de chat seront de nouveau en ligne instantanément. Aucune modification de flux de travail nécessaire !


P.S. J’ai en fait exécuté ton message de forum exact par l’intermédiaire de n8n Mastery / Sensei (un Co-pilot IA gratuit que j’ai créé pour la communauté n8n), et il a immédiatement identifié le changement de charge utile OpenAI et l’incompatibilité exacte de la version n8n !

J’attache une capture d’écran de son analyse complète ci-dessous. Si tu veux jamais un assistant pour déboguer instantanément les erreurs d’Agent IA ou les incompatibilités de version d’API directement à côté de ton canevas, tu peux le consulter ici : https://n8n-sensei-app-nu.vercel.app/

J’espère que la mise à jour se déroulera bien et remettra tes flux de travail en marche !

Oui, merci ! Cette modification semble résoudre notre problème pour le moment.