Tutoriel
HiAPI invalid_request : comment corriger une mauvaise utilisation de l'endpoint du modèle ?
Vérifiez l'ID du modèle, les endpoints pris en charge et le corps de la requête, distinguez les erreurs d'endpoint, de paramètres et de clé, avec un code de diagnostic en lecture seule.
TL;DR
invalid_request est une erreur de type requête. Un mauvais choix d'endpoint est une cause possible ; il faut aussi vérifier le corps de la requête et l'ID du modèle à la lumière du message d'erreur. Vérifiez d'abord les endpoints pris en charge par le modèle, puis organisez les champs selon cet endpoint.
Avant d'exécuter l'exemple Python, lancez python -m pip install requests dans le même environnement Python.
Comment choisir parmi les trois endpoints
Voici les trois endpoints de génération couramment utilisés par HiAPI ; pour savoir quels endpoints un modèle donné prend en charge, consultez sa page modèle et le catalogue public des modèles.
| Endpoint | Points clés du corps de requête | Usage |
|---|---|---|
/v1/tasks |
model + input |
Tâches d'image, de vidéo et d'audio |
/v1/chat/completions |
model + messages |
Modèles prenant en charge le protocole de chat |
/v1/responses |
model + input |
Modèles prenant en charge Responses |
Les valeurs task, openai et openai-response de supported_endpoint_types correspondent respectivement aux trois endpoints ci-dessus. Le catalogue peut aussi contenir d'autres types de protocoles ; si vous rencontrez un type non listé, ouvrez la documentation d'intégration du modèle concerné.
Vérification en lecture seule des endpoints pris en charge par le modèle
Définissez HIAPI_MODEL sur l'ID complet du modèle indiqué sur sa page, puis exécutez le script suivant. Il ne fait que lire le catalogue public et ne soumet aucune tâche de génération.
import os
import requests
model_id = os.environ["HIAPI_MODEL"]
response = requests.get("https://api.hiapi.ai/api/pricing", timeout=30)
response.raise_for_status()
models = response.json()["data"]
model = next((m for m in models if m.get("model_name") == model_id), None)
if model is None:
raise SystemExit("Model not present in the public catalog; check its exact model ID")
print("model:", model["model_name"])
print("supported_endpoint_types:", model.get("supported_endpoint_types", []))
Quatre étapes pour corriger la requête
- Vérifiez le domaine et le chemin réellement appelés, et assurez-vous que l'URL de base ne concatène pas
/v1en double. - Comparez avec l'ID complet et les endpoints pris en charge indiqués sur la page du modèle ; le nom d'affichage ne remplace pas directement l'ID de modèle de l'API.
- Ajustez également le corps de la requête : les
messagesdu chat ne peuvent pas être copiés tels quels dans l'endpoint de tâche ; les paramètres de tâche doivent être placés dansinput. - Relisez le statut HTTP et les champs d'erreur renvoyés ; en cas d'échec persistant, conservez l'ID de requête, l'ID de modèle, le chemin de l'endpoint et le corps de requête expurgé.
Distinguer les erreurs d'endpoint, de paramètres et de clé
| Symptôme | Étape suivante |
|---|---|
| 400, requête jugée invalide | Vérifiez l'endpoint, le JSON, les champs obligatoires et les types de champs |
| Message indiquant explicitement que le protocole actuel n'est pas pris en charge | Utilisez l'endpoint déclaré comme pris en charge par le modèle |
| 401, clé invalide ou absente | Vérifiez l'en-tête Bearer et les variables d'environnement d'exécution |
L'endpoint de tâche renvoie MODEL_UNAVAILABLE |
Vérifiez l'ID du modèle, son état de disponibilité et les droits d'accès du compte |
La réponse de refus de l'endpoint de tâche peut contenir un error_code de premier niveau ; d'autres endpoints peuvent utiliser error.code. Ne vous fiez pas à un seul champ pour juger de toutes les erreurs.
Questions fréquentes
invalid_request signifie-t-il toujours un mauvais choix d'endpoint ?
Pas nécessairement. Des champs de requête, un JSON ou l'absence de champs obligatoires peuvent aussi entraîner le rejet de la requête. Lisez d'abord le message, puis vérifiez l'endpoint.
Suffit-il de modifier l'URL pour corriger le problème ?
Il faut aussi adapter le corps de la requête à l'endpoint correspondant. La structure des messages diffère de celle de input de l'endpoint de tâche.
Que faire si le modèle n'est pas dans le catalogue public ?
Vérifiez l'ID complet, la page du modèle et la portée de visibilité du compte ; ne le remplacez pas automatiquement par un modèle au nom similaire.
Ce code de vérification génère-t-il du contenu ?
Non. Le code ne fait que lire le catalogue public ; le processus de tâche ne démarre qu'à la soumission effective d'une requête de génération.
Poursuivre le dépannage
Articles similaires
Voir tous les articles →-
Tutoriel
Cas pratiques Recraft Creative Upscale : agrandissement de paysages et d'aquarelles
Examinez les variations de texture de la cabane, du lac et de la petite ville à l'aquarelle, distinguez le résultat complet de l'aperçu et vérifiez les détails redessinés.
-
Tutoriel
Clé API OpenAI invalide : dépannage des erreurs 401, des variables d'environnement et de la configuration du projet
Distinguez les erreurs 401, 403 et 429 d'OpenAI, vérifiez les variables d'environnement ainsi que les paramètres d'organisation et de projet, puis validez les identifiants avec une requête en lecture seule.
-
Tutoriel
Guide complet des prompts Kling 4.0 : 6 scènes à copier-coller pour générer des vidéos
Produit e-commerce, cuisine, paysage de voyage, scène de vie, plan vide avec son et image vers vidéo : chaque scène a son rendu réel, son prompt complet et un lien de préremplissage en un clic.