En esta guía, enviarás una petición de texto a Gemini mediante la API y verás la respuesta del modelo.
Puedes completar esta guía usando bibliotecas de cliente de Python en tu entorno local o enviando solicitudes de línea de comandos a la API REST.
Consulta los idiomas disponibles en Gemini en los que puedes enviar tus peticiones.
Antes de empezar
Antes de empezar a enviar peticiones de texto para que Gemini genere texto, debes tener un proyecto con la API de Gemini habilitada y los roles y las credenciales adecuados. Debes instalar, inicializar y autenticarte con la CLI de gdcloud, así como instalar bibliotecas de cliente para Python.
Para obtener más información, consulta el artículo Empezar a usar la función.
Enviar una petición a la API de Gemini
Usa el siguiente código para enviar una petición de texto a la API de Gemini. Este ejemplo devuelve la altura del Empire State Building.
Puedes ejecutar el código desde la línea de comandos, usando un IDE o incluyéndolo en tu aplicación.
Python
Sigue estos pasos para enviar una petición de texto y generar texto a partir de una secuencia de comandos de Python:
Guarda tu solicitud de API en un archivo JSON llamado
request.json. El archivo debe tener un aspecto como el siguiente ejemplo:{ "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "How tall is the Empire State Building?" } ] }Para obtener más información sobre el cuerpo de la solicitud, consulta el artículo Formato de las solicitudes de la API.
Puedes experimentar con los parámetros de tu solicitud. Para obtener más información, consulta Funciones.
Instala las bibliotecas de Python necesarias:
pip install openai pip install absl-py pip install typing pip install protobufDefine las variables de entorno necesarias en una secuencia de comandos de Python.
Añade el siguiente código a la secuencia de comandos de Python que has creado:
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)Haz los cambios siguientes:
PROJECT_ID: tu ID de proyecto.MODEL_ID: el ID del endpoint del modelo del que quieres generar la respuesta.
Guarda la secuencia de comandos de Python.
Envía una solicitud a Gemini con la interfaz Chat Completions:
python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKENHaz los cambios siguientes:
SCRIPT_NAME: el nombre que le has dado a tu secuencia de comandos de Python, comoclient.py.ENDPOINT: el endpoint de Gemini que usas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.TOKEN: el token de autenticación que has obtenido.
Debes obtener una respuesta similar a la siguiente:
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
Sigue estos pasos para enviar una petición de texto y generar texto a través de una curl
solicitud a la API REST:
Guarda tu solicitud de API en un archivo JSON llamado
request.json. El archivo debe tener un aspecto como el siguiente ejemplo:{ "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "How tall is the Empire State Building?" } ] }Para obtener más información sobre el cuerpo de la solicitud, consulta el artículo Formato de las solicitudes de la API.
Puedes experimentar con los parámetros de tu solicitud. Para obtener más información, consulta Funciones.
Haz la solicitud:
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.jsonHaz los cambios siguientes:
TOKEN: el token de autenticación que has obtenido.ENDPOINT: el endpoint de Gemini que usas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.PROJECT_ID: tu ID de proyecto.MODEL_ID: el ID del endpoint del modelo del que quieres generar la respuesta.
Debes obtener una respuesta similar a la siguiente:
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))