Voltar para todos os artigos
Guias

Usando o OpenAI SDK para chamar a API Gemini: como configurar base_url, nome do modelo e preço do Gemini 3.5 Flash

14 de junho de 2026 · 10 min de leitura · Claude / GPT / Gemini

Ilustração de migração de API para desenvolvedores em fundo bege: à esquerda, um cartão de código do OpenAI SDK em cinza-carvão; no centro, um switch base_url em terracota; à direita, um cartão do modelo Gemini 3.5 Flash; abaixo, pequenas etiquetas de preço indicando entrada US$ 1,50/M e saída US$ 9,00/M.

A documentação compatível com OpenAI do Google foi atualizada em 2026-05-18 e afirma diretamente: os modelos Gemini podem ser chamados pelos SDKs OpenAI Python / JavaScript, mudando essencialmente apenas três pontos: api_key, base_url, model (Google). Hoje é 2026-06-14, e a página de preços informa que, na camada paga padrão do gemini-3.5-flash, o preço é: entrada $1.50 / 100 万 token, saída incluindo tokens de pensamento $9.00 / 100 万 token (Google Pricing).

Minha avaliação é simples: se você já tem um projeto com o SDK da OpenAI, não reescreva tudo agora. Primeiro conecte o Gemini como um backend compatível com OpenAI, valide custos, streaming e chamadas de ferramentas, e só então decida se vale migrar para o SDK nativo do Gemini.

Diagrama de comparação antes e depois da migração em fundo bege claro, com um cartão de configuração da OpenAI à esquerda e um cartão de configuração do Gemini à direita; no meio, apenas as três linhas api_key, base_url e model estão destacadas, conectadas por uma seta terracota

1. Mudança mínima: trocar apenas o endpoint e o nome do modelo

Em Python, primeiro instale o SDK oficial da OpenAI:

pip install openai
export GEMINI_API_KEY="你的 Gemini API Key"

Depois altere o cliente para ficar assim:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["GEMINI_API_KEY"],
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    reasoning_effort="low",
    messages=[
        {"role": "system", "content": "你是一个直接、准确的代码助手。"},
        {"role": "user", "content": "用三句话解释 SSE 流式输出。"},
    ],
)

print(resp.choices[0].message.content)

chat.completions.create, messages e tools continuam seguindo o formato OpenAI Chat Completions; a própria referência da API da OpenAI ainda define Chat Completions como uma interface que gera respostas com base em uma lista de mensagens (OpenAI). Portanto, o foco da migração não é o código de negócio, mas a camada de configuração.

2. Não esqueça a barra final em base_url

O endereço na documentação do Google é:

https://generativelanguage.googleapis.com/v1beta/openai/

Se faltar o / final, alguns clientes podem gerar problemas estranhos ao montar caminhos. Em código de produção, recomendo extrair isso para variáveis de ambiente:

OPENAI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai/"
OPENAI_API_KEY="$GEMINI_API_KEY"
OPENAI_MODEL="gemini-3.5-flash"

Se você quiser evitar alternar entre contas, cotas e faturas de vários provedores, o onehop é um caminho mais prático: altere o base_url para https://api.onehop.ai/v1 e chame Claude, GPT e Gemini pela mesma interface compatível com OpenAI / Anthropic. Novas contas recebem $10, sem precisar vincular cartão; é adequado para fazer um PoC primeiro e depois decidir se vale conectar diretamente às APIs oficiais.

from openai import OpenAI

client = OpenAI(
    api_key="你的 onehop key",
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "给我一个 FastAPI 健康检查接口"}],
)
print(resp.choices[0].message.content)

O acesso fica aqui: chamar Claude e outros modelos no onehop, cadastre-se e receba $10 em créditos de teste.

3. Calcule o preço primeiro pelos tokens de saída

A camada padrão do gemini-3.5-flash não é “tão barata que dá para ignorar”. O preço de saída é 6 vezes o preço de entrada:

Modelo Camada Entrada / 1 milhão de tokens Saída / 1 milhão de tokens
gemini-3.5-flash Padrão $1.50 $9.00
gemini-3.5-flash Batch $0.75 $4.50
gemini-3.5-flash Flex $0.75 $4.50

Os números de Batch e Flex também vêm da mesma página de preços do Google. Ao criar aplicações, limite max_completion_tokens, especialmente em resumo, geração de código e loops de ferramentas de Agent. Entradas mais longas ainda podem ser cacheadas; saída fora de controle é gasto real.

Gráfico de barras compacto, com o eixo horizontal mostrando as três camadas Padrão, Batch e Flex, e o eixo vertical mostrando dólares por milhão de tokens; cada grupo tem duas barras, entrada em cinza-carvão e saída em terracota, destacando que o preço de saída é mais alto

4. Como o reasoning_effort é mapeado

A camada compatível do Google aceita o reasoning_effort no estilo OpenAI e o mapeia para a configuração de thinking do Gemini (Google):

reasoning_effort thinking_level do Gemini 3 Flash
minimal minimal
low low
medium medium
high high

Se não for informado, usa-se o valor padrão do modelo. A documentação do Google também traz uma restrição importante: no Gemini 3, não é possível desativar o thinking; none só se aplica a alguns modelos 2.5. Minha recomendação é usar low como padrão em produção, elevando para medium ou high apenas em planejamento complexo ou chamadas de ferramentas em cadeias longas. Como o preço de saída inclui tokens de pensamento, a intensidade de raciocínio não é um botão gratuito.

5. Streaming e chamadas de função: funcionam, mas proteja-se contra chunks vazios

A chamada em streaming mantém a escrita do SDK da OpenAI:

stream = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "写一个 Redis 缓存封装"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

O if delta aqui é muito útil. Em respostas por streaming, pode haver papel, chamada de ferramenta ou incremento vazio; não presuma que todo chunk terá texto.

Chamadas de função também passam por tools e tool_choice="auto". A documentação de compatibilidade do Google traz um exemplo de função de clima e confirma que a Gemini API oferece suporte a function calling (Google). Em projetos reais, não se limite a imprimir o retorno do modelo; verifique message.tool_calls, execute a função local e então envie o resultado da ferramenta de volta ao modelo como a próxima mensagem.

Conclusão: o menor custo para migrar para o Gemini é mudar três linhas de configuração; o que realmente precisa de atenção são tokens de saída, intensidade de thinking, chunks vazios no streaming e o ciclo fechado de chamadas de ferramentas. Se você só quer colocar Claude, GPT e Gemini rapidamente no mesmo projeto com SDK da OpenAI, usar a entrada unificada do onehop economiza bastante tempo de configuração: chame Claude e outros modelos no onehop, ou primeiro resgate o crédito de teste de $10 ao se cadastrar.