Tutoriale
HiAPI invalid_request: come correggere l'uso errato dell'interfaccia del modello?
Verifica model ID, endpoint supportati e corpo della richiesta, distingui errori di endpoint, parametri e chiave, con codice diagnostico in sola lettura.
TL;DR
invalid_request è un errore di tipo richiesta. Un endpoint scelto male è una possibile causa, ma occorre anche controllare il corpo della richiesta e il model ID in base al messaggio di errore. Verifica prima gli endpoint supportati dal modello, poi struttura i campi secondo quell'endpoint.
Prima di eseguire l'esempio Python, esegui python -m pip install requests nello stesso ambiente Python.
Come scegliere tra i tre endpoint
Di seguito i tre endpoint di generazione più usati di HiAPI; per sapere quali endpoint supporta un singolo modello, consulta la sua pagina modello e il catalogo pubblico dei modelli.
| Endpoint | Aspetti chiave del corpo della richiesta | Utilizzo |
|---|---|---|
/v1/tasks |
model + input |
Attività di immagini, video e audio |
/v1/chat/completions |
model + messages |
Modelli che supportano il protocollo chat |
/v1/responses |
model + input |
Modelli che supportano Responses |
I valori task, openai e openai-response in supported_endpoint_types corrispondono rispettivamente ai tre endpoint sopra. Il catalogo può contenere anche altri tipi di protocollo; se incontri un tipo non elencato, apri la documentazione di integrazione di quel modello.
Verifica in sola lettura degli endpoint supportati dal modello
Imposta HIAPI_MODEL con l'ID completo del modello indicato nella pagina del modello ed esegui lo script seguente. Legge solo il catalogo pubblico e non invia attività di generazione.
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", []))
Quattro passi per correggere la richiesta
- Controlla il dominio e il percorso della richiesta effettiva, verificando che il Base URL non concateni
/v1in modo duplicato. - Confronta l'ID completo e gli endpoint supportati nella pagina del modello; il nome visualizzato non può sostituire direttamente il model ID dell'API.
- Adatta di conseguenza il corpo della richiesta: i
messagesdella chat non si possono copiare tali e quali nell'endpoint delle attività; i parametri dell'attività vanno inseriti ininput. - Rileggi lo stato HTTP e i campi di errore restituiti; se il problema persiste, conserva il request ID, il model ID, il percorso dell'endpoint e il corpo della richiesta con i dati sensibili oscurati.
Distinguere errori di endpoint, parametri e chiave
| Sintomo | Prossimo passo |
|---|---|
| 400, richiesta non valida | Controlla endpoint, JSON, campi obbligatori e tipi dei campi |
| Messaggio esplicito di protocollo non supportato | Usa l'endpoint dichiarato come supportato dal modello |
| 401, chiave non valida o mancante | Controlla l'header Bearer e le variabili d'ambiente a runtime |
L'endpoint delle attività restituisce MODEL_UNAVAILABLE |
Controlla il model ID, lo stato di disponibilità e i permessi di accesso dell'account |
La risposta di rifiuto dell'endpoint delle attività può includere un error_code di primo livello; altri endpoint possono usare error.code. Non giudicare tutti gli errori basandoti su un solo campo.
Domande frequenti
invalid_request indica sempre un endpoint scelto male?
Non necessariamente. Anche campi della richiesta, JSON o campi obbligatori mancanti possono causare il rifiuto. Leggi prima il message, poi controlla l'endpoint.
Basta cambiare l'URL per risolvere?
Devi anche adattare il corpo della richiesta all'endpoint corrispondente. messages e input dell'endpoint delle attività hanno strutture diverse.
Cosa fare se il modello non è nel catalogo pubblico?
Verifica l'ID completo, la pagina del modello e l'ambito di visibilità dell'account; non sostituirlo automaticamente con un modello dal nome simile.
Questo codice di verifica genera contenuti?
No. Il codice legge solo il catalogo pubblico; il flusso di attività inizia solo quando si invia effettivamente una richiesta di generazione.
Approfondimenti
Articoli correlati
Vedi tutti gli articoli →-
Tutoriale
Casi di Recraft Creative Upscale: paesaggi e acquerelli ingranditi
Osserva le variazioni di texture su baita, lago e cittadina ad acquerello, distingui il risultato completo dall'anteprima e controlla i dettagli ridisegnati.
-
Tutoriale
Chiave API OpenAI non valida: 401, variabili d'ambiente e verifica della configurazione di progetto
Distingui gli errori 401, 403 e 429 di OpenAI, controlla variabili d'ambiente, impostazioni di organizzazione e progetto e verifica le credenziali con una richiesta in sola lettura.
-
Tutoriale
Raccolta completa di prompt per Kling 4.0: 6 scene da cui copiare direttamente per creare video
Prodotti e-commerce, cibo, paesaggi di viaggio, momenti di vita quotidiana, b-roll con audio e image-to-video: ogni scena ha un video reale, il prompt completo e un link con compilazione automatica con un clic.