Com a API Chat Autocomplete, é possível enviar solicitações para modelos da Vertex AI usando as bibliotecas da OpenAI para Python e REST. Se você já estiver usando as bibliotecas OpenAI, poderá usar esta API para alternar entre chamar modelos OpenAI e modelos hospedados do Vertex AI para comparar resultados, custos e escalabilidade, sem mudar o código atual. Se você ainda não usa as bibliotecas OpenAI, recomendamos chamar a API Gemini diretamente.
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 tabela a seguir mostra os modelos do Gemini compatíveis:
Modelo | Versão |
---|---|
Gemini 2.0 Flash | google/gemini-2.0-flash |
Gemini 1.5 Flash | google/gemini-1.5-flash |
Gemini 1.5 Pro | google/gemini-1.5-pro |
Gemini 1.0 Pro Vision | google/gemini-1.0-pro-vision google/gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | google/gemini-1.0-pro-002 google/gemini-1.0-pro-001 google/gemini-1.0-pro |
Modelos autoimplantados do Model Garden
O Interface de geração de texto Hugging Face (HF TGI) (link em inglês) e os contêineres de vLLM pré-criados do Model Garden da Vertex AI têm suporte à 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 |
---|---|
Autenticar
Para usar as bibliotecas OpenAI Python, instale o OpenAI SDK:
pip install openai
Para autenticar com a API Chat Completions, você pode modificar a configuração do cliente ou alterar a configuração do ambiente para usar a autenticação do Google e um endpoint da Vertex AI. Escolha o método mais fácil e siga as etapas de configuração, dependendo se você quer chamar modelos do Gemini ou do Model Garden autoimplantado.
Certos modelos no Grupo de modelos e
modelos Hugging Face com suporte
precisam ser
implantadas em um endpoint da Vertex AI
antes de veicular solicitações.
Ao
chamar esses modelos autoimplantados da API Chat Completions, é necessário
especificar o ID do endpoint. Para listar seus
endpoints atuais da Vertex AI, use o
comando gcloud ai endpoints list
.
Configuração do cliente
Para obter credenciais do Google de maneira programática em Python, use o
SDK Python google-auth
:
pip install google-auth requests
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Por padrão, os tokens de acesso duram 1 hora. Você pode
prolongar a vida útil do seu token de acesso
ou atualizá-lo periodicamente e atualizar a variável openai.api_key
.
Variáveis de ambiente
Instale a CLI do Google Cloud. A biblioteca OpenAI pode
ler as variáveis
de ambiente OPENAI_API_KEY
e OPENAI_BASE_URL
para alterar a autenticação e o endpoint no cliente padrão.
Configure as variáveis a seguir:
$ export PROJECT_ID=PROJECT_ID
$ export LOCATION=LOCATION
$ export OPENAI_API_KEY="$(gcloud auth application-default print-access-token)"
Para chamar um modelo do Gemini, defina o MODEL_ID
e use o endpoint openapi
:
$ export MODEL_ID=MODEL_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi"
Para chamar um modelo autoimplantado do Model Garden, defina a variável ENDPOINT
e use-a no URL:
$ export ENDPOINT=ENDPOINT_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT}"
Em seguida, inicialize o cliente:
client = openai.OpenAI()
A API Gemini Chat Completions usa OAuth para autenticação
com um
token de acesso de curta duração.
Por padrão, os tokens de acesso duram 1 hora. Você pode
prolongar a vida útil do seu token de acesso
ou atualizá-lo periodicamente e atualizar a variável de ambiente
OPENAI_API_KEY
.
Chamar o Gemini com a API Chat Completions
O exemplo a seguir mostra como enviar solicitações sem streaming:
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi/chat/completions \ -d '{ "model": "google/${MODEL_ID}", "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir mostra como enviar solicitações de streaming para um Modelo do Gemini usando a API Chat Completions:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi/chat/completions \ -d '{ "model": "google/${MODEL_ID}", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Chamar um modelo autoimplantado com a API Chat Completions
O exemplo a seguir mostra como enviar solicitações sem streaming:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions \ -d '{ "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir mostra como enviar solicitações de streaming para um modelo autoimplantado usando a API Chat Completions:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions \ -d '{ "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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_tokens |
|
n |
|
frequency_penalty |
|
presence_penalty |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
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.
Atualizar suas credenciais
O exemplo a seguir mostra como atualizar suas credenciais automaticamente como necessário:
Python
A seguir
- Veja exemplos de como chamar a API Inference com a sintaxe compatível com OpenAI.
- Veja 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.