1. Construction des demandes d'API
1.1 Envoi de demandes en utilisant CURL
CURL est un outil en ligne de commande qui prend en charge l'envoi et la réception de données via différents protocoles tels que HTTP et HTTPS. Pour envoyer une demande à l'API OpenAI en utilisant CURL, vous devez d'abord disposer d'une clé d'API valide, que vous ajouterez à l'en-tête de la demande.
Voici un exemple de commande CURL utilisée pour envoyer une demande à l'API OpenAI :
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Dire que c'est un test !"}],
"temperature": 0.7
}'
Vous devez remplacer $OPENAI_API_KEY
par votre clé d'API. Pour des raisons de sécurité, évitez d'exposer votre clé d'API dans un environnement public.
1.2 Analyse des en-têtes de demande
Dans la commande CURL ci-dessus, nous avons utilisé deux en-têtes de demande cruciaux : Content-Type
et Authorization
.
-
Content-Type
: Cela informe le serveur que nous envoyons des données au format JSON. Sa valeur est généralementapplication/json
. -
Authorization
: Il s'agit de l'identifiant utilisé pour authentifier la demande d'API, et son format est toujoursBearer (votre clé d'API)
.
Il est crucial de garantir la correction de ces deux en-têtes pour la réussite de la demande.
1.3 Construction du corps de la demande
Le corps de la demande est une chaîne formatée en JSON qui informe OpenAI de nos intentions. Dans cette demande, nous utilisons model
pour spécifier le modèle que nous utilisons, nous transmettons un tableau messages
définissant l'entrée de l'utilisateur, et nous définissons une temperature
pour ajuster la variabilité de la réponse.
Le JSON ressemble à ceci :
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Dire que c'est un test !"}],
"temperature": 0.7
}
Dans cet exemple, nous demandons au modèle de générer une réponse de test basée sur le message d'entrée.
1.4 Explication détaillée des paramètres de la demande
Dans le corps de la demande, il y a plusieurs paramètres importants à noter :
-
model
: Spécifie le modèle d'IA que nous avons l'intention d'utiliser. OpenAI propose plusieurs modèles, chacun avec des fonctionnalités et des effets différents. -
messages
: Il s'agit d'un tableau contenant un ou plusieurs objets message, chaque message étant composé d'unrole
fournissant le rôle du message etcontent
représentant le contenu du message. -
temperature
: Contrôle la certitude de la réponse. Unetemperature
plus basse génère des réponses plus certaines, tandis qu'une valeur plus élevée conduit à plus d'aléatoire.
2. Analyse des réponses d'API
2.1 Compréhension de la réponse
Lorsque vous envoyez une demande, le serveur renverra un code d'état HTTP et éventuellement un corps de réponse. En général, une demande réussie recevra un code d'état dans la série 200. Les données JSON retournées contiennent le résultat de la demande, et un exemple de réponse est le suivant :
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistant",
"content": "\n\nC'est un test !"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
Dans cette réponse, nous pouvons voir l'ID de la complétion, le timestamp de création, le modèle utilisé, l'utilisation de jetons, et le contenu réel de la réponse (dans le champ choices
).
2.2 Exhaustivité et Gestion d'Erreurs
Le champ finish_reason
indique pourquoi l'API a cessé de produire plus de contenu. Les raisons courantes incluent stop
, length
, et idle
. Si une erreur se produit, comme le dépassement des limites de jetons ou une clé d'API incorrecte, vous recevrez le message d'erreur correspondant et le code d'état. Il est important de gérer ces erreurs correctement pour assurer la continuité de l'expérience utilisateur et la stabilité de votre application. Pour la gestion des erreurs, vous pouvez décider d'une stratégie appropriée en fonction du code d'état renvoyé et du message d'erreur, comme retenter la demande ou fournir un retour à l'utilisateur expliquant la raison de l'erreur.
2.3 Envoi de requêtes API à l'aide du SDK Python
Voici un exemple d'utilisation du SDK Python officiel d'OpenAI pour effectuer des appels API.
Tout d'abord, vous devez installer la bibliothèque openai, ce qui peut être fait en utilisant pip :
pip install --upgrade openai
Ensuite, vous pouvez utiliser le code Python suivant pour effectuer une requête API similaire à l'exemple ci-dessus. N'oubliez pas de remplacer VOTRE_CLÉ_API_OPENAI
par votre clé API.
from openai import OpenAI
client = OpenAI(
api_key="VOTRE_CLÉ_API_OPENAI",
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Vous êtes un assistant de développement professionnel, capable de résoudre divers problèmes de programmation."},
{"role": "user", "content": "Écrivez une fonction de quicksort en Go."}
]
)
print(completion.choices[0].message)