Nouvelles API d’OpenAI génèrent des erreurs, voici les détails

Nouvelles APIs : Problèmes rencontrés et solutions
Problèmes avec les nouvelles APIs
Nous avons récemment testé les nouvelles APIs disponibles selon un article. Malheureusement, nous avons constaté deux problèmes majeurs :
- API temps réel pour la transcription uniquement : nous rencontrons désormais une erreur 400 bad request sans message d’erreur.
- Nouvelle détection de tour semantic_vad : il semblerait que cette fonctionnalité soit défaillante, même pour les sessions traditionnelles de l’API temps réel.
Détails et solutions
Voici les détails du premier point :
Nous avons d’abord créé un objet transcription_session :
const response = await fetch(“https://api.openai.com/v1/realtime/transcription_sessions”, {method: “POST”, headers: {Authorization: `Bearer ${apiKey}`, “Content-Type”: “application/json”,}, body: JSON.stringify({input_audio_noise_reduction: {type: “far_field”,},input_audio_transcription: {language: “en”, model: “gpt-4o-mini-transcribe”, prompt: “expect data science and programming words”,},turn_detection: {eagerness: “medium”, type: “semantic_vad”,},}),});
Nous avons reçu une réponse de l’objet realtime.transcription_session :
{ “id”: “sess_BDNVo7DGNBHyv27wXoWNW”, “object”: “realtime.transcription_session”, “expires_at”: 0, “input_audio_noise_reduction”: null, “turn_detection”: { “type”: “semantic_vad”, “eagerness”: “medium” }, “input_audio_format”: “pcm16”, “input_audio_transcription”: { “model”: “gpt-4o-mini-transcribe”, “language”: “en”, “prompt”: “expect data science and programming words” }, “client_secret”: { “value”: “ek_xxxxxxxx”, “expires_at”: 1742535544 }, “include”: null }
Nous utilisons la clé EPHEMERAL_KEY pour établir une connexion WebRTC :
const baseUrl = “https://api.openai.com/v1/realtime”; const model = “gpt-4o-mini-transcribe”; const sdpResponse = await fetch(`${baseUrl}?model=${model}`, {method: “POST”, body: offer.sdp, headers: {Authorization: `Bearer ${EPHEMERAL_KEY}`, “Content-Type”: “application/sdp”, “OpenAI-Beta”: “realtime=v1”,},});
Cette requête POST retourne une erreur 400 BAD REQUEST sans message d’erreur.
Concernant le deuxième point, nous avons créé une session traditionnelle de l’API temps réel avec la nouvelle sematic_vad :
const response = await fetch(“https://api.openai.com/v1/realtime/sessions”, {method: “POST”, headers: {Authorization: `Bearer ${apiKey}`, “Content-Type”: “application/json”,}, body: JSON.stringify({model: “gpt-4o-realtime-preview-2024-12-17”, voice: “verse”, turn_detection: {type: “semantic_vad”, eagerness: “medium”,},}),});
Nous avons reçu un objet en retour :
{ “id”: “sess_BDNcgumFgNZBdUsYwGkTw”, “object”: “realtime.session”, “expires_at”: 0, “input_audio_noise_reduction”: null, “turn_detection”: { “type”: “semantic_vad”, “eagerness”: “medium”, “create_response”: true, “interrupt_response”: true }, “input_audio_format”: “pcm16”, “input_audio_transcription”: null, “client_secret”: { “value”: “ek_xxxxxxxxx”, “expires_at”: 1742535970 }, “include”: null, “model”: “gpt-4o-realtime-preview-2024-12-17”, “modalities”: [ “text”, “audio” ], “instructions”: “Your knowledge cutoff is 2023-10.”, “voice”: “verse”, “output_audio_format”: “pcm16”, “tool_choice”: “auto”, “temperature”: 0.8, “max_response_output_tokens”: “inf”, “tools”: [] }
Nous avons tenté d’établir une connexion WebRTC avec la clé EPHEMERAL_KEY, mais celle-ci a échoué. En retirant la partie semantic_vad lors de la création de la session, nous obtenons une session server_vad et la connexion WebRTC fonctionne sans problème.
Source : community.openai.com