Envía una instrucción de texto

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:

  1. 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.

  2. Instala las bibliotecas de Python necesarias:

    pip install openai
    pip install absl-py
    pip install typing
    pip install protobuf
    
  3. Configura las variables de entorno necesarias en una secuencia de comandos de Python.

  4. Autentica tu solicitud a la API.

  5. 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:

  6. Guarda la secuencia de comandos de Python.

  7. Envía una solicitud a Gemini con la interfaz de Chat Completions:

    python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKEN
    

    Reemplaza lo siguiente:

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:

  1. 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.

  2. Autentica tu solicitud a la API.

  3. 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.json
    

    Reemplaza lo siguiente:

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))

¿Qué sigue?