Accueil → Aide

L'appel fonctionne avec curl mais pas depuis votre application

curl et votre application n'envoient pas la même requête. Les coupables habituels sont un proxy que seul l'un des deux respecte, une variable d'environnement qui écrase base_url, une clé restreinte à certaines adresses source, ou une bibliothèque cliente qui ajoute un chemin inattendu.

Ce que vous voyez

Pourquoi cela arrive

OPENAI_BASE_URL, OPENAI_API_KEY et HTTPS_PROXY sont lues automatiquement par de nombreux SDK. Une valeur périmée dans l'environnement l'emporte en silence sur l'argument passé dans le code.

Les proxies d'entreprise et les équipements d'inspection TLS n'affectent pas de la même façon les piles HTTP des bibliothèques et curl. Une erreur de certificat dans le SDK avec un curl qui passe, c'est la signature.

Les clés peuvent être restreintes par IP source. Votre portable est autorisé, le serveur non, et l'erreur est un refus d'autorisation qui ne ressemble en rien à un problème d'IP.

Vérifiez si c'est bien la cause

Faites afficher par l'application ce qu'elle s'apprête réellement à utiliser :

# Python
import os
print(os.getenv('OPENAI_BASE_URL'), os.getenv('HTTPS_PROXY'))
print(client.base_url)
# then reproduce curl from inside the same host
curl -s -o /dev/null -w '%{http_code}\n' \
  'YOUR_BASE_URL/models' -H 'Authorization: Bearer YOUR_KEY'

Lancez le curl depuis la même machine et le même shell que l'application. Le reproduire depuis votre portable teste un autre chemin réseau et ne prouve rien.

Comment le corriger

  1. Nettoyez ou alignez l'environnementSupprimez les variables OPENAI_* périmées, ou donnez-leur les valeurs voulues. Passer base_url explicitement dans le code ne l'emporte pas toujours.
  2. Vérifiez toute restriction d'IP sur la cléSi la clé est limitée à certaines adresses, ajoutez l'IP de sortie du serveur ou utilisez pour ce déploiement une clé sans restriction.
  3. Testez depuis l'hôte qui échoueReproduisez avec curl sur la machine qui échoue, pas sur celle qui fonctionne. La moitié de ces cas s'avèrent être des problèmes réseau, pas de code.
Les clés APICLAN peuvent être verrouillées sur des adresses source précises grâce à une liste d'IP autorisées par clé. C'est utile pour une clé qui tourne depuis un serveur fixe, et c'est la première chose à vérifier quand une clé qui fonctionnait échoue soudain depuis un nouvel hôte.

Voir aussi

Unexpected token '<' lors d'un appel à une API compatible OpenAI401 invalid API key : quand la clé semble correcte mais échoue quand même

Dernière vérification le 2026-10-01. Rédigé à partir de problèmes diagnostiqués sur une passerelle compatible OpenAI en production, pas compilé à partir d'autres sites.