Home → Assistenza

La chiamata funziona con curl ma non dalla tua applicazione

curl e la tua applicazione non inviano la stessa richiesta. I colpevoli abituali sono un proxy rispettato da uno solo dei due, una variabile d'ambiente che sovrascrive base_url, una chiave limitata a indirizzi di origine specifici o una libreria client che aggiunge un percorso inatteso.

Cosa vedi

Perché succede

OPENAI_BASE_URL, OPENAI_API_KEY e HTTPS_PROXY vengono lette automaticamente da molti SDK. Un valore obsoleto nell'ambiente prevale in silenzio sull'argomento passato nel codice.

I proxy aziendali e i dispositivi di ispezione TLS influiscono in modo diverso sugli stack HTTP delle librerie e su curl. Un errore di certificato nell'SDK con un curl che funziona è la firma.

Le chiavi possono essere limitate per IP di origine. Il tuo portatile è autorizzato, il server no, e l'errore è un rifiuto di autorizzazione che non assomiglia per niente a un problema di IP.

Verifica se la causa è questa

Fai stampare all'applicazione ciò che sta davvero per usare:

# 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'

Esegui il curl dalla stessa macchina e dalla stessa shell dell'applicazione. Riprodurlo dal tuo portatile verifica un altro percorso di rete e non dimostra nulla.

Come risolvere

  1. Ripulisci o allinea l'ambienteRimuovi le variabili OPENAI_* obsolete oppure impostale sui valori che intendi. Passare base_url esplicitamente nel codice non sempre prevale.
  2. Controlla eventuali restrizioni di IP sulla chiaveSe la chiave è limitata a certi indirizzi, aggiungi l'IP di uscita del server oppure usa per quel deployment una chiave senza restrizioni.
  3. Testa dall'host che fallisceRiproduci con curl sulla macchina che fallisce, non su quella che funziona. Metà di questi casi si rivelano problemi di rete, non di codice.
Le chiavi APICLAN possono essere bloccate su indirizzi di origine specifici con una lista di IP consentiti per chiave. Conviene impostarla per una chiave che gira da un server fisso, ed è la prima cosa da controllare quando una chiave che funzionava inizia improvvisamente a fallire da un nuovo host.

Articoli correlati

Unexpected token '<' quando chiami un'API compatibile con OpenAI401 invalid API key: quando la chiave sembra giusta ma continua a fallire

Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.