OpenAI compatibility

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

post https://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:

Campos
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

post https://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:

Campos
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

get https://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

post https://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:

Campos
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

post https://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:

Campos
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

post https://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:

Campos
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

post https://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:

Campos
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

get https://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.

Campos
function object (ChatFunction)

Obrigatório. O nome da ferramenta.

type string

Obrigatório. Obrigatório, precisa ser "function".

Representação JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

Uma função que o modelo pode gerar chamadas.

Campos
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.

Campos
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)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

Um vetor de embedding gerado pelo modelo.

Campos
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.

Campos
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.

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

ResponseFormatSchema

Esquema da resposta.

Campos
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.

Campos
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)
    }
  ]
}

SdkModel

O objeto do modelo.

Campos
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
}

StreamOptions

Opções para solicitações de streaming.

Campos
includeUsage boolean

Opcional. Se definido, inclua as estatísticas de uso na resposta.

Representação JSON
{
  "includeUsage": boolean
}