Inviare un prompt di testo

In questa guida, invii un prompt di testo a Gemini utilizzando l'API e visualizzi la risposta del modello.

Puoi completare questa guida utilizzando le librerie client per Python nel tuo ambiente locale o inviando richieste dalla riga di comando all'API REST.

Scopri le lingue supportate da Gemini in cui puoi inviare i prompt.

Prima di iniziare

Prima di poter iniziare a inviare prompt di testo a Gemini per generare testo, devi avere un progetto con l'API Gemini abilitata e disporre di ruoli e credenziali appropriati. Devi installare, inizializzare e autenticarti con gcloud CLI e installare le librerie client per Python.

Per maggiori informazioni, vedi Guida introduttiva.

Inviare un prompt all'API Gemini

Utilizza il seguente codice per inviare un prompt di testo all'API Gemini. Questo esempio restituisce l'altezza dell'Empire State Building.

Puoi eseguire il codice dalla riga di comando, utilizzando un IDE o includendolo nella tua applicazione.

Python

Segui questi passaggi per inviare un prompt di testo e generare testo da uno script Python:

  1. Salva la richiesta API in un file JSON denominato request.json. Il file deve essere simile al seguente esempio:

    {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "How tall is the Empire State Building?"
          }
        ]
    }
    

    Per i dettagli del corpo della richiesta, consulta Formattare le richieste API.

    Puoi sperimentare con i parametri nella richiesta. Per ulteriori informazioni, consulta Funzionalità.

  2. Installa le librerie Python richieste:

    pip install openai
    pip install absl-py
    pip install typing
    pip install protobuf
    
  3. Imposta le variabili di ambiente richieste in uno script Python.

  4. Autentica la richiesta API.

  5. Aggiungi il seguente codice allo script Python che hai creato:

    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)
    

    Sostituisci quanto segue:

  6. Salva lo script Python.

  7. Invia una richiesta a Gemini con l'interfaccia di Chat Completions:

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

    Sostituisci quanto segue:

Devi ottenere una risposta simile alla seguente:

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

Segui questi passaggi per inviare un prompt di testo e generare testo tramite una richiesta curl all'API REST:

  1. Salva la richiesta API in un file JSON denominato request.json. Il file deve essere simile al seguente esempio:

    {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "How tall is the Empire State Building?"
          }
        ]
    }
    

    Per i dettagli del corpo della richiesta, consulta Formattare le richieste API.

    Puoi sperimentare con i parametri nella richiesta. Per ulteriori informazioni, consulta Funzionalità.

  2. Autentica la richiesta API.

  3. Effettua la richiesta:

    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
    

    Sostituisci quanto segue:

Devi ottenere una risposta simile alla seguente:

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

Passaggi successivi