En esta guía, enviarás una instrucción de texto a Gemini con la API y verás la respuesta del modelo.
Puedes completar esta guía usando bibliotecas cliente para Python en tu entorno local o enviando solicitudes de línea de comandos a la API de REST.
Obtén información sobre los idiomas admitidos en Gemini en los que puedes enviar tus instrucciones.
Antes de comenzar
Antes de comenzar a enviar instrucciones 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 gcloud, y también instalar las bibliotecas cliente para Python.
Para obtener más información, consulta Cómo comenzar.
Envía una instrucción a la API de Gemini
Usa el siguiente código para enviar una instrucción de texto a la API de Gemini. En este ejemplo, se devuelve la altura del Empire State Building.
Puedes ejecutar el código desde la línea de comandos, con un IDE o incluyéndolo en tu aplicación.
Python
Sigue estos pasos para enviar una instrucción de texto y generar texto a partir de una secuencia de comandos de Python:
Guarda tu solicitud a la API en un archivo JSON llamado
request.json. El archivo debe verse 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 detalles sobre el cuerpo de la solicitud, consulta Cómo dar formato a tus solicitudes a la API.
Puedes experimentar con los parámetros de tu solicitud. Para obtener más información, consulta Capacidades.
Instala las bibliotecas de Python necesarias:
pip install openai pip install absl-py pip install typing pip install protobufConfigura las variables de entorno necesarias en una secuencia de comandos de Python.
Agrega el siguiente código a la secuencia de comandos de Python que creaste:
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)Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoMODEL_ID: El ID del extremo del modelo con el que deseas generar la respuesta.
Guarda la secuencia de comandos de Python.
Envía una solicitud a Gemini con la interfaz de Chat Completions:
python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKENReemplaza lo siguiente:
SCRIPT_NAME: Es el nombre que le asignaste a tu secuencia de comandos de Python, comoclient.py.ENDPOINT: Es el extremo de Gemini que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.TOKEN: El token de autenticación que obtuviste
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 instrucción de texto y generar texto a través de una solicitud curl a la API de REST:
Guarda tu solicitud a la API en un archivo JSON llamado
request.json. El archivo debe verse 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 detalles sobre el cuerpo de la solicitud, consulta Cómo dar formato a tus solicitudes a la API.
Puedes experimentar con los parámetros de tu solicitud. Para obtener más información, consulta Capacidades.
Realiza 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.jsonReemplaza lo siguiente:
TOKEN: El token de autenticación que obtuvisteENDPOINT: Es el extremo de Gemini que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.PROJECT_ID: el ID de tu proyectoMODEL_ID: El ID del extremo del modelo con el que deseas 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))