Este documento mostra como usar a API Chat Completions compatível com a OpenAI para interagir com os modelos da Vertex AI. Neste documento, discutimos os seguintes tópicos:
- Modelos compatíveis:saiba quais modelos do Gemini e do Model Garden autoimplantados são compatíveis com a API.
- Parâmetros aceitos:confira a lista de parâmetros padrão da OpenAI que podem ser usados.
- Parâmetros de entrada multimodal:saiba como usar entradas multimodais, como áudio e imagens.
- Parâmetros específicos do Gemini:saiba como usar recursos específicos do Gemini nos campos
extra_body
eextra_part
.
A API Chat Completions é um endpoint compatível com a OpenAI que permite usar as bibliotecas Python e REST da OpenAI para interagir com o Gemini na Vertex AI. Se você já usa as bibliotecas OpenAI, essa API oferece uma maneira de alternar entre modelos OpenAI e modelos hospedados da Vertex AI para comparar resultados, custos e escalonabilidade com mudanças mínimas no código atual. Se você não usa as bibliotecas OpenAI, recomendamos usar o SDK da IA generativa do Google.
Modelos compatíveis
A API Chat Completions oferece suporte a modelos do Gemini e a alguns modelos autoimplantados do Model Garden.
Modelos do Gemini
A API Chat Completions é compatível com os seguintes modelos do Gemini:
Modelos autoimplantados do Model Garden
Os contêineres Hugging Face Text Generation Interface (HF TGI) e vLLM pré-criado do Model Garden da Vertex AI são compatíveis com a API Chat Completions. No entanto, nem todos os modelos implantados nesses contêineres são compatíveis com a API Chat Completions. A tabela a seguir inclui os modelos com suporte mais conhecidos por contêiner:
HF TGI |
vLLM |
---|---|
Parâmetros aceitos
Para modelos do Google, a API Chat Completions é compatível com as seguintes APIs parâmetros. Para ver uma descrição de cada parâmetro, consulte a documentação da OpenAI sobre Como criar conclusões de chat. A compatibilidade com parâmetros para modelos de terceiros varia de acordo com o modelo. Para saber quais parâmetros são aceitos, consulte a documentação do modelo.
messages |
|
model |
|
max_completion_tokens |
Alias de max_tokens . |
max_tokens |
|
n |
|
frequency_penalty |
|
presence_penalty |
|
reasoning_effort |
Configura quanto tempo e quantos tokens são usados em uma resposta.
reasoning_effort ou extra_body.google.thinking_config
pode ser especificado.
|
response_format |
|
seed |
Corresponde a GenerationConfig.seed . |
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
web_search_options |
Corresponde à ferramenta GoogleSearch . Nenhuma subopção é compatível. |
function_call |
Este campo está obsoleto, mas tem suporte para compatibilidade com versões anteriores. |
functions |
Este campo está obsoleto, mas tem suporte para compatibilidade com versões anteriores. |
Se você passar algum parâmetro não suportado, ele será ignorado.
Parâmetros de entrada multimodal
A API Chat Completions oferece suporte a algumas entradas multimodais.
input_audio |
|
image_url |
|
Em geral, o parâmetro data
pode ser um URI ou uma combinação de tipo MIME e bytes codificados em base64 no formato "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>"
.
Para ver uma lista completa de tipos MIME, consulte GenerateContent
.
Para mais informações sobre a codificação base64 da OpenAI, consulte a documentação deles.
Para saber como usar, consulte nossos exemplos de entrada multimodal.
Parâmetros específicos do Gemini
Para usar recursos compatíveis com o Gemini, mas não com os modelos da OpenAI, transmita-os como parâmetros em um campo extra_content
ou extra_body
. Se você transmitir esses recursos fora desses campos, eles serão ignorados.
extra_body
recursos
Para usar recursos específicos do Gemini extra_body
, inclua-os em um campo google
.
{
...,
"extra_body": {
"google": {
...,
// Add extra_body features here.
}
}
}
safety_settings |
Isso corresponde ao SafetySetting do Gemini. |
cached_content |
Isso corresponde ao GenerateContentRequest.cached_content do Gemini. |
thinking_config |
Isso corresponde ao GenerationConfig.ThinkingConfig do Gemini. |
thought_tag_marker |
Usado para separar os pensamentos de um modelo das respostas dele para modelos com o recurso "Pensando" disponível. Se não for especificado, nenhuma tag será retornada em torno dos pensamentos do modelo. Se estiverem presentes, as consultas subsequentes vão remover as tags de pensamento e marcar os pensamentos adequadamente para o contexto. Isso ajuda a preservar o contexto adequado para consultas subsequentes. |
extra_part
recursos
O campo extra_part
permite especificar outras configurações para cada Part
. Para usar recursos específicos do Gemini extra_part
, inclua-os em um campo google
.
{
...,
"extra_part": {
"google": {
...,
// Add extra_part features here.
}
}
}
extra_content |
Um campo para adicionar conteúdo específico do Gemini que não deve ser ignorado. |
thought |
Isso marca explicitamente se um campo é um pensamento e tem precedência sobre thought_tag_marker . Deve ser usado para especificar se uma chamada de função faz parte de um pensamento ou não. |
A seguir
- Saiba mais sobre autenticação e credenciamento com a sintaxe compatível com a OpenAI.
- Confira exemplos de como chamar a API Chat Completions com a sintaxe compatível com a OpenAI.
- Confira exemplos de como chamar a API Inference com a sintaxe compatível com OpenAI.
- Confira exemplos de como chamar a API Function Calling com sintaxe compatível com OpenAI.
- Saiba mais sobre a API Gemini.
- Saiba mais sobre como migrar do Azure OpenAI para a API Gemini.