Dans ce guide, vous allez envoyer une requête textuelle à Gemini à l'aide de l'API et afficher la réponse du modèle.
Vous pouvez suivre ce guide en utilisant des bibliothèques clientes pour Python dans votre environnement local ou en envoyant des requêtes en ligne de commande à l'API REST.
Découvrez les langues prises en charge par Gemini dans lesquelles vous pouvez envoyer vos requêtes.
Avant de commencer
Avant de pouvoir commencer à envoyer des requêtes textuelles à Gemini pour générer du texte, vous devez disposer d'un projet pour lequel l'API Gemini est activée, ainsi que des rôles et identifiants appropriés. Vous devez installer, initialiser et vous authentifier auprès de gdcloud CLI, puis installer les bibliothèques clientes pour Python.
Pour en savoir plus, consultez Premiers pas.
Envoyer une requête à l'API Gemini
Utilisez le code suivant pour envoyer une requête textuelle à l'API Gemini. Cet exemple renvoie la hauteur de l'Empire State Building.
Vous pouvez exécuter le code à partir de la ligne de commande, à l'aide d'un IDE ou en l'intégrant dans votre application.
Python
Pour envoyer une requête textuelle et générer du texte à partir d'un script Python :
Enregistrez votre requête API dans un fichier JSON nommé
request.json. Le fichier doit ressembler à l'exemple suivant :{ "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "How tall is the Empire State Building?" } ] }Pour en savoir plus sur le corps de la requête, consultez Mettre en forme vos requêtes d'API.
Vous pouvez tester les paramètres de votre requête. Pour en savoir plus, consultez Fonctionnalités.
Installez les bibliothèques Python requises :
pip install openai pip install absl-py pip install typing pip install protobufDéfinissez les variables d'environnement requises dans un script Python.
Ajoutez le code suivant au script Python que vous avez créé :
import json import os from absl import app from absl import flags from openai import OpenAI, OpenAIError from google.protobuf import json_format from google.protobuf.struct_pb2 import Value from typing import Sequence _INPUT = flags.DEFINE_string("input", None, "input", required=True) _HOST = flags.DEFINE_string("host", None, "Chat Completion endpoint", required=True) _TOKEN = flags.DEFINE_string("token", None, "STS token", required=True) def chat_completion_client(host): return OpenAI( api_key="None", base_url="https://" + host + "/v1/projects/PROJECT_ID/locations/PROJECT_ID" ) def chat_completion(client, messages, token): try: response = client.chat.completions.create( model="MODEL_ID", messages=messages, extra_headers={"Authorization" : "Bearer " + token, "Content-Type": "application/json"} ) print("response:", response) except Exception as e: print("Got exception:", e) def main(argv: Sequence[str]): del argv # Unused. with open(_INPUT.value) as json_file: data = json.load(json_file) print("Request: ", data) client = chat_completion_client(_HOST.value,) chat_completion(client=client, messages=data["messages"], token=_TOKEN.value) if __name__=="__main__": app.run(main)Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet.MODEL_ID: ID du point de terminaison du modèle pour lequel vous souhaitez générer la réponse.
Enregistrez le script Python.
Envoyez une requête à Gemini avec l'interface Chat Completions :
python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKENRemplacez les éléments suivants :
SCRIPT_NAME: nom que vous avez attribué à votre script Python, tel queclient.py.ENDPOINT: point de terminaison Gemini que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison des services.TOKEN: jeton d'authentification que vous avez obtenu.
Vous devez obtenir une réponse semblable à celle-ci :
ChatCompletion(id='', choices=[Choice(finish_reason='', index=0, logprobs=0, message=ChatCompletionMessage(content='The Empire State Building is **1,454 feet** (443 meters) tall.\n', refusal=None, role='assistant', function_call=None, tool_calls=None))], created=0, model='', object='', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=0, prompt_tokens=0, total_tokens=0))
curl
Pour envoyer une requête curl à l'API REST afin de générer du texte à partir d'une requête textuelle, procédez comme suit :
Enregistrez votre requête API dans un fichier JSON nommé
request.json. Le fichier doit ressembler à l'exemple suivant :{ "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "How tall is the Empire State Building?" } ] }Pour en savoir plus sur le corps de la requête, consultez Mettre en forme vos requêtes d'API.
Vous pouvez tester les paramètres de votre requête. Pour en savoir plus, consultez Fonctionnalités.
Envoyez la demande :
curl \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -X POST https://ENDPOINT:443/v1/projects/PROJECT_ID/locations/PROJECT_ID/chat/completions -d @./request.jsonRemplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Gemini que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison des services.PROJECT_ID: ID de votre projet.MODEL_ID: ID du point de terminaison du modèle pour lequel vous souhaitez générer la réponse.
Vous devez obtenir une réponse semblable à celle-ci :
ChatCompletion(id='', choices=[Choice(finish_reason='', index=0, logprobs=0, message=ChatCompletionMessage(content='The Empire State Building is **1,454 feet** (443 meters) tall.\n', refusal=None, role='assistant', function_call=None, tool_calls=None))], created=0, model='', object='', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=0, prompt_tokens=0, total_tokens=0))