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:
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à.
Installa le librerie Python richieste:
pip install openai pip install absl-py pip install typing pip install protobufImposta le variabili di ambiente richieste in uno script Python.
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:
PROJECT_ID: il tuo ID progetto.MODEL_ID: l'ID dell'endpoint del modello per cui vuoi generare la risposta.
Salva lo script Python.
Invia una richiesta a Gemini con l'interfaccia di Chat Completions:
python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKENSostituisci quanto segue:
SCRIPT_NAME: il nome che hai assegnato allo script Python, ad esempioclient.py.ENDPOINT: l'endpoint Gemini che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.TOKEN: il token di autenticazione che hai ottenuto.
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:
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à.
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.jsonSostituisci quanto segue:
TOKEN: il token di autenticazione che hai ottenuto.ENDPOINT: l'endpoint Gemini che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.PROJECT_ID: il tuo ID progetto.MODEL_ID: l'ID dell'endpoint del modello per cui vuoi generare la risposta.
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))