Nesta página, explicamos como migrar o código projetado para o SDK da OpenAI para o SDK da IA generativa do Google e usar os modelos do Gemini na Vertex AI.
Visão geral da migração
O notebook a seguir demonstra uma migração prática da biblioteca openai para a biblioteca google-genai:
Mapeamento de API e sintaxe
A tabela a seguir compara os principais componentes, métodos e parâmetros do SDK da OpenAI com o SDK de IA generativa.
| Recurso | SDK da OpenAI (openai) |
SDK de IA generativa (google-genai) |
|---|---|---|
| Inicialização do cliente | client = OpenAI(api_key=...) |
client = genai.Client(vertexai=True, ...) |
| Método de geração | client.chat.completions.create |
client.models.generate_content |
| Método de streaming | stream=True (parâmetro) |
client.models.generate_content_stream (método) |
| Entrada do usuário | messages=[{"role": "user", "content": "..."}] |
contents="..." (str) ou contents=[...] (list) |
| Instruções do sistema | messages=[{"role": "system", "content": "..."}] |
config=types.GenerateContentConfig(system_instruction=...) |
| Acesso à resposta | response.choices[0].message.content |
response.text |
| Histórico de chat | Gerenciamento manual de listas (messages.append) |
client.chats.create() (objeto com estado) |
| Máximo de tokens | max_tokens |
max_output_tokens (em config) |
| Temperatura | temperature |
temperature (em config) |
| Modo JSON | response_format={"type": "json_object"} |
response_mime_type="application/json" (em config) |
Instalação e configuração
Desinstale a biblioteca OpenAI e instale o SDK da IA generativa.
pip install google-genai
2. Autenticação e inicialização
Enquanto a OpenAI usa uma chave de API, a Vertex AI usa credenciais do Identity and Access Management (IAM) (Application Default Credentials). É necessário definir explicitamente o ID do projeto e o local.
| SDK da OpenAI | SDK do Google Gen AI |
|---|---|
|
|
Defina GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_CLOUD_PROJECT e GOOGLE_CLOUD_LOCATION, conforme mostrado:
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT='your-project-id'
export GOOGLE_CLOUD_LOCATION='global'
Depois de configurado, é possível inicializar o cliente sem transmitir parâmetros:
from google import genai
client = genai.Client()
Exemplos de código
Os exemplos de código a seguir mostram as diferenças entre o SDK da OpenAI e o SDK da IA generativa do Google para tarefas comuns.
Geração de texto em um único turno
Os exemplos de código a seguir mostram como gerar texto. No SDK da IA generativa do Google, as instruções do sistema são processadas como um parâmetro de configuração, e não como uma função de mensagem na lista de entrada.
| SDK da OpenAI | SDK do Google Gen AI |
|---|---|
|
|
Geração de texto com parâmetros
Os exemplos de código a seguir mostram as diferenças na definição de parâmetros de configuração. No SDK da IA generativa do Google, parâmetros como temperature, max_output_tokens (antes max_tokens) e formatação JSON são agrupados em um objeto GenerateContentConfig.
| SDK da OpenAI | SDK do Google Gen AI |
|---|---|
|
|
Chat (vários turnos)
Os exemplos de código a seguir mostram as diferenças no gerenciamento do histórico de conversas. O SDK da IA generativa do Google simplifica isso ao fornecer um objeto chat com estado, enquanto a OpenAI exige a anexação manual de mensagens a uma lista.
| SDK da OpenAI | SDK do Google Gen AI |
|---|---|
|
|
Streaming
Os exemplos de código a seguir mostram as diferenças nas respostas de streaming. O SDK da IA generativa do Google usa um método específico (generate_content_stream) em vez de uma flag booleana.
| SDK da OpenAI | SDK do Google Gen AI |
|---|---|
|
|
A seguir
- Saiba como usar bibliotecas da OpenAI com a Vertex AI.
- Confira exemplos de código para compatibilidade com a OpenAI.
- Comece com o guia de início rápido do SDK da IA generativa do Google.