API OpenAI : présentation et premier appel
Intégrez des fonctionnalités d’intelligence artificielle dans vos applications : génération de texte, analyse de documents, traitement d’images ou interaction vocale.
Qu’est-ce que l’API OpenAI ?
L’API OpenAI permet à une application de communiquer avec des modèles d’intelligence artificielle par des requêtes HTTP. Votre application transmet des instructions et des données, puis récupère une réponse qu’elle peut exploiter ou afficher.
Contrairement à une utilisation de ChatGPT dans son interface, l’API s’intègre directement dans vos propres sites, logiciels et outils métier.
Créer du contenu
Rédiger des descriptions, reformuler un texte, traduire ou produire une synthèse.
Analyser des données
Extraire des informations, classer des messages ou analyser le contenu de documents.
Créer un assistant
Accompagner les utilisateurs, répondre à leurs questions et faciliter certaines tâches.
Les fonctionnalités disponibles dépendent du modèle et du point d’entrée utilisés.
Comment fonctionne un appel ?
- L’utilisateur saisit une demande dans votre application.
- Votre serveur envoie cette demande à OpenAI avec une clé API.
- OpenAI renvoie une réponse au format JSON.
- Votre application récupère le texte et l’affiche.
Tutoriel : envoyer une première demande
Nous allons utiliser l’API Responses pour demander une courte explication d’une API REST.
1. Préparer les accès
- Créez un compte sur la plateforme OpenAI .
- Créez une clé API dans les paramètres de votre projet.
- Vérifiez la configuration de facturation et l’accès au modèle que vous souhaitez utiliser.
- Choisissez un modèle compatible avec Responses dans la documentation des modèles .
2. Définir les variables d’environnement
Dans un terminal Bash, définissez votre clé et l’identifiant du modèle choisi. Remplacez les valeurs d’exemple :
export OPENAI_API_KEY="votre_cle_api" export OPENAI_MODEL="identifiant_du_modele" Ces variables sont disponibles pour les programmes lancés depuis ce terminal. Évitez de conserver votre clé dans un historique de commandes partagé.
3. Envoyer la requête avec cURL
curl https://api.openai.com/v1/responses \ --fail-with-body \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"model\": \"$OPENAI_MODEL\", \"instructions\": \"Tu es un formateur en informatique. Réponds en français avec des phrases simples.\", \"input\": \"Explique ce qu’est une API REST en trois phrases.\", \"max_output_tokens\": 300 }" | Élément | Rôle |
|---|---|
Authorization | Authentifie la requête avec votre clé API. |
Content-Type | Indique que les données envoyées sont du JSON. |
model | Sélectionne le modèle à utiliser. |
instructions | Définit les consignes de réponse. |
input | Contient la demande à traiter. |
max_output_tokens | Fixe un plafond de tokens de sortie, qui peut aussi inclure des tokens de raisonnement selon le modèle. |
4. Comprendre la réponse
L’API renvoie un objet JSON. Pour une réponse textuelle simple, le texte se trouve dans un élément de type output_text, à l’intérieur de la collection output. Voici un extrait simplifié :
{ "output": [ { "type": "message", "role": "assistant", "content": [ { "type": "output_text", "text": "Une API REST permet à des applications de communiquer via HTTP..." } ] } ] } Dans une application, parcourez les éléments de output et leurs contenus pour récupérer les blocs output_text. La réponse peut contenir d’autres types d’éléments : ne supposez pas que le texte est toujours dans le premier.
Intégrer l’API dans une page web
Pour créer une interface HTML, votre navigateur doit appeler une route de votre propre serveur. Cette route se charge ensuite de contacter OpenAI avec la clé API.
L’exemple ci-dessous suppose que vous avez créé une route POST /api/assistant, qui accepte un objet JSON contenant message et renvoie un objet JSON contenant reply.
<form id="assistant-form" class="mb-3"> <label for="message" class="form-label">Votre question</label> <textarea id="message" class="form-control" rows="3" maxlength="2000" required></textarea> <button type="submit" class="btn btn-primary mt-3"> Envoyer </button> </form> <p id="reponse" class="border rounded p-3" role="status" aria-live="polite"></p> <script> const form = document.querySelector("#assistant-form"); const message = document.querySelector("#message"); const reponse = document.querySelector("#reponse"); const bouton = form.querySelector("button"); form.addEventListener("submit", async (event) => { event.preventDefault(); const texte = message.value.trim(); if (!texte) return; bouton.disabled = true; reponse.textContent = "Réponse en cours…"; try { const response = await fetch("/api/assistant", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ message: texte }) }); if (!response.ok) { throw new Error("La demande a échoué."); } const data = await response.json(); if (typeof data.reply !== "string") { throw new Error("La réponse reçue est invalide."); } reponse.textContent = data.reply; } catch (error) { reponse.textContent = error.message; } finally { bouton.disabled = false; } }); </script> /api/assistant doit être développée, par exemple en PHP, Symfony ou Node.js. Elle doit valider les demandes, gérer les erreurs et limiter les appels pour maîtriser les coûts. Les bonnes pratiques
- Rédigez des consignes précises : indiquez le contexte, le public et le format attendu.
- Maîtrisez les coûts : surveillez la consommation et limitez les requêtes côté serveur.
- Gérez les erreurs : prévoyez les clés invalides, les limites de débit et les indisponibilités temporaires.
- Vérifiez les réponses : un modèle peut produire des informations incorrectes.
- Affichez le texte de manière sûre : utilisez
textContentpour une réponse textuelle, comme dans cet exemple.
Aucun commentaire pour cet article.