PolarPOLAR

Migrar da OpenAI

Guia passo a passo para migrar da API OpenAI para a Polar. Mapeamento de modelos, mudanças de código e comparação de funcionalidades.

Visão Geral

A API Polar é compatível com o formato OpenAI, o que significa que a migração pode ser feita com mudanças mínimas no código. Na maioria dos casos, basta alterar a base_url e a api_key.

Passo 1: Alterar Base URL

Substitua a URL base da OpenAI pela da Polar:

from openai import OpenAI

# Antes (OpenAI)
client = OpenAI(
    api_key="sk-..."
)

# Depois (Polar)
client = OpenAI(
    base_url="https://api.polarai.com.br/v1",
    api_key="pk-sua-chave-aqui"
)

Passo 2: Alterar API Key

Substitua sua chave OpenAI (sk-...) pela chave Polar (pk-...):

# Antes
export OPENAI_API_KEY="sk-..."

# Depois
export POLAR_API_KEY="pk-..."
import os

# Antes
api_key = os.environ.get("OPENAI_API_KEY")

# Depois
api_key = os.environ.get("POLAR_API_KEY")

Passo 3: Mapear Modelos

Substitua os modelos OpenAI pelos equivalentes Polar:

OpenAIPolarNotas
gpt-4ourso-bah (em breve)Modelo avançado, alta qualidade — hoje use urso-mabe
gpt-4o-miniurso-mabeModelo leve e rápido
gpt-4-turbourso-guto (em breve)Uso geral — hoje use urso-mabe
gpt-3.5-turbourso-mabeModelo econômico
text-embedding-3-smallurso-embedEmbeddings otimizados para PT-BR
text-embedding-3-largeurso-embedModelo único de embeddings
o1urso-bah-think (em breve)Com raciocínio explícito
o1-miniurso-guto-think (em breve)Raciocínio com custo menor

Passo 4: Comparação de Funcionalidades

FuncionalidadeOpenAIPolarNotas
Chat CompletionsSimSimCompatível
StreamingSimSimCompatível
Function CallingSimSimCompatível + ferramentas BR
Structured OutputSimSimresponse_format: json_schema
VisionSimSimurso-mabe (urso-guto e urso-bah (em breve))
EmbeddingsSimSimOtimizado para PT-BR
Batch APISimSimCompatível
Audio (TTS/STT)SimUrso EcoArquitetura diferente (WebSocket)
Image GenerationDALL-ENãoNão disponível
Fine-tuningSimNãoEm desenvolvimento

Passo 5: Exemplos de Migração

Chat Completions

from openai import OpenAI

# A mudança é apenas base_url, api_key e model
client = OpenAI(
    base_url="https://api.polarai.com.br/v1",
    api_key="pk-sua-chave-aqui"
)

response = client.chat.completions.create(
    model="urso-mabe",  # Ex.: era "gpt-4o"; até `urso-bah` *(em breve)*
    messages=[
        {"role": "system", "content": "Você é um assistente útil."},
        {"role": "user", "content": "O que é a LGPD?"}
    ],
    temperature=0.7,
    max_tokens=1000,
    stream=True
)

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

Function Calling

# Funciona exatamente igual — mesma interface
response = client.chat.completions.create(
    model="urso-mabe",
    messages=[{"role": "user", "content": "Qual o endereço do CEP 01001-000?"}],
    tools=[
        {
            "type": "function",
            "function": {
                "name": "buscar_cep",
                "description": "Busca endereço por CEP",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "cep": {"type": "string", "description": "CEP no formato 00000-000"}
                    },
                    "required": ["cep"]
                }
            }
        }
    ],
    tool_choice="auto"
)

Embeddings

# Mesma interface, modelo diferente
response = client.embeddings.create(
    model="urso-embed",  # Era "text-embedding-3-small"
    input="Direito do consumidor brasileiro"
)

embedding = response.data[0].embedding
print(f"Dimensões: {len(embedding)}")

Structured Output

response = client.chat.completions.create(
    model="urso-mabe",
    messages=[
        {"role": "user", "content": "Extraia o nome e CPF: João Silva, CPF 123.456.789-00"}
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "pessoa",
            "schema": {
                "type": "object",
                "properties": {
                    "nome": {"type": "string"},
                    "cpf": {"type": "string"}
                },
                "required": ["nome", "cpf"]
            }
        }
    }
)

Diff Resumido

Para a maioria dos projetos, a migração se resume a estas mudanças:

  from openai import OpenAI

  client = OpenAI(
-     api_key="sk-..."
+     base_url="https://api.polarai.com.br/v1",
+     api_key="pk-sua-chave-aqui"
  )

  response = client.chat.completions.create(
-     model="gpt-4o",
+     model="urso-mabe",
      messages=[
          {"role": "user", "content": "Olá, mundo!"}
      ]
  )

Vantagens da Migração

  • Performance em PT-BR: Modelos treinados nativamente em português brasileiro
  • Ferramentas brasileiras: CEP, CNPJ, legislação e processos judiciais integrados
  • Preço em BRL: Sem variação cambial, preços competitivos
  • Jurisia: IA jurídica especializada (exclusivo)
  • Urso Eco: Voice chat em tempo real
  • Soberania de dados: Dados processados no Brasil

Perguntas Frequentes

A SDK OpenAI funciona com a Polar? Sim. A SDK oficial da OpenAI funciona perfeitamente com a Polar, basta alterar base_url e api_key.

Preciso mudar o formato das mensagens? Não. O formato de mensagens (role/content) é idêntico.

O streaming funciona da mesma forma? Sim. O streaming via SSE funciona de forma idêntica.

Posso usar as duas APIs simultaneamente? Sim. Basta criar duas instâncias do cliente com configurações diferentes.

On this page