OpenAI compatibility

I modelli Gemini sono accessibili utilizzando le librerie OpenAI (Python e TypeScript / JavaScript) insieme all'API REST, aggiornando tre righe di codice e utilizzando la chiave API Gemini. Scopri di più su questa funzionalità nella guida alla compatibilità.

Metodo: chatCompletions

Genera un insieme di risposte dal modello in base a un input della cronologia chat.

Endpoint

post https://generativelanguage.googleapis.com/v1beta:chatCompletions

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
model string

Obbligatorio. Il nome del Model da utilizzare per generare il completamento. Al nome del modello verrà anteposto "models/" se non contiene una barra.

messages[] object (Struct format)

Obbligatorio. La cronologia chat da utilizzare per generare il completamento. Supporta query con un solo passaggio e con più passaggi. Nota: questo è un campo polimorfo, viene deserializzato in un messaggio di chat interna.

stream boolean

Facoltativo. Indica se la risposta deve essere in streaming o se deve essere restituita una singola risposta.

Se true, il campo "object" nella risposta sarà "chat.completion.chunk". In caso contrario, sarà "chat.completion".

streamOptions object (StreamOptions)

Facoltativo. Opzioni per le richieste di streaming.

tools[] object (ChatTool)

Facoltativo. L'insieme di strumenti per i quali il modello può generare chiamate. Ogni strumento dichiara la propria firma.

toolChoice value (Value format)

Facoltativo. Controlla se il modello deve utilizzare o meno uno strumento e quale strumento utilizzare. Può essere: - La stringa "none" per disattivare gli strumenti. - La stringa "auto", per lasciare che sia il modello a decidere. - La stringa "required", per forzare il modello a utilizzare uno strumento. - Un oggetto descrittore del nome della funzione che specifica lo strumento da utilizzare. L'ultima opzione segue lo schema seguente: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Facoltativo. Quantità di completamenti candidati da generare. Deve essere un numero intero positivo. Se non viene impostato, il valore predefinito è 1.

stop value (Value format)

Facoltativo. L'insieme di sequenze di caratteri che interrompe la generazione dell'output. Nota: questo è un campo polimorfo. Deve contenere una stringa o stringhe ripetute.

maxCompletionTokens integer

Facoltativo. Il numero massimo di token da includere in una risposta candidata. Deve essere un numero intero positivo.

maxTokens integer

Facoltativo. Il numero massimo di token da includere in una risposta candidata. Deve essere un numero intero positivo. Questo campo è stato ritirato dall'SDK.

temperature number

Facoltativo. Controlla la casualità dell'output.

topP number

Facoltativo. La probabilità cumulativa massima dei token da considerare durante il campionamento.

responseFormat object (ResponseFormat)

Facoltativo. Definisce il formato della risposta. Se non è impostato, la risposta verrà formattata come testo.

Corpo della risposta

In caso di esito positivo, la risposta è una risposta HTTP generica il cui formato è definito dal metodo.

Metodo: embeddings

Genera embedding dal modello in base a un input.

Endpoint

post https://generativelanguage.googleapis.com/v1beta/embeddings

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
input value (Value format)

Obbligatorio. L'input per cui generare gli incorporamenti. Può essere una stringa o un elenco di stringhe. L'SDK supporta un elenco di numeri e un elenco di elenchi di numeri, ma non è ancora implementato.

model string

Obbligatorio. Modello per cui generare gli incorporamenti.

encodingFormat string

Facoltativo. Il formato della codifica. Deve essere "float" o "base64".

dimensions integer

Facoltativo. Dimensioni dimensionali degli embedding generati.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di GenerateEmbeddingsResponse.

Metodo: listModels

Elenca i modelli attualmente disponibili.

Endpoint

get https://generativelanguage.googleapis.com/v1beta/listModels

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di SdkListModelsResponse.

Metodo: chat.completions

Genera un insieme di risposte dal modello in base a un input della cronologia chat.

Endpoint

post https://generativelanguage.googleapis.com/v1beta/chat/completions

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
model string

Obbligatorio. Il nome del Model da utilizzare per generare il completamento. Al nome del modello verrà anteposto "models/" se non contiene una barra.

messages[] object (Struct format)

Obbligatorio. La cronologia chat da utilizzare per generare il completamento. Supporta query con un solo passaggio e con più passaggi. Nota: questo è un campo polimorfo, viene deserializzato in un messaggio di chat interna.

stream boolean

Facoltativo. Indica se la risposta deve essere in streaming o se deve essere restituita una singola risposta.

Se true, il campo "object" nella risposta sarà "chat.completion.chunk". In caso contrario, sarà "chat.completion".

streamOptions object (StreamOptions)

Facoltativo. Opzioni per le richieste di streaming.

tools[] object (ChatTool)

Facoltativo. L'insieme di strumenti per i quali il modello può generare chiamate. Ogni strumento dichiara la propria firma.

toolChoice value (Value format)

Facoltativo. Controlla se il modello deve utilizzare o meno uno strumento e quale strumento utilizzare. Può essere: - La stringa "none" per disattivare gli strumenti. - La stringa "auto", per lasciare che sia il modello a decidere. - La stringa "required", per forzare il modello a utilizzare uno strumento. - Un oggetto descrittore del nome della funzione che specifica lo strumento da utilizzare. L'ultima opzione segue lo schema seguente: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Facoltativo. Quantità di completamenti candidati da generare. Deve essere un numero intero positivo. Se non viene impostato, il valore predefinito è 1.

stop value (Value format)

Facoltativo. L'insieme di sequenze di caratteri che interrompe la generazione dell'output. Nota: questo è un campo polimorfo. Deve contenere una stringa o stringhe ripetute.

maxCompletionTokens integer

Facoltativo. Il numero massimo di token da includere in una risposta candidata. Deve essere un numero intero positivo.

maxTokens integer

Facoltativo. Il numero massimo di token da includere in una risposta candidata. Deve essere un numero intero positivo. Questo campo è stato ritirato dall'SDK.

temperature number

Facoltativo. Controlla la casualità dell'output.

topP number

Facoltativo. La probabilità cumulativa massima dei token da considerare durante il campionamento.

responseFormat object (ResponseFormat)

Facoltativo. Definisce il formato della risposta. Se non è impostato, la risposta verrà formattata come testo.

Corpo della risposta

In caso di esito positivo, la risposta è una risposta HTTP generica il cui formato è definito dal metodo.

Metodo: embeddings.generate

Genera embedding dal modello in base a un input.

Endpoint

post https://generativelanguage.googleapis.com/v1beta/embeddings:generate

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
input value (Value format)

Obbligatorio. L'input per cui generare gli incorporamenti. Può essere una stringa o un elenco di stringhe. L'SDK supporta un elenco di numeri e un elenco di elenchi di numeri, ma non è ancora implementato.

model string

Obbligatorio. Modello per cui generare gli incorporamenti.

encodingFormat string

Facoltativo. Il formato della codifica. Deve essere "float" o "base64".

dimensions integer

Facoltativo. Dimensioni dimensionali degli embedding generati.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di GenerateEmbeddingsResponse.

Metodo: openai.chat.completions

Genera un insieme di risposte dal modello in base a un input della cronologia chat.

Endpoint

post https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
model string

Obbligatorio. Il nome del Model da utilizzare per generare il completamento. Al nome del modello verrà anteposto "models/" se non contiene una barra.

messages[] object (Struct format)

Obbligatorio. La cronologia chat da utilizzare per generare il completamento. Supporta query con un solo passaggio e con più passaggi. Nota: questo è un campo polimorfo, viene deserializzato in un messaggio di chat interna.

stream boolean

Facoltativo. Indica se la risposta deve essere in streaming o se deve essere restituita una singola risposta.

Se true, il campo "object" nella risposta sarà "chat.completion.chunk". In caso contrario, sarà "chat.completion".

streamOptions object (StreamOptions)

Facoltativo. Opzioni per le richieste di streaming.

tools[] object (ChatTool)

Facoltativo. L'insieme di strumenti per i quali il modello può generare chiamate. Ogni strumento dichiara la propria firma.

toolChoice value (Value format)

Facoltativo. Controlla se il modello deve utilizzare o meno uno strumento e quale strumento utilizzare. Può essere: - La stringa "none" per disattivare gli strumenti. - La stringa "auto", per lasciare che sia il modello a decidere. - La stringa "required", per forzare il modello a utilizzare uno strumento. - Un oggetto descrittore del nome della funzione che specifica lo strumento da utilizzare. L'ultima opzione segue lo schema seguente: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Facoltativo. Quantità di completamenti candidati da generare. Deve essere un numero intero positivo. Se non viene impostato, il valore predefinito è 1.

stop value (Value format)

Facoltativo. L'insieme di sequenze di caratteri che interrompe la generazione dell'output. Nota: questo è un campo polimorfo. Deve contenere una stringa o stringhe ripetute.

maxCompletionTokens integer

Facoltativo. Il numero massimo di token da includere in una risposta candidata. Deve essere un numero intero positivo.

maxTokens integer

Facoltativo. Il numero massimo di token da includere in una risposta candidata. Deve essere un numero intero positivo. Questo campo è stato ritirato dall'SDK.

temperature number

Facoltativo. Controlla la casualità dell'output.

topP number

Facoltativo. La probabilità cumulativa massima dei token da considerare durante il campionamento.

responseFormat object (ResponseFormat)

Facoltativo. Definisce il formato della risposta. Se non è impostato, la risposta verrà formattata come testo.

Corpo della risposta

In caso di esito positivo, la risposta è una risposta HTTP generica il cui formato è definito dal metodo.

Metodo: openai.embeddings

Genera embedding dal modello in base a un input.

Endpoint

post https://generativelanguage.googleapis.com/v1beta/openai/embeddings

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
input value (Value format)

Obbligatorio. L'input per cui generare gli incorporamenti. Può essere una stringa o un elenco di stringhe. L'SDK supporta un elenco di numeri e un elenco di elenchi di numeri, ma non è ancora implementato.

model string

Obbligatorio. Modello per cui generare gli incorporamenti.

encodingFormat string

Facoltativo. Il formato della codifica. Deve essere "float" o "base64".

dimensions integer

Facoltativo. Dimensioni dimensionali degli embedding generati.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di GenerateEmbeddingsResponse.

Metodo: openai.models

Elenca i modelli attualmente disponibili.

Endpoint

get https://generativelanguage.googleapis.com/v1beta/openai/models

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di SdkListModelsResponse.

ChatTool

Uno strumento per cui il modello può generare chiamate.

Campi
function object (ChatFunction)

Obbligatorio. Il nome dello strumento.

type string

Obbligatorio. Obbligatorio, deve essere "function".

Rappresentazione JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

Una funzione per la quale il modello può generare chiamate.

Campi
name string

Obbligatorio. Il nome della funzione.

description string

Facoltativo. Una descrizione della funzione.

parameters object (Struct format)

Facoltativo. I parametri della funzione.

strict boolean

Facoltativo. Indica se la convalida dello schema è rigorosa. Se il valore è true, il modello non andrà a buon fine se lo schema non è valido. NOTA: al momento questo parametro viene ignorato.

Rappresentazione JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

Risposta per la generazione di incorporamenti.

Campi
object string

Solo output. Sempre "embedding", richiesto dall'SDK.

data[] object (GenerateEmbeddingsEmbedding)

Solo output. Un elenco degli incorporamenti richiesti.

model string

Solo output. Modello utilizzato per generare gli embedding.

Rappresentazione JSON
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

Un vettore di embedding generato dal modello.

Campi
object string

Solo output. Sempre "embedding", richiesto dall'SDK.

index integer

Solo output. Indice dell'incorporamento nell'elenco degli incorporamenti.

embedding value (Value format)

Solo output. Il vettore di embedding generato per l'input. Può essere un elenco di numeri in virgola mobile o una stringa base64 che codifica un elenco di numeri in virgola mobile con layout in stile C (compatibile con Numpy).

Rappresentazione JSON
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

Messaggio che rappresenta un corpo HTTP arbitrario. Deve essere utilizzato solo per i formati di payload che non possono essere rappresentati come JSON, ad esempio un programma binario raw o una pagina HTML.

Questo messaggio può essere utilizzato nei metodi API in streaming e non in streaming, sia nella richiesta sia nella risposta.

Può essere utilizzato come campo di richiesta di livello superiore, il che è utile se si vogliono estrarre dei parametri dall'URL o dal modello HTTP per i campi della richiesta e si vuole anche l'accesso al corpo HTTP raw.

Esempio:

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

Esempio con metodi in streaming:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

L'utilizzo di questo tipo modifica solo il modo in cui vengono gestiti i corpi di richiesta e risposta; tutte le altre funzionalità continueranno a funzionare in modo invariato.

Campi
contentType string

Il valore dell'intestazione Content-Type HTTP che specifica il tipo di contenuto del corpo.

data string (bytes format)

Il corpo della richiesta/risposta HTTP come dati binari non elaborati.

Una stringa con codifica Base64.

extensions[] object

Metadati di risposta specifici dell'applicazione. Devono essere impostati nella prima risposta per le API in streaming.

Un oggetto contenente campi di tipo arbitrario. Un campo aggiuntivo "@type" contiene un URI che identifica il tipo. Esempio: { "id": 1234, "@type": "types.example.com/standard/id" }.

Rappresentazione JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

Definisce il formato della risposta.

Campi
type string

Obbligatorio. Tipo di risposta. Può essere: - "text": formatta la risposta come testo. - "json_object": formatta la risposta come oggetto JSON. - "jsonSchema": formatta la risposta come oggetto JSON seguendo lo schema specificato.

jsonSchema object (ResponseFormatSchema)

Facoltativo. Lo schema JSON da seguire. Viene utilizzato solo se il tipo è "jsonSchema".

Rappresentazione JSON
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

Schema della risposta.

Campi
description string

Facoltativo. Descrizione dell'oggetto rappresentato dallo schema.

name string

Obbligatorio. Nome del tipo di oggetto rappresentato dallo schema.

strict boolean

Facoltativo. Indica se la convalida dello schema è rigorosa. Se il valore è true, il modello non andrà a buon fine se lo schema non è valido. NOTA: al momento questo parametro viene ignorato.

schema object (Struct format)

Facoltativo. Lo schema JSON da seguire.

Rappresentazione JSON
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

Risposta per i modelli di elenco.

Campi
object string

Solo output. Sempre "list", obbligatorio per l'SDK.

data[] object (SdkModel)

Solo output. Un elenco degli incorporamenti richiesti.

Rappresentazione JSON
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

L'oggetto modello.

Campi
id string

Solo output. ID del modello.

object string

Solo output. Sempre "model", richiesto dall'SDK.

created string (int64 format)

Solo output. Il timestamp Unix (in secondi) della creazione del modello.

owned_by string

Solo output. L'organizzazione proprietaria del modello.

Rappresentazione JSON
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

Opzioni per le richieste di streaming.

Campi
includeUsage boolean

Facoltativo. Se impostato, include le statistiche sull'utilizzo nella risposta.

Rappresentazione JSON
{
  "includeUsage": boolean
}