Connecter un SDK OpenAI
Diriger un client compatible OpenAI vers la passerelle : mode endpoint pour inspection complète ou mode proxy.
Deux options pour connecter les clients compatibles OpenAI :
- Endpoint mode (recommandé) : URL de base /v1 de la passerelle, inspection complète.
- Proxy mode : passerelle configurée comme proxy HTTP de transfert.
Endpoint mode#
Tout SDK compatible OpenAI fonctionne, seule l’URL de base change.
Python#
from openai import OpenAI
client = OpenAI(
api_key="<provider-api-key>", # transmis au backend
base_url="http://<gateway-host>:443/v1", # AI-FW gateway
default_headers={"X-Agent-ID": "my-agent-01"},
)
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)Node.js#
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "<provider-api-key>",
baseURL: "http://<gateway-host>:443/v1",
defaultHeaders: { "X-Agent-ID": "my-agent-01" },
});
const resp = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);curl#
curl http://<gateway-host>:443/v1/chat/completions -H "Content-Type: application/json" -H "X-Agent-ID: my-agent-01" -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello!"}]}'En-têtes#
| En-tête | Fonction |
|---|---|
| Authorization: Bearer <key> | Authentification client et/ou clé upstream selon le mode. |
| X-Agent-ID | Identité agent pour suivi, routage et risque. |
| X-User-Id | Identité utilisateur ; claims sub du token privilégiées. |
| x-aifw-cache-refresh | Ignore lecture cache, autorise écriture. |
Proxy mode#
curl --proxy http://<gateway-host>:443 https://api.openai.com/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"gpt-4o","messages":[{"role":"user","content":"hi"}]}'| Proxy mode | Comportement | Inspection |
|---|---|---|
| HTTP absolute-form | Normalisé en /v1/*, pipeline complet. | Complète |
| CONNECT tunnel (HTTPS) | Tunnel TCP vers un backend autorisé. | Métadonnées uniquement ; TLS chiffre de bout en bout. |
La CONNECT allow-list autorise l’hôte backend par défaut, backends enregistrés et hôtes ajoutés dans Settings -> Forward Proxy -> Allowed Tunnel Hosts. Les autres reçoivent 403. Le proxy peut être désactivé.
Le tunnel HTTPS n’est pas inspecté
Utilisez endpoint mode pour examiner le contenu. CONNECT tunnel est chiffré de bout en bout ; seules les métadonnées sont journalisées.
Streaming#
stream: true suit le comportement OpenAI. buffered inspecte la réponse complète avant livraison ; stream transmet les tokens et termine le flux en cas de violation.
Dépannage#
- 401 : vérifiez mode d’authentification et API key.
- model_not_registered : enregistrez le modèle ou désactivez Reject Unregistered Models.
- model_disabled : activez le modèle dans Model Inventory.
- Pas d’inspection : utilisez endpoint mode, pas CONNECT tunnel.