Os modelos Gemini podem ser acessados usando as bibliotecas OpenAI (Python e TypeScript / Javascript) com a API REST, atualizando três linhas de código e usando sua chave da API Gemini. Leia mais sobre esse recurso no guia de compatibilidade.
Método: chatCompletions
Gera um conjunto de respostas do modelo com base em uma entrada do histórico de chat.
Endpoint
posthttps: / /generativelanguage.googleapis.com /v1beta:chatCompletions
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
model
string
Obrigatório. O nome do Model
a ser usado para gerar a conclusão. O nome do modelo vai ter o prefixo "models/" se não tiver nenhum caractere de barra incluída.
messages[]
object (Struct
format)
Obrigatório. O histórico de chat a ser usado para gerar a conclusão. Oferece suporte a consultas simples e de várias etapas. Observação: este é um campo polimórfico, ele é desserializado para uma InternalChatMessage.
stream
boolean
Opcional. Define se a resposta será transmitida ou retornada.
Se for verdadeiro, o campo "object" na resposta será "chat.completion.chunk". Caso contrário, será "chat.completion".
streamOptions
object (StreamOptions
)
Opcional. Opções para solicitações de streaming.
tools[]
object (ChatTool
)
Opcional. O conjunto de ferramentas para as quais o modelo pode gerar chamadas. Cada ferramenta declara a assinatura dela.
toolChoice
value (Value
format)
Opcional. Controla se o modelo precisa usar uma ferramenta ou não e qual ferramenta usar. Pode ser: - A string "none", para desativar ferramentas. - A string "auto", para deixar o modelo decidir. - A string "required", para forçar o modelo a usar uma ferramenta. - Um objeto descritor de nome de função, que especifica a ferramenta a ser usada. A última opção segue o seguinte esquema: { "type": "function", "function": {"name" : "the_function_name"} }
n
integer
Opcional. Quantidade de conclusões de candidatos a serem geradas. Precisa ser um inteiro positivo. O padrão é 1, caso não esteja definido.
stop
value (Value
format)
Opcional. O conjunto de sequências de caracteres que vai interromper a geração de saída. Observação: este é um campo polimórfico. Ele deve conter uma string ou strings repetidas.
maxCompletionTokens
integer
Opcional. O número máximo de tokens a serem incluídos em um candidato de resposta. Precisa ser um inteiro positivo.
maxTokens
integer
Opcional. O número máximo de tokens a serem incluídos em um candidato de resposta. Precisa ser um inteiro positivo. O uso deste campo foi descontinuado pelo SDK.
temperature
number
Opcional. Controla a aleatoriedade da saída.
topP
number
Opcional. A probabilidade cumulativa máxima de tokens a serem considerados na amostragem.
responseFormat
object (ResponseFormat
)
Opcional. Define o formato da resposta. Se não for definido, a resposta vai ser formatada como texto.
Corpo da resposta
Se for bem-sucedida, a resposta será uma resposta HTTP genérica que tem o formato definido pelo método.
Método: embeddings
Gera embeddings do modelo com base em uma entrada.
Endpoint
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
input
value (Value
format)
Obrigatório. A entrada para gerar embeddings. Pode ser uma string ou uma lista de strings. O SDK oferece suporte a uma lista de números e uma lista de listas de números, mas isso ainda não foi implementado.
model
string
Obrigatório. Modelo para gerar os embeddings.
encodingFormat
string
Opcional. O formato da codificação. Precisa ser "float" ou "base64".
dimensions
integer
Opcional. Tamanho dimensional dos embeddings gerados.
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de GenerateEmbeddingsResponse
.
Método: listModels
Lista os modelos disponíveis no momento.
Endpoint
gethttps: / /generativelanguage.googleapis.com /v1beta /listModels
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação precisa estar vazio.
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de SdkListModelsResponse
.
Método: chat.completions
Gera um conjunto de respostas do modelo com base em uma entrada do histórico de chat.
Endpoint
posthttps: / /generativelanguage.googleapis.com /v1beta /chat /completions
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
model
string
Obrigatório. O nome do Model
a ser usado para gerar a conclusão. O nome do modelo vai ter o prefixo "models/" se não tiver nenhum caractere de barra incluída.
messages[]
object (Struct
format)
Obrigatório. O histórico de chat a ser usado para gerar a conclusão. Oferece suporte a consultas simples e de várias etapas. Observação: este é um campo polimórfico, ele é desserializado para uma InternalChatMessage.
stream
boolean
Opcional. Define se a resposta será transmitida ou retornada.
Se for verdadeiro, o campo "object" na resposta será "chat.completion.chunk". Caso contrário, será "chat.completion".
streamOptions
object (StreamOptions
)
Opcional. Opções para solicitações de streaming.
tools[]
object (ChatTool
)
Opcional. O conjunto de ferramentas para as quais o modelo pode gerar chamadas. Cada ferramenta declara a assinatura dela.
toolChoice
value (Value
format)
Opcional. Controla se o modelo precisa usar uma ferramenta ou não e qual ferramenta usar. Pode ser: - A string "none", para desativar ferramentas. - A string "auto", para deixar o modelo decidir. - A string "required", para forçar o modelo a usar uma ferramenta. - Um objeto descritor de nome de função, que especifica a ferramenta a ser usada. A última opção segue o seguinte esquema: { "type": "function", "function": {"name" : "the_function_name"} }
n
integer
Opcional. Quantidade de conclusões de candidatos a serem geradas. Precisa ser um inteiro positivo. O padrão é 1, caso não esteja definido.
stop
value (Value
format)
Opcional. O conjunto de sequências de caracteres que vai interromper a geração de saída. Observação: este é um campo polimórfico. Ele deve conter uma string ou strings repetidas.
maxCompletionTokens
integer
Opcional. O número máximo de tokens a serem incluídos em um candidato de resposta. Precisa ser um inteiro positivo.
maxTokens
integer
Opcional. O número máximo de tokens a serem incluídos em um candidato de resposta. Precisa ser um inteiro positivo. O uso deste campo foi descontinuado pelo SDK.
temperature
number
Opcional. Controla a aleatoriedade da saída.
topP
number
Opcional. A probabilidade cumulativa máxima de tokens a serem considerados na amostragem.
responseFormat
object (ResponseFormat
)
Opcional. Define o formato da resposta. Se não for definido, a resposta vai ser formatada como texto.
Corpo da resposta
Se for bem-sucedida, a resposta será uma resposta HTTP genérica que tem o formato definido pelo método.
Método: embeddings.generate
Gera embeddings do modelo com base em uma entrada.
Endpoint
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings:generate
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
input
value (Value
format)
Obrigatório. A entrada para gerar embeddings. Pode ser uma string ou uma lista de strings. O SDK oferece suporte a uma lista de números e uma lista de listas de números, mas isso ainda não foi implementado.
model
string
Obrigatório. Modelo para gerar os embeddings.
encodingFormat
string
Opcional. O formato da codificação. Precisa ser "float" ou "base64".
dimensions
integer
Opcional. Tamanho dimensional dos embeddings gerados.
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de GenerateEmbeddingsResponse
.
Método: openai.chat.completions
Gera um conjunto de respostas do modelo com base em uma entrada do histórico de chat.
Endpoint
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /chat /completions
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
model
string
Obrigatório. O nome do Model
a ser usado para gerar a conclusão. O nome do modelo vai ter o prefixo "models/" se não tiver nenhum caractere de barra incluída.
messages[]
object (Struct
format)
Obrigatório. O histórico de chat a ser usado para gerar a conclusão. Oferece suporte a consultas simples e de várias etapas. Observação: este é um campo polimórfico, ele é desserializado para uma InternalChatMessage.
stream
boolean
Opcional. Define se a resposta será transmitida ou retornada.
Se for verdadeiro, o campo "object" na resposta será "chat.completion.chunk". Caso contrário, será "chat.completion".
streamOptions
object (StreamOptions
)
Opcional. Opções para solicitações de streaming.
tools[]
object (ChatTool
)
Opcional. O conjunto de ferramentas para as quais o modelo pode gerar chamadas. Cada ferramenta declara a assinatura dela.
toolChoice
value (Value
format)
Opcional. Controla se o modelo precisa usar uma ferramenta ou não e qual ferramenta usar. Pode ser: - A string "none", para desativar ferramentas. - A string "auto", para deixar o modelo decidir. - A string "required", para forçar o modelo a usar uma ferramenta. - Um objeto descritor de nome de função, que especifica a ferramenta a ser usada. A última opção segue o seguinte esquema: { "type": "function", "function": {"name" : "the_function_name"} }
n
integer
Opcional. Quantidade de conclusões de candidatos a serem geradas. Precisa ser um inteiro positivo. O padrão é 1, caso não esteja definido.
stop
value (Value
format)
Opcional. O conjunto de sequências de caracteres que vai interromper a geração de saída. Observação: este é um campo polimórfico. Ele deve conter uma string ou strings repetidas.
maxCompletionTokens
integer
Opcional. O número máximo de tokens a serem incluídos em um candidato de resposta. Precisa ser um inteiro positivo.
maxTokens
integer
Opcional. O número máximo de tokens a serem incluídos em um candidato de resposta. Precisa ser um inteiro positivo. O uso deste campo foi descontinuado pelo SDK.
temperature
number
Opcional. Controla a aleatoriedade da saída.
topP
number
Opcional. A probabilidade cumulativa máxima de tokens a serem considerados na amostragem.
responseFormat
object (ResponseFormat
)
Opcional. Define o formato da resposta. Se não for definido, a resposta vai ser formatada como texto.
Corpo da resposta
Se for bem-sucedida, a resposta será uma resposta HTTP genérica que tem o formato definido pelo método.
Método: openai.embeddings
Gera embeddings do modelo com base em uma entrada.
Endpoint
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /embeddings
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
input
value (Value
format)
Obrigatório. A entrada para gerar embeddings. Pode ser uma string ou uma lista de strings. O SDK oferece suporte a uma lista de números e uma lista de listas de números, mas isso ainda não foi implementado.
model
string
Obrigatório. Modelo para gerar os embeddings.
encodingFormat
string
Opcional. O formato da codificação. Precisa ser "float" ou "base64".
dimensions
integer
Opcional. Tamanho dimensional dos embeddings gerados.
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de GenerateEmbeddingsResponse
.
Método: openai.models
Lista os modelos disponíveis no momento.
Endpoint
gethttps: / /generativelanguage.googleapis.com /v1beta /openai /models
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação precisa estar vazio.
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de SdkListModelsResponse
.
ChatTool
Uma ferramenta para a qual o modelo pode gerar chamadas.
function
object (ChatFunction
)
Obrigatório. O nome da ferramenta.
type
string
Obrigatório. Obrigatório, precisa ser "function".
Representação JSON |
---|
{
"function": {
object ( |
ChatFunction
Uma função que o modelo pode gerar chamadas.
name
string
Obrigatório. O nome da função.
description
string
Opcional. Uma descrição da função.
parameters
object (Struct
format)
Opcional. Os parâmetros da função.
strict
boolean
Opcional. Se a validação do esquema é rigorosa. Se verdadeiro, o modelo vai falhar se o esquema não for válido. OBSERVAÇÃO: esse parâmetro é ignorado no momento.
Representação JSON |
---|
{ "name": string, "description": string, "parameters": { object }, "strict": boolean } |
GenerateEmbeddingsResponse
Resposta para a geração de embedding.
object
string
Apenas saída. Sempre "incorporado", exigido pelo SDK.
data[]
object (GenerateEmbeddingsEmbedding
)
Apenas saída. Uma lista das inclusões solicitadas.
model
string
Apenas saída. Modelo usado para gerar os embeddings.
Representação JSON |
---|
{
"object": string,
"data": [
{
object ( |
GenerateEmbeddingsEmbedding
Um vetor de embedding gerado pelo modelo.
object
string
Apenas saída. Sempre "incorporado", exigido pelo SDK.
index
integer
Apenas saída. Índice do embedding na lista de embeddings.
embedding
value (Value
format)
Apenas saída. O vetor de embedding gerado para a entrada. Pode ser uma lista de flutuantes ou uma string base64 que codifica uma lista de flutuantes com layout no estilo C (compatível com Numpy).
Representação JSON |
---|
{ "object": string, "index": integer, "embedding": value } |
HttpBody
É a mensagem que representa um corpo HTTP arbitrário. Use-a somente para formatos de payload que não podem ser representados como JSON, por exemplo, binário bruto ou uma página HTML.
É possível usar essa mensagem em métodos de API de streaming e não streaming na solicitação e na resposta.
Ela pode ser usada como um campo de solicitação de nível superior, o que será conveniente se você quiser extrair parâmetros do modelo de URL ou HTTP para os campos da solicitação e também quiser acessar o corpo HTTP bruto.
Exemplo:
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);
}
Exemplo com métodos de 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);
}
O uso desse tipo altera somente o modo como os corpos de solicitação e resposta são tratados. Todos os outros recursos continuarão a funcionar sem alteração.
contentType
string
O valor do cabeçalho HTTP Content-Type que especifica o tipo de conteúdo do corpo.
data
string (bytes format)
O corpo da solicitação/resposta HTTP como binário bruto.
Uma string codificada em base64.
extensions[]
object
Metadados de resposta específicos do aplicativo. Precisam ser definidos na primeira resposta para APIs de streaming.
Um objeto contendo campos de um tipo arbitrário. Um campo adicional "@type"
contém uma URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" }
.
Representação JSON |
---|
{ "contentType": string, "data": string, "extensions": [ { "@type": string, field1: ..., ... } ] } |
ResponseFormat
Define o formato da resposta.
type
string
Obrigatório. Tipo de resposta. Pode ser: - "text": formate a resposta como texto. - "json_object": formata a resposta como um objeto JSON. - "jsonSchema": formata a resposta como um objeto JSON seguindo o esquema fornecido.
jsonSchema
object (ResponseFormatSchema
)
Opcional. O esquema JSON a ser seguido. Só é usado quando o tipo é "jsonSchema".
Representação JSON |
---|
{
"type": string,
"jsonSchema": {
object ( |
ResponseFormatSchema
Esquema da resposta.
description
string
Opcional. Descrição do objeto representado pelo esquema.
name
string
Obrigatório. Nome do tipo de objeto representado pelo esquema.
strict
boolean
Opcional. Se a validação do esquema é rigorosa. Se verdadeiro, o modelo vai falhar se o esquema não for válido. OBSERVAÇÃO: esse parâmetro é ignorado no momento.
schema
object (Struct
format)
Opcional. O esquema JSON a ser seguido.
Representação JSON |
---|
{ "description": string, "name": string, "strict": boolean, "schema": { object } } |
SdkListModelsResponse
Resposta para modelos de lista.
object
string
Apenas saída. Sempre "list", obrigatório pelo SDK.
data[]
object (SdkModel
)
Apenas saída. Uma lista das inclusões solicitadas.
Representação JSON |
---|
{
"object": string,
"data": [
{
object ( |
SdkModel
O objeto do modelo.
id
string
Apenas saída. ID do modelo.
object
string
Apenas saída. Sempre "model", exigido pelo SDK.
created
string (int64 format)
Apenas saída. O carimbo de data/hora Unix (em segundos) quando o modelo foi criado.
owned_by
string
Apenas saída. A organização proprietária do modelo.
Representação JSON |
---|
{ "id": string, "object": string, "created": string, "owned_by": string } |