A API Gemini Chat Completions permite enviar solicitações à API Vertex AI Gemini usando as bibliotecas 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 Gemini para comparar resultados, custos e escalabilidade, sem alterar o código existente. Se você ainda não usa as bibliotecas OpenAI, recomendamos chamar a API Gemini diretamente.
Modelos compatíveis
Modelo | Versão |
---|---|
Gemini 1.5 Flash | google/gemini-1.5-flash-preview-0514 google/gemini-1.5-flash-001 |
Gemini 1.5 Pro | google/gemini-1.5-pro-preview-0514 google/gemini-1.5-pro-preview-0409 google/gemini-1.5-pro-001 |
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 |
Autenticar
Para usar as bibliotecas OpenAI Python, instale o OpenAI SDK:
pip install openai
Para autenticar com a API Gemini 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 uma das seguintes opções, a que for mais fácil:
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
pip install requests
Altere o SDK do OpenAI para apontar para o endpoint de conclusões de bate-papo da Vertex AI:
# Programmatically get an access token
creds, project = google.auth.default()
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)
# Note: the credential lives for 1 hour by default (https://cloud.google.com/docs/authentication/token-types#at-lifetime); after expiration, it must be refreshed.
# Pass the Vertex endpoint and authentication to the OpenAI SDK
PROJECT = 'PROJECT_ID'
LOCATION = 'LOCATION'
MODEL_ID = 'MODEL_ID'
client = openai.OpenAI(
base_url = f'https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/endpoints/openapi',
api_key = creds.token)
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=PROJECT_ID
$ export LOCATION=LOCATION
$ export MODEL_ID=MODEL_ID
$ export OPENAI_API_KEY="$(gcloud auth application-default print-access-token)"
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT}/locations/${LOCATION}/endpoints/openapi"
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 a API Gemini 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
import openai client = openai.OpenAI() model_response = client.chat.completions.create( model = "google/${MODEL_ID}", messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
O exemplo a seguir mostra como enviar solicitações de 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}", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
import openai client = openai.OpenAI() model_response = client.chat.completions.create( model = "google/${MODEL_ID}", stream = True, messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
Parâmetros aceitos
A API Gemini Chat Completions aceita os seguintes parâmetros OpenAI. Para ver uma descrição de cada parâmetro, consulte a documentação da OpenAI sobre Como criar conclusões de chat.
messages |
|
model |
|
max_tokens |
|
n |
|
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.
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.