Utiliser les bibliothèques OpenAI avec Vertex AI

L'API Chat Completions fonctionne comme un point de terminaison compatible avec Open AI et conçu pour faciliter l'interaction avec Gemini sur Vertex AI à l'aide des bibliothèques Open AI pour Python et REST. Si vous utilisez déjà les bibliothèques OpenAI, vous pouvez utiliser cette API pour passer de l'appel de modèles OpenAI à l'appel de modèles hébergés par Vertex AI afin d'en comparer la sortie, les coûts et l'évolutivité, sans modifier votre code existant. Cela garantit la compatibilité avec divers fournisseurs et la cohérence avec les règles de la communauté. Si vous n'utilisez pas encore les bibliothèques OpenAI, nous vous recommandons d'utiliser le SDK Google Gen AI.

Modèles compatibles

L'API Chat Completions est compatible avec les modèles Gemini et certains modèles auto-déployés de Model Garden.

Modèles Gemini

Les modèles suivants sont compatibles avec l'API Chat Completions :

Modèles déployés automatiquement à partir de Model Garden

Les conteneurs pour HuggingFace Text Generation Interface (HF TGI) et les vLLM Vertex AI Model Garden prédéfinis sont compatibles avec l'API Chat Completions. Toutefois, tous les modèles déployés dans ces conteneurs ne sont pas compatibles avec l'API Chat Completions. Le tableau suivant inclut les modèles compatibles les plus populaires par conteneur :

HF TGI

vLLM

Paramètres disponibles

Pour les modèles Google, l'API Chat Completions est compatible avec les paramètres OpenAI suivants. Pour obtenir une description de chaque paramètre, consultez la documentation d'OpenAI sur la création de complétion de chat. La disponibilité des paramètres pour les modèles tiers varie selon les modèles. Pour connaître les paramètres acceptés, consultez la documentation du modèle concerné.

messages
  • System message
  • User message : les types text et image_url sont acceptés. Le type image_url accepte les images stockées dans un URI Cloud Storage ou un encodage en base64 au format "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". Pour apprendre à créer un bucket Cloud Storage et à y importer un fichier, consultez Découvrir le stockage d'objets. L'option detail n'est pas prise en charge.
  • Assistant message
  • Tool message
  • Function message : ce champ est obsolète, mais reste disponible pour des raisons de rétrocompatibilité.
model
max_tokens
n
frequency_penalty
presence_penalty
response_format
  • json_object : interprété comme une transmission de "application/json" à l'API Gemini.
  • text : interprété comme une transmission de "text/plain" à l'API Gemini.
  • Tout autre type MIME est transmis tel quel au modèle, ce qui revient à transmettre "application/json" directement.
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters : spécifiez les paramètres à l'aide de la spécification OpenAPI. Cela diffère du champ de paramètres OpenAI, qui est décrit comme un objet de schéma JSON. Pour en savoir plus sur les différences de mots clés entre OpenAPI et les schémas JSON, consultez le guide OpenAPI.
tool_choice
  • none
  • auto
  • required : correspond au mode ANY dans FunctionCallingConfig.
function_call Ce champ est obsolète, mais reste disponible pour des raisons de rétrocompatibilité.
functions Ce champ est obsolète, mais reste disponible pour des raisons de rétrocompatibilité.

Si vous transmettez un paramètre non accepté, il est ignoré.

Paramètres spécifiques à Gemini

Plusieurs caractéristiques compatibles avec Gemini ne sont pas disponibles dans les modèles OpenAI. Celles-ci peuvent toujours être transmises en tant que paramètres, mais doivent être contenues dans un extra_content ou un extra_body. Dans le cas contraire, elles seront ignorées.

Caractéristique extra_body

safety_settings Cela correspond à l'élément SafetySetting de Gemini.
cached_content Cela correspond à l'élément GenerateContentRequest.cached_content de Gemini.
thought_tag_marker Permet de séparer les réflexions d'un modèle de ses réponses pour les modèles à raisonnement.
Si cet élément n'est pas spécifié, aucun tag n'est renvoyé pour les réflexions du modèle. S'il l'est, les requêtes suivantes supprimeront les tags de réflexion et marqueront les réflexions de manière appropriée pour le contexte. Cela permet de conserver le contexte adéquat pour les requêtes suivantes.

Étapes suivantes