Questa pagina ti guida nella formattazione delle richieste API per Gemini su Google Distributed Cloud (GDC) air-gapped utilizzando i dettagli del corpo della richiesta dell'endpoint Chat Completions di OpenAI. Aderendo a questo formato, puoi integrare senza problemi le funzionalità avanzate di Gemini nelle tue applicazioni utilizzando la struttura dell'API OpenAI.
La famiglia di modelli Gemini include modelli che funzionano con richieste di prompt multimodali. Il termine multimodale indica che puoi utilizzare più di una modalità o tipo di input in un prompt. Per ulteriori informazioni, consulta la sezione Prompt di progettazione.
Per ulteriori informazioni sulle descrizioni generiche dei tipi, dei metodi e dei campi generati per la libreria gRPC, consulta il riferimento gRPC di Gemini.
Prima di iniziare
Prima di formattare le richieste API, assicurati di soddisfare i seguenti prerequisiti:
- Scopri di più sulle funzionalità di Gemini su GDC.
- Inizia con i requisiti minimi del progetto per effettuare richieste API per Gemini.
- Identifica l'ID endpoint del modello Gemini che vuoi utilizzare nelle tue richieste. Selezionando un modello specifico, puoi utilizzare le sue funzionalità uniche per le tue attività. Consulta i modelli Gemini disponibili su GDC.
- Scopri come creare prompt con attenzione per ottenere le risposte previste da Gemini. Sperimenta stili e formati di prompt diversi per ottimizzare l'output. Per ulteriori informazioni, consulta la pagina Introduzione ai prompt.
- Esplora i vari parametri disponibili nell'endpoint OpenAI Chat Completions
per controllare il comportamento di Gemini. Modifica i parametri, ad esempio
temperature,max_completion_tokensetop_p, per controllare la creatività, la lunghezza e la diversità del testo generato. Per ulteriori informazioni, consulta Eseguire esperimenti con i parametri.
Sintassi della richiesta
Gli esempi seguenti contengono la sintassi che devi utilizzare nelle richieste API per generare una risposta modello:
Python
import openai
client = openai.OpenAI()
model_response = client.chat.completions.create(
model = "MODEL_ID",
messages = [
{
...
}
]
...
)
print(model_response)
curl
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages" = [
{
...
}
]
...
}'
Parametri API
Questa sezione contiene un elenco dei parametri più importanti che puoi definire nel corpo della richiesta delle tue richieste API per Gemini in GDC e nel corpo della risposta che il modello deve restituire. Per il riferimento API completo dell'endpoint Chat Completions di OpenAI, consulta https://platform.openai.com/docs/api-reference/chat.
Corpo della richiesta
{
"messages" = [
{
"role": string,
"content": [
{
"type": "image_url",
"image_url": {
"url": string
}
},
{
"type": "input_audio",
"input_audio": {
"data": string,
"format": string
}
},
{
"type": "audio_url",
"audio_url": {
"url": string
}
},
{
"type": "input_video",
"input_video": {
"data": string,
"format": string
}
},
{
"type": "video_url",
"video_url": {
"url": string
}
},
{
"type": "input_document",
"input_document": {
"data": string,
"format": string
}
},
{
"type": "document_url",
"document_url": {
"url": string
}
}
]
}
],
"temperature": number,
"max_completion_tokens": integer,
"top_p": number,
"n": integer,
"stop": string,
"user": string
}
La tabella seguente descrive i campi chiave e le relative descrizioni nel corpo della richiesta per l'endpoint OpenAI Chat Completions quando viene utilizzato con Gemini:
| Parametri | ||
|---|---|---|
| Nome campo | Descrizione | |
|
Obbligatorio: Il modello Gemini da utilizzare. Per saperne di più, consulta la pagina Modelli Gemini disponibili. |
|
|
Obbligatorio: Un elenco dei messaggi che compongono la conversazione corrente con il modello. Ogni messaggio ha un Sono supportati diversi tipi di messaggi (modalità), come testo, immagini, audio, video e documenti. |
|
|
Obbligatorio: Il ruolo dell'autore del messaggio, che può essere uno dei seguenti:
|
|
|
Obbligatorio: I contenuti del messaggio del sistema, dell'utente o dell'assistente. Il valore è una singola istanza per le query a un solo turno. Per le query multi-turno, |
|
|
(Facoltativo) La casualità del testo generato. I valori più bassi (più vicini a Il valore predefinito è |
|
|
(Facoltativo) Il numero massimo di token da generare nella risposta, inclusi i token di output visibili e i token di ragionamento. |
|
|
(Facoltativo) La probabilità di campionamento del nucleo. I valori più alti (più vicini a Il valore predefinito è |
|
|
(Facoltativo) Il numero di completamenti da generare per ogni prompt. Il valore predefinito è |
|
|
(Facoltativo) Un elenco di stringhe che, quando vengono rilevate, interrompono il processo di generazione del testo. Il valore predefinito è |
|
|
(Facoltativo) Un identificatore univoco per l'utente finale. Questo parametro ti consente di monitorare i pattern di utilizzo e personalizzare le risposte. |
|
content
Questo campo è il tipo di dati strutturati di base contenente i contenuti in più parti di un messaggio.
Se l'input è un prompt di testo, il valore di questo campo è una stringa. Tuttavia, per
i prompt multimodali, questo campo è costituito da un array che contiene due proprietà
principali in ogni oggetto: type e INPUT. La proprietà type
indica il tipo di contenuti dell'input multimodale, mentre la
proprietà INPUT contiene l'elemento di input, rappresentato come
dati con codifica Base64 o un URL di un bucket di archiviazione GDC.
La seguente tabella mostra i campi content chiave e le relative descrizioni per i prompt multimodali:
| Nome campo | Descrizione | |
|---|---|---|
|
Obbligatorio: Il tipo di contenuti per i prompt multimodali. I valori accettabili includono:
|
|
|
Obbligatorio: L'input dei contenuti per i prompt multimodali. Il nome di questo campo deve corrispondere al valore specificato nel campo Pertanto, questo nome di campo è uno dei seguenti:
Ogni campo di input ha un |
|
|
(Facoltativo) Se i contenuti di input vengono forniti come URL, il percorso del file in un bucket di archiviazione GDC. Nel caso delle immagini, questo campo può contenere dati codificati in base64 anziché un URL. |
|
|
(Facoltativo) Se i contenuti di input vengono forniti come dati con codifica base64, i dati binari vengono convertiti in una stringa di caratteri. Nel caso delle immagini, i dati con codifica base64 vengono forniti nel campo |
|
|
(Facoltativo) Se i contenuti di input vengono forniti nel campo A seconda dei dati di input, sono supportati diversi formati. Per ulteriori informazioni, consulta Tipi MIME per immagini, audio, video e documenti. |
|
Corpo della risposta
{
"id": string,
"object": string,
"created": integer,
"model": string,
"choices": [
{
"index": integer,
"message": {
"role": string,
"content": string,
"refusal": null
},
"logprobs": null,
"finish_reason": string
}
],
"usage": {
"completion_tokens": integer,
"prompt_tokens": integer,
"total_tokens": integer
},
"system_fingerprint": string
}
La tabella seguente descrive i campi chiave e le relative descrizioni nel corpo della risposta restituito dal modello in base all'input fornito:
| Nome campo | Descrizione | |
|---|---|---|
|
Un identificatore univoco per il testo generato. |
|
|
Il tipo di oggetto, che è sempre |
|
|
Il timestamp in secondi della generazione del testo. |
|
|
Il modello utilizzato per generare il testo. |
|
|
Un elenco di scelte per la generazione di testo. Questo campo può contenere più scelte se |
|
|
L'indice della scelta nell'elenco delle scelte. |
|
|
Un messaggio di generazione di testo generato dal modello. Questo campo contiene le seguenti proprietà:
|
|
|
Informazioni sulla probabilità logaritmica per la scelta. |
|
|
Il motivo per cui il modello ha smesso di generare token. Il valore può essere uno dei seguenti:
|
|
|
Statistiche sull'utilizzo della richiesta. |
|
|
Numero di token nel testo generato. |
|
|
Numero di token nel prompt. |
|
|
Il numero totale di token nel prompt e nel testo generato. |
|
|
La configurazione di backend utilizzata dal modello per l'esecuzione. |
|
Esempi
Questa sezione contiene un esempio per il corpo della richiesta e la risposta di generazione di testo che il modello deve restituire.
Esempio di richiesta
L'esempio seguente mostra i dettagli di un corpo della richiesta che invia un prompt a Gemini per generare testo. L'esempio contiene controlli per la temperatura e il numero massimo di token. Per i dettagli di implementazione, vedi Inviare un prompt di testo o Inviare un prompt multimodale.
{
"messages": [
{
"role": "system",
"content": "You are a helpful and informative assistant."
},
{
"role": "user",
"content": "What is the capital of France?"
}
],
"temperature": 0.7,
"max_completion_tokens": 100
}
Esempio di risposta
Il seguente esempio mostra i dettagli di una risposta di generazione di testo restituita dal modello:
{
"id": "",
"object": "",
"created": 0,
"model": "",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The capital of France is Paris.\n",
"refusal": null
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"completion_tokens": 7,
"prompt_tokens": 8,
"total_tokens": 15
},
"system_fingerprint": ""
}