Enviar una petición de texto

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:

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

  2. Instala las bibliotecas de Python necesarias:

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

  4. Autentica tu solicitud a la API.

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

  6. Guarda la secuencia de comandos de Python.

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

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

    Haz los cambios siguientes:

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:

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

  2. Autentica tu solicitud a la API.

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

    Haz los cambios siguientes:

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

Siguientes pasos