OpenAI compatibility

Les modèles Gemini sont accessibles à l'aide des bibliothèques OpenAI (Python et TypeScript / JavaScript) ainsi que de l'API REST. Pour cela, vous devez modifier trois lignes de code et utiliser votre clé API Gemini. Pour en savoir plus sur cette fonctionnalité, consultez le guide de compatibilité.

Méthode: chatCompletions

Génère un ensemble de réponses à partir du modèle en fonction d'un historique de chat.

Point de terminaison

Poster https://generativelanguage.googleapis.com/v1beta:chatCompletions

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
model string

Obligatoire. Nom de l'Model à utiliser pour générer la saisie semi-automatique. Le nom du modèle sera précédé de "models/" s'il ne contient pas de barre oblique.

messages[] object (Struct format)

Obligatoire. Historique de chat à utiliser pour générer la finalisation. Compatible avec les requêtes à une ou plusieurs étapes. Remarque: Il s'agit d'un champ polymorphe, qui est désérialisé en InternalChatMessage.

stream boolean

Facultatif. Indique si la réponse doit être diffusée ou renvoyée en une seule fois.

Si la valeur est "true", le champ "object" de la réponse est "chat.completion.chunk". Sinon, il s'agit de "chat.completion".

streamOptions object (StreamOptions)

Facultatif. Options pour les requêtes en streaming.

tools[] object (ChatTool)

Facultatif. Ensemble d'outils pour lesquels le modèle peut générer des appels. Chaque outil déclare sa signature.

toolChoice value (Value format)

Facultatif. Détermine si le modèle doit utiliser un outil ou non, et quel outil utiliser. Peut être: - la chaîne "none", pour désactiver les outils. - La chaîne "auto", pour laisser le modèle décider. - La chaîne "required", pour forcer le modèle à utiliser un outil. - Un objet descripteur de nom de fonction, spécifiant l'outil à utiliser. La dernière option suit le schéma suivant: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Facultatif. Nombre d'achèvements candidats à générer. Vous devez saisir un entier positif. Si cette clause n'est pas définie, la valeur par défaut est 1.

stop value (Value format)

Facultatif. Ensemble de séquences de caractères qui arrêtent la génération de sortie. Remarque: Il s'agit d'un champ polymorphe. Il doit contenir une chaîne ou des chaînes répétées.

maxCompletionTokens integer

Facultatif. Nombre maximal de jetons à inclure dans une réponse candidate. Vous devez saisir un entier positif.

maxTokens integer

Facultatif. Nombre maximal de jetons à inclure dans une réponse candidate. Vous devez saisir un entier positif. Ce champ est obsolète par le SDK.

temperature number

Facultatif. Contrôle le caractère aléatoire de la sortie.

topP number

Facultatif. Probabilité cumulée maximale des jetons à prendre en compte lors de l'échantillonnage.

responseFormat object (ResponseFormat)

Facultatif. Définit le format de la réponse. Si cette valeur n'est pas définie, la réponse sera mise en forme sous forme de texte.

Corps de la réponse

Si la requête aboutit, la réponse est une réponse HTTP générique dont le format est défini par la méthode.

Méthode: embeddings

Génère des représentations vectorielles continues à partir du modèle en fonction d'une entrée.

Point de terminaison

Poster https://generativelanguage.googleapis.com/v1beta/embeddings

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
input value (Value format)

Obligatoire. Entrée pour laquelle générer des embeddings. Il peut s'agir d'une chaîne ou d'une liste de chaînes. Le SDK accepte une liste de nombres et une liste de listes de nombres, mais cette fonctionnalité n'est pas encore implémentée.

model string

Obligatoire. Modèle pour lequel générer les embeddings.

encodingFormat string

Facultatif. Format de l'encodage. Doit être "float" ou "base64".

dimensions integer

Facultatif. Taille des dimensions des représentations vectorielles continues générées.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de GenerateEmbeddingsResponse.

Méthode: listModels

Répertorie les modèles actuellement disponibles.

Point de terminaison

get https://generativelanguage.googleapis.com/v1beta/listModels

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de SdkListModelsResponse.

Méthode: chat.completions

Génère un ensemble de réponses à partir du modèle en fonction d'un historique de chat.

Point de terminaison

Poster https://generativelanguage.googleapis.com/v1beta/chat/completions

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
model string

Obligatoire. Nom de l'Model à utiliser pour générer la saisie semi-automatique. Le nom du modèle sera précédé de "models/" s'il ne contient pas de barre oblique.

messages[] object (Struct format)

Obligatoire. Historique de chat à utiliser pour générer la finalisation. Compatible avec les requêtes à une ou plusieurs étapes. Remarque: Il s'agit d'un champ polymorphe, qui est désérialisé en InternalChatMessage.

stream boolean

Facultatif. Indique si la réponse doit être diffusée ou renvoyée en une seule fois.

Si la valeur est "true", le champ "object" de la réponse est "chat.completion.chunk". Sinon, il s'agit de "chat.completion".

streamOptions object (StreamOptions)

Facultatif. Options pour les requêtes en streaming.

tools[] object (ChatTool)

Facultatif. Ensemble d'outils pour lesquels le modèle peut générer des appels. Chaque outil déclare sa signature.

toolChoice value (Value format)

Facultatif. Détermine si le modèle doit utiliser un outil ou non, et quel outil utiliser. Peut être: - la chaîne "none", pour désactiver les outils. - La chaîne "auto", pour laisser le modèle décider. - La chaîne "required", pour forcer le modèle à utiliser un outil. - Un objet descripteur de nom de fonction, spécifiant l'outil à utiliser. La dernière option suit le schéma suivant: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Facultatif. Nombre d'achèvements candidats à générer. Vous devez saisir un entier positif. Si cette clause n'est pas définie, la valeur par défaut est 1.

stop value (Value format)

Facultatif. Ensemble de séquences de caractères qui arrêtent la génération de sortie. Remarque: Il s'agit d'un champ polymorphe. Il doit contenir une chaîne ou des chaînes répétées.

maxCompletionTokens integer

Facultatif. Nombre maximal de jetons à inclure dans une réponse candidate. Vous devez saisir un entier positif.

maxTokens integer

Facultatif. Nombre maximal de jetons à inclure dans une réponse candidate. Vous devez saisir un entier positif. Ce champ est obsolète par le SDK.

temperature number

Facultatif. Contrôle le caractère aléatoire de la sortie.

topP number

Facultatif. Probabilité cumulée maximale des jetons à prendre en compte lors de l'échantillonnage.

responseFormat object (ResponseFormat)

Facultatif. Définit le format de la réponse. Si cette valeur n'est pas définie, la réponse sera mise en forme sous forme de texte.

Corps de la réponse

Si la requête aboutit, la réponse est une réponse HTTP générique dont le format est défini par la méthode.

Méthode: embeddings.generate

Génère des représentations vectorielles continues à partir du modèle en fonction d'une entrée.

Point de terminaison

Poster https://generativelanguage.googleapis.com/v1beta/embeddings:generate

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
input value (Value format)

Obligatoire. Entrée pour laquelle générer des embeddings. Il peut s'agir d'une chaîne ou d'une liste de chaînes. Le SDK accepte une liste de nombres et une liste de listes de nombres, mais cette fonctionnalité n'est pas encore implémentée.

model string

Obligatoire. Modèle pour lequel générer les embeddings.

encodingFormat string

Facultatif. Format de l'encodage. Doit être "float" ou "base64".

dimensions integer

Facultatif. Taille des dimensions des représentations vectorielles continues générées.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de GenerateEmbeddingsResponse.

Méthode: openai.chat.completions

Génère un ensemble de réponses à partir du modèle en fonction d'un historique de chat.

Point de terminaison

Poster https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
model string

Obligatoire. Nom de l'Model à utiliser pour générer la saisie semi-automatique. Le nom du modèle sera précédé de "models/" s'il ne contient pas de barre oblique.

messages[] object (Struct format)

Obligatoire. Historique de chat à utiliser pour générer la finalisation. Compatible avec les requêtes à une ou plusieurs étapes. Remarque: Il s'agit d'un champ polymorphe, qui est désérialisé en InternalChatMessage.

stream boolean

Facultatif. Indique si la réponse doit être diffusée ou renvoyée en une seule fois.

Si la valeur est "true", le champ "object" de la réponse est "chat.completion.chunk". Sinon, il s'agit de "chat.completion".

streamOptions object (StreamOptions)

Facultatif. Options pour les requêtes en streaming.

tools[] object (ChatTool)

Facultatif. Ensemble d'outils pour lesquels le modèle peut générer des appels. Chaque outil déclare sa signature.

toolChoice value (Value format)

Facultatif. Détermine si le modèle doit utiliser un outil ou non, et quel outil utiliser. Peut être: - la chaîne "none", pour désactiver les outils. - La chaîne "auto", pour laisser le modèle décider. - La chaîne "required", pour forcer le modèle à utiliser un outil. - Un objet descripteur de nom de fonction, spécifiant l'outil à utiliser. La dernière option suit le schéma suivant: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Facultatif. Nombre d'achèvements candidats à générer. Vous devez saisir un entier positif. Si cette clause n'est pas définie, la valeur par défaut est 1.

stop value (Value format)

Facultatif. Ensemble de séquences de caractères qui arrêtent la génération de sortie. Remarque: Il s'agit d'un champ polymorphe. Il doit contenir une chaîne ou des chaînes répétées.

maxCompletionTokens integer

Facultatif. Nombre maximal de jetons à inclure dans une réponse candidate. Vous devez saisir un entier positif.

maxTokens integer

Facultatif. Nombre maximal de jetons à inclure dans une réponse candidate. Vous devez saisir un entier positif. Ce champ est obsolète par le SDK.

temperature number

Facultatif. Contrôle le caractère aléatoire de la sortie.

topP number

Facultatif. Probabilité cumulée maximale des jetons à prendre en compte lors de l'échantillonnage.

responseFormat object (ResponseFormat)

Facultatif. Définit le format de la réponse. Si cette valeur n'est pas définie, la réponse sera mise en forme sous forme de texte.

Corps de la réponse

Si la requête aboutit, la réponse est une réponse HTTP générique dont le format est défini par la méthode.

Méthode: openai.embeddings

Génère des représentations vectorielles continues à partir du modèle en fonction d'une entrée.

Point de terminaison

Poster https://generativelanguage.googleapis.com/v1beta/openai/embeddings

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
input value (Value format)

Obligatoire. Entrée pour laquelle générer des embeddings. Il peut s'agir d'une chaîne ou d'une liste de chaînes. Le SDK accepte une liste de nombres et une liste de listes de nombres, mais cette fonctionnalité n'est pas encore implémentée.

model string

Obligatoire. Modèle pour lequel générer les embeddings.

encodingFormat string

Facultatif. Format de l'encodage. Doit être "float" ou "base64".

dimensions integer

Facultatif. Taille des dimensions des représentations vectorielles continues générées.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de GenerateEmbeddingsResponse.

Méthode: openai.models

Répertorie les modèles actuellement disponibles.

Point de terminaison

get https://generativelanguage.googleapis.com/v1beta/openai/models

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de SdkListModelsResponse.

ChatTool

Outil pour lequel le modèle peut générer des appels.

Champs
function object (ChatFunction)

Obligatoire. Nom de l'outil.

type string

Obligatoire. Obligatoire, doit être "function".

Représentation JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

Fonction pour laquelle le modèle peut générer des appels.

Champs
name string

Obligatoire. Nom de la fonction.

description string

Facultatif. Description de la fonction.

parameters object (Struct format)

Facultatif. Paramètres de la fonction.

strict boolean

Facultatif. Indique si la validation du schéma est stricte. Si cette valeur est définie sur "true", le modèle échoue si le schéma n'est pas valide. REMARQUE: Ce paramètre est actuellement ignoré.

Représentation JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

Réponse pour la génération d'embeddings.

Champs
object string

Uniquement en sortie. Toujours "intégration", requise par le SDK.

data[] object (GenerateEmbeddingsEmbedding)

Uniquement en sortie. Liste des embeddings demandés.

model string

Uniquement en sortie. Modèle utilisé pour générer les représentations vectorielles continues.

Représentation JSON
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

Vecteur d'embedding généré par le modèle.

Champs
object string

Uniquement en sortie. Toujours "intégration", requise par le SDK.

index integer

Uniquement en sortie. Indice de l'embedding dans la liste des embeddings.

embedding value (Value format)

Uniquement en sortie. Vecteur d'embedding généré pour l'entrée. Il peut s'agir d'une liste de nombres à virgule flottante ou d'une chaîne en base64 encodant une liste de nombres à virgule flottante avec une mise en page de style C (compatible avec Numpy).

Représentation JSON
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

Message qui représente un corps HTTP arbitraire. Il ne doit être utilisé que pour les formats de charge utile ne pouvant pas être représentés sous la forme JSON, tels que les fichiers binaires bruts ou les pages HTML.

Ce message peut aussi bien être utilisé dans les méthodes d'API de streaming que dans les autres dans la requête, ainsi que dans la réponse.

Il peut être utilisé en tant que champ de requête de niveau supérieur, ce qui est pratique si vous souhaitez extraire des paramètres de l'URL ou du modèle HTTP dans les champs de requête, et si vous souhaitez également accéder au corps HTTP brut.

Exemple :

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

Exemple avec les méthodes de streaming :

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

L'utilisation de ce type de méthode modifie uniquement le traitement du corps des requêtes et des réponses. Toutes les autres fonctionnalités continuent à fonctionner de la même manière.

Champs
contentType string

Valeur d'en-tête HTTP Content-Type spécifiant le type de contenu du corps de la requête.

data string (bytes format)

Corps de la requête/réponse HTTP en tant que données binaires brutes.

Chaîne encodée en base64.

extensions[] object

Métadonnées de réponse spécifiques à l'application. Doivent être définies dans la première réponse pour les API de streaming.

Objet contenant des champs d'un type arbitraire. Un champ supplémentaire "@type" contient un URI identifiant le type. Exemple : { "id": 1234, "@type": "types.example.com/standard/id" }.

Représentation JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

Définit le format de la réponse.

Champs
type string

Obligatoire. Type de réponse. Peut être: - "text": formatez la réponse au format texte. - "json_object": formate la réponse en tant qu'objet JSON. - "jsonSchema": met en forme la réponse en tant qu'objet JSON conformément au schéma donné.

jsonSchema object (ResponseFormatSchema)

Facultatif. Schéma JSON à suivre. Utilisé uniquement si le type est "jsonSchema".

Représentation JSON
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

Schéma de la réponse.

Champs
description string

Facultatif. Description de l'objet représenté par le schéma.

name string

Obligatoire. Nom du type d'objet représenté par le schéma.

strict boolean

Facultatif. Indique si la validation du schéma est stricte. Si cette valeur est définie sur "true", le modèle échoue si le schéma n'est pas valide. REMARQUE: Ce paramètre est actuellement ignoré.

schema object (Struct format)

Facultatif. Schéma JSON à suivre.

Représentation JSON
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

Réponse pour les modèles de liste.

Champs
object string

Uniquement en sortie. Toujours "list", requis par le SDK.

data[] object (SdkModel)

Uniquement en sortie. Liste des embeddings demandés.

Représentation JSON
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

Objet de modèle.

Champs
id string

Uniquement en sortie. ID du modèle.

object string

Uniquement en sortie. Toujours "model", requis par le SDK.

created string (int64 format)

Uniquement en sortie. Code temporel Unix (en secondes) au moment de la création du modèle.

owned_by string

Uniquement en sortie. Organisation propriétaire du modèle.

Représentation JSON
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

Options pour les requêtes en streaming.

Champs
includeUsage boolean

Facultatif. Si défini, inclut les statistiques d'utilisation dans la réponse.

Représentation JSON
{
  "includeUsage": boolean
}