Introduction
Vous pouvez interagir avec l'API via des requêtes HTTP à partir de n'importe quel langage, via nos liaisons Python officielles, notre bibliothèque officielle Node.js ou une . Pour installer les liaisons Python officielles, exécutez la commande suivante :
Pour installer la bibliothèque officielle Node.js, exécutez la commande suivante dans le répertoire de votre projet Node.js :
Authentification
L'API OpenAI utilise des clés API pour l'authentification. Visitez votre page pour récupérer la clé API que vous utiliserez dans vos requêtes. N'oubliez pas que votre clé API est un secret ! Ne le partagez pas avec d'autres et ne l'exposez pas dans un code côté client (navigateurs, applications). Les demandes de production doivent être acheminées via votre propre serveur principal où votre clé API peut être chargée en toute sécurité à partir d'une variable d'environnement ou d'un service de gestion de clés.
Toutes les requêtes API doivent inclure votre clé API dans un Authorizationen-tête HTTP comme suit :
Requesting organization
Pour les utilisateurs qui appartiennent à plusieurs organisations, vous pouvez transmettre un en-tête pour spécifier quelle organisation est utilisée pour une demande d'API. L'utilisation de ces demandes d'API sera prise en compte dans le quota d'abonnement de l'organisation spécifiée.
Exemple de commande curl :
Exemple avec le openaipackage Python :
Exemple avec le openaipackage Node.js :
Les ID d'organisation se trouvent sur la page . Making requests
Vous pouvez coller la commande ci-dessous dans votre terminal pour exécuter votre première requête API. Assurez-vous de remplacer $OPENAI_API_KEYpar votre clé API secrète.
Cette requête demande au gpt-3.5-turbomodèle de compléter le texte en commençant par l'invite " Dites ceci est un test ". Vous devriez obtenir une réponse semblable à celle-ci :
Vous avez maintenant généré votre premier achèvement de chat. Nous pouvons voir le finish_reasonis stopqui signifie que l'API a renvoyé l'achèvement complet généré par le modèle. Dans la requête ci-dessus, nous n'avons généré qu'un seul message, mais vous pouvez définir le nparamètre pour générer plusieurs choix de messages. Dans cet exemple, gpt-3.5-turboest utilisé pour une plus traditionnelle . Le modèle est également optimisé pour . Models
List models
Répertorie les modèles actuellement disponibles et fournit des informations de base sur chacun, telles que le propriétaire et la disponibilité.
Exemple de demande
Réponse
Retrieve model
Récupère une instance de modèle, fournissant des informations de base sur le modèle telles que le propriétaire et les autorisations.
Path parameters
modèle chaîne Requis
L'ID du modèle à utiliser pour cette requête
Exemple de demande
Réponse
Completions
Étant donné une invite, le modèle renverra un ou plusieurs achèvements prédits et peut également renvoyer les probabilités de jetons alternatifs à chaque position.
Créer Completions
Crée une complétion pour l'invite avec les paramètres fournis
Request body
modèle chaîne Requis
ID du modèle à utiliser. Vous pouvez utiliser l' API pour voir tous vos modèles disponibles, ou consulter notre pour les décrire. prompt
chaîne ou tableau Facultatif Par défaut à <|endoftext|>
Les invites pour lesquelles générer des complétions, codées sous forme de chaîne, de tableau de chaînes, de tableau de jetons ou de tableau de tableaux de jetons.
suffixe
chaîne Facultatif La valeur par défaut est nulle
Le suffixe qui vient après l'achèvement du texte inséré.
max_tokens
entier Facultatif Par défaut à 16
Le nombre maximum de à générer dans la complétion. Le nombre de jetons de votre invite plus max_tokensne peut pas dépasser la longueur de contexte du modèle. La plupart des modèles ont une longueur de contexte de 2048 jetons (à l'exception des modèles les plus récents, qui prennent en charge 4096).
température
nombre Facultatif Par défaut à 1
Quelle température d'échantillonnage utiliser, entre 0 et 2. Des valeurs plus élevées comme 0,8 rendront la sortie plus aléatoire, tandis que des valeurs plus basses comme 0,2 la rendront plus ciblée et déterministe.
Nous recommandons généralement de modifier ceci ou top_pmais pas les deux.
top_p
nombre Facultatif Par défaut à 1
Une alternative à l'échantillonnage avec la température, appelée échantillonnage par noyau, où le modèle considère les résultats des jetons avec une masse de probabilité top_p. Ainsi, 0,1 signifie que seuls les jetons comprenant la masse de probabilité supérieure de 10 % sont pris en compte.
Nous recommandons généralement de modifier ceci ou temperaturemais pas les deux.
n
entier Facultatif Par défaut à 1
Combien de complétions générer pour chaque invite.
Remarque : Étant donné que ce paramètre génère de nombreux achèvements, il peut rapidement consommer votre quota de jetons. Utilisez-le avec précaution et assurez-vous que vous disposez de paramètres raisonnables pour max_tokenset stop. stream
booléen Facultatif La valeur par défaut est false
Indique s'il faut diffuser la progression partielle. S'ils sont définis, les jetons seront envoyés en tant dès qu'ils seront disponibles, le flux se terminant par un logprobs
entier FacultatifLa valeur par défaut est nulle
Incluez les probabilités de log sur les logprobsjetons les plus probables, ainsi que les jetons choisis.
Par exemple, si logprobsvaut 5, l'API renverra une liste des 5 jetons les plus probables.
L'API renverra toujours le logprobdu jeton échantillonné,
il peut donc y avoir jusqu'à logprobs+1éléments dans la réponse.
La valeur maximale pour logprobsest 5.
écho
booléen Facultatif La valeur par défaut est false
Faites écho à l'invite en plus de l'achèvement
stop
chaîne ou tableau Facultatif La valeur par défaut est nulle
Jusqu'à 4 séquences où l'API cessera de générer d'autres jetons. Le texte renvoyé ne contiendra pas la séquence d'arrêt.
presence_penalty
nombre Facultatif Par défaut à 0
Nombre compris entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur apparition dans le texte jusqu'à présent, ce qui augmente la probabilité que le modèle parle de nouveaux sujets.
fréquence_pénalité
nombre Facultatif Par défaut à 0
Nombre compris entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur fréquence existante dans le texte jusqu'à présent, ce qui réduit la probabilité que le modèle répète la même ligne textuellement.
best_of
integer Facultatif Par défaut à 1
Génère des complétions best_of côté serveur et renvoie le "meilleur" (celui avec la probabilité de journal la plus élevée par jeton). Les résultats ne peuvent pas être diffusés.
Lorsqu'il est utilisé avec n, best_ofcontrôle le nombre d'achèvements candidats et nspécifie le nombre à renvoyer - best_ofdoit être supérieur à n.
Remarque : Étant donné que ce paramètre génère de nombreux achèvements, il peut rapidement consommer votre quota de jetons. Utilisez-le avec précaution et assurez-vous que vous disposez de paramètres raisonnables pour max_tokens et stop. biais_logit
map Facultatif La valeur par défaut est nulle
Modifiez la probabilité que des jetons spécifiés apparaissent dans la complétion.
Accepte un objet json qui mappe les jetons (spécifiés par leur ID de jeton dans le tokenizer GPT) à une valeur de biais associée de -100 à 100.
Par exemple, vous pouvez passer {"50256": -100}pour empêcher la génération du jeton <|endoftext|>. user
string Facultatif
Un identifiant unique représentant votre utilisateur final, qui peut aider OpenAI à surveiller et à détecter les abus. . Exemple de demande
Paramètres
Réponse
Chat
Étant donné une conversation de chat, le modèle renverra une réponse chat completion.
Créer chat completion
Crée une complétion pour le message de chat
Corps de la requête
modèle string Requis
ID du modèle à utiliser. Consultez le tableau pour plus de détails sur les modèles qui fonctionnent avec l'API Chat. messages
array Requis
Les messages pour lesquels générer des achèvements de chat, au . température
Quelle température d'échantillonnage utiliser, entre 0 et 2.
Des valeurs plus élevées comme 0,8 rendront la sortie plus aléatoire, tandis que des valeurs plus basses comme 0,2 la rendront plus ciblée et déterministe.
Nous recommandons généralement de modifier la température ou top_p top_p
Une alternative à l'échantillonnage avec la température, appelée échantillonnage par noyau, où le modèle considère les résultats des jetons avec une masse de probabilité top_p. Ainsi, 0,1 signifie que seuls les jetons comprenant la masse de probabilité supérieure de 10 % sont pris en compte.
Nous recommandons généralement de modifier top_p ou temperature n
entier Facultatif Par défaut à 1
Combien de choix d'achèvement de chat générer pour chaque message d'entrée.
Remarque : Étant donné que ce paramètre génère de nombreux achèvements, il peut rapidement consommer votre quota de jetons. Utilisez-le avec précaution et assurez-vous que vous disposez de paramètres raisonnables pour max_tokenset stop. stream
booléen Facultatif La valeur par défaut est false
S'il est défini, des deltas de messages partiels seront envoyés, comme dans ChatGPT. Les jetons seront envoyés en tant dès qu'ils seront disponibles, le flux se terminant par un data: [DONE]message. Voir le livre de recettes OpenAI pour . Stop
string or array Facultatif La valeur par défaut est nulle
Jusqu'à 4 séquences où l'API cessera de générer d'autres jetons.
max_tokens
Integer Facultatif Par défaut à inf
Le nombre maximum de à générer dans l'achèvement du chat. La longueur totale des jetons d'entrée et des jetons générés est limitée par la longueur du contexte du modèle.
presence_penalty
number Facultatif Par défaut à 0
Nombre compris entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur apparition dans le texte jusqu'à présent, ce qui augmente la probabilité que le modèle parle de nouveaux sujets.
fréquence_pénalité
number Facultatif Par défaut à 0
Nombre compris entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur fréquence existante dans le texte jusqu'à présent, ce qui réduit la probabilité que le modèle répète la même ligne textuellement.
biais_logit
map Facultatif La valeur par défaut est nulle
Modifiez la probabilité que des jetons spécifiés apparaissent dans la complétion.
Accepte un objet json qui mappe les jetons (spécifiés par leur ID de jeton dans le tokenizer) à une valeur de biais associée comprise entre -100 et 100. Mathématiquement, le biais est ajouté aux logits générés par le modèle avant l'échantillonnage. L'effet exact variera selon le modèle, mais les valeurs comprises entre -1 et 1 devraient diminuer ou augmenter la probabilité de sélection ; des valeurs telles que -100 ou 100 doivent entraîner une interdiction ou une sélection exclusive du jeton concerné.
user
string Facultatif
Un identifiant unique représentant votre utilisateur final, qui peut aider OpenAI à surveiller et à détecter les abus. . Exemple de demande
Paramètres
Réponse
Edits
Étant donné une invite et une instruction, le modèle renverra une version modifiée de l'invite.
Create edit
POSTE https://api.openai.com/v1/edits
Crée une nouvelle modification pour l'entrée, l'instruction et les paramètres fournis.
Corps de la requête
modèle
string Requis ID du modèle à utiliser.
Vous pouvez utiliser le modèle text-davinci-edit-001ou code-davinci-edit-001avec ce point de terminaison.
input
string Facultatif Par défaut à ''
Le texte d'entrée à utiliser comme point de départ pour la modification.
instruction
string Requis
L'instruction qui indique au modèle comment modifier l'invite.
n
Integer Facultatif Par défaut à 1
Combien de modifications générer pour l'entrée et l'instruction.
temperature
number Facultatif Par défaut à 1
Quelle température d'échantillonnage utiliser, entre 0 et 2. Des valeurs plus élevées comme 0,8 rendront la sortie plus aléatoire, tandis que des valeurs plus basses comme 0,2 la rendront plus ciblée et déterministe.
Nous recommandons généralement de modifier ceci ou top_pmais pas les deux.
top_p
number Facultatif Par défaut à 1
Une alternative à l'échantillonnage avec la température, appelée échantillonnage par noyau, où le modèle considère les résultats des jetons avec une masse de probabilité top_p. Ainsi, 0,1 signifie que seuls les jetons comprenant la masse de probabilité supérieure de 10 % sont pris en compte.
Nous recommandons généralement de modifier ceci ou temperaturemais pas les deux.
Exemple de demande
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createEdit({
model: "text-davinci-edit-001",
input: "What day of the wek is it?",
instruction: "Fix the spelling mistakes",
});
Paramètres
{
"model": "text-davinci-edit-001",
"input": "What day of the wek is it?",
"instruction": "Fix the spelling mistakes",
}
Réponse
{
"object": "edit",
"created": 1589478378,
"choices": [
{
"text": "What day of the week is it?",
"index": 0,
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 32,
"total_tokens": 57
}
}
Images
Étant donné une invite et/ou une image d'entrée, le modèle générera une nouvelle image.
Create image
POSTE https://api.openai.com/v1/images/generations
Crée une image à partir d'une invite.
Corps de la requête
prompt
chaîne
Requis
Une description textuelle des images souhaitées. La longueur maximale est de 1000 caractères.
n
entier
Facultatif
Par défaut à 1
Le nombre d'images à générer. Doit être compris entre 1 et 10.
size
string Facultatif Par défaut à 1024x1024
La taille des images générées. Doit être l'un des 256x256, 512x512ou 1024x1024.
response_format
string Facultatif URL par défaut
Le format dans lequel les images générées sont renvoyées. Doit être l'un des urlou b64_json.
user
string Facultatif
Un identifiant unique représentant votre utilisateur final, qui peut aider OpenAI à surveiller et à détecter les abus. . Exemple de demande
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createImage({
prompt: "A cute baby sea otter",
n: 2,
size: "1024x1024",
});
Paramètres
{
"prompt": "A cute baby sea otter",
"n": 2,
"size": "1024x1024"
}
Réponse
{
"created": 1589478378,
"data": [
{
"url": "https://..."
},
{
"url": "https://..."
}
]
}
Create image edit
POSTE https://api.openai.com/v1/images/edits
Crée une image modifiée ou étendue à partir d'une image originale et d'une invite.
Corps de la requête
image
L'image à modifier. Doit être un fichier PNG valide, inférieur à 4 Mo et carré. Si le masque n'est pas fourni, l'image doit avoir une transparence, qui sera utilisée comme masque.
mask
Une image supplémentaire dont les zones entièrement transparentes (par exemple où alpha est égal à zéro) indiquent où imagedoivent être éditées. Doit être un fichier PNG valide, moins de 4 Mo, et avoir les mêmes dimensions que image.
prompt
Une description textuelle des images souhaitées. La longueur maximale est de 1000 caractères.
n
string Optional Par défaut à 1
Le nombre d'images à générer. Doit être compris entre 1 et 10.
size
string Optional Par défaut à 1024x1024
La taille des images générées. Doit être l'un des 256x256, 512x512ou 1024x1024.
format_réponse
string Optional URL par défaut
Le format dans lequel les images générées sont renvoyées. Doit être l'un des urlou b64_json.
utilisateur
Un identifiant unique représentant votre utilisateur final, qui peut aider OpenAI à surveiller et à détecter les abus. . Exemple de demande
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createImageEdit(
fs.createReadStream("otter.png"),
fs.createReadStream("mask.png"),
"A cute baby sea otter wearing a beret",
2,
"1024x1024"
);
Réponse
{
"created": 1589478378,
"data": [
{
"url": "https://..."
},
{
"url": "https://..."
}
]
}
Create image variation
POSTE https://api.openai.com/v1/images/variations
Crée une variation d'une image donnée.
Corps de la requête
image
L'image à modifier. Doit être un fichier PNG valide, inférieur à 4 Mo et carré. Si le masque n'est pas fourni, l'image doit avoir une transparence, qui sera utilisée comme masque.
n
string Optional Par défaut à 1
Le nombre d'images à générer. Doit être compris entre 1 et 10.
size
string Optional Par défaut à 1024x1024
La taille des images générées. Doit être l'un des 256x256, 512x512ou 1024x1024.
format_réponse
string Optional URL par défaut
Le format dans lequel les images générées sont renvoyées. Doit être l'un des urlou b64_json.
utilisateur
Un identifiant unique représentant votre utilisateur final, qui peut aider OpenAI à surveiller et à détecter les abus. . Exemple de demande
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createImageVariation(
fs.createReadStream("otter.png"),
2,
"1024x1024"
);
Réponse
{
"created": 1589478378,
"data": [
{
"url": "https://..."
},
{
"url": "https://..."
}
]
}
Embeddings
Obtenez une représentation vectorielle d'une entrée donnée qui peut être facilement consommée par des modèles et des algorithmes d'apprentissage automatique.
Create embeddings
POSTE https://api.openai.com/v1/embeddings
Crée un vecteur d'intégration représentant le texte d'entrée.
Corps de la requête
model
ID du modèle à utiliser. Vous pouvez utiliser l' API pour voir tous vos modèles disponibles, ou consulter notre pour les décrire. input
Entrez le texte pour lequel obtenir les représentations incorporées, encodé sous forme de chaîne ou de tableau de jetons. Pour obtenir des représentations incorporées pour plusieurs entrées dans une seule requête, transmettez un tableau de chaînes ou un tableau de tableaux de jetons. Chaque entrée ne doit pas dépasser 8192 jetons de longueur.
user
Un identifiant unique représentant votre utilisateur final, qui peut aider OpenAI à surveiller et à détecter les abus. . Exemple de demande
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createEmbedding({
model: "text-embedding-ada-002",
input: "The food was delicious and the waiter...",
});
Paramètres
{
"model": "text-embedding-ada-002",
"input": "The food was delicious and the waiter..."
}
Réponse
Copie
{
"object": "list",
"data": [