Como migrar da OpenAI para o DeepSeek V4 Pro 0813 mudando só a base URL

migração da OpenAI para o DeepSeek V4 Pro trocando apenas a base URL do código
Resposta rápida

O DeepSeek V4 Pro fala o mesmo protocolo do SDK da OpenAI, então migrar um projeto que já roda não é reescrita: é configuração. Tu aponta a base URL pra https://api.deepseek.com, troca a chave e usa o identificador deepseek-v4-pro (que já é a build 0813, em versão de produção desde 12/08/2026). Chat, function calling e Responses API continuam funcionando. O trabalho real vem depois: reconferir o nome do modelo, o novo campo reasoning_content, os parâmetros de amostragem que somem no modo pensante e o pipeline de embeddings, que não existe nessa API.

Fala aí, beleza? Se o teu projeto já roda com o SDK da OpenAI, ele não precisa ser reescrito pra falar com o DeepSeek V4 Pro

A API do DeepSeek é compatível com esse mesmo SDK, então a migração se resume a três coisas: base URL, chave e nome do modelo

E o timing ajuda: a build 0813 saiu do preview e virou versão de produção (GA), disponível desde 12/08/2026

Neste post eu mostro a virada linha a linha e, principalmente, o que tu precisa reconferir DEPOIS dela, que é onde mora o trabalho de verdade

O que você precisa antes de migrar

Antes de abrir qualquer arquivo, três coisas na mesa:

  • Um projeto já rodando com o SDK da OpenAI (é isso que torna a troca barata)
  • Uma chave de API do DeepSeek
  • A decisão de qual identificador vai entrar no código: deepseek-v4-pro ou deepseek-v4-flash
Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 116 aulas
  • 4 projetos
  • 9h 23min

Esses dois são os únicos nomes de modelo válidos hoje na API, então não tem meio termo aqui

Se tu ainda tá na dúvida sobre qual chamar em cada parte do sistema, vale ler qual usar em cada tarefa antes de fixar o nome

Tome cuidado com um detalhe de escopo: a API do DeepSeek não oferece endpoint de embeddings

A lista oficial de modelos traz só deepseek-v4-pro e deepseek-v4-flash, nada de embeddings

Ou seja: se teu projeto gera vetor pra busca semântica ou RAG, esse pedaço continua em outro provedor

A migração é do chat, não do pipeline inteiro, beleza?

Passo a passo da migração para o DeepSeek V4 Pro 0813

São dois passos no código, e é neles que moram as três trocas prometidas

Os exemplos abaixo estão em Python com o SDK da OpenAI, mas a ideia é a mesma em qualquer linguagem: tu só reconfigura o cliente

1. Trocar a base URL e a chave

É o coração da migração. O cliente continua sendo o mesmo, só aponta pra outro endereço

from openai import OpenAI

client = OpenAI(
    api_key="SUA_CHAVE_DEEPSEEK",
    base_url="https://api.deepseek.com"
)

O erro comum deste passo: inventar sufixo de versão na URL

A documentação oficial da API usa https://api.deepseek.com desse jeito, limpo, sem sufixo

Se tu tem uma variável de ambiente antiga com a URL da OpenAI hardcoded em algum lugar esquecido, é ali que a chamada vai continuar batendo no provedor velho e tu vai jurar que a migração falhou 🙂

2. Trocar o nome do modelo

Segundo ponto, e é literalmente uma string

resposta = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "user", "content": "Resuma este changelog em 3 linhas"}
    ]
)

O identificador deepseek-v4-pro já aponta pra build DeepSeek-V4-Pro-0813, então tu não precisa escrever a data em lugar nenhum

Basta usar deepseek-v4-pro pra acessar a versão mais recente

O erro comum deste passo: copiar nome legado de tutorial antigo

deepseek-chat e deepseek-reasoner foram descontinuados em 24/07/2026 e não respondem mais

E pronto: a migração acaba aqui, base URL, chave e nome do modelo

Depois da migração: os parâmetros que só existem no DeepSeek

Nada do que vem abaixo é necessário pra virar a chave

É o que passa a estar DISPONÍVEL depois da troca, mais um detalhe de formato na resposta que engana muita gente

Ligar (ou desligar) o modo de raciocínio

Aqui aparece o primeiro parâmetro que não existe no mundo OpenAI: o thinking

Como o SDK não conhece esse campo, ele vai via extra_body

resposta = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "user", "content": "Refatore esta função e explique o porquê"}
    ],
    extra_body={
        "thinking": {"type": "enabled"}
    }
)

Pra desligar, é o tipo disabled no mesmo lugar

O erro comum aqui: continuar mandando temperature e top_p achando que ainda mandam no resultado

No modo pensante esses parâmetros não são suportados. E o pior: definir eles não gera erro, só não tem efeito nenhum

Ajustar o esforço de raciocínio (se quiser)

Existe o reasoning_effort pra controlar quanto o modelo pensa antes de responder

O padrão é high, e tem o nível max, descrito como o de maior capacidade de raciocínio

resposta = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "Analise este plano de migração"}],
    extra_body={
        "thinking": {"type": "enabled"},
        "reasoning_effort": "max"
    }
)

O erro comum aqui: mexer nisso sem necessidade

Como o padrão já é high, na maior parte dos casos tu não precisa tocar em nada. Só sobe pra max quando a tarefa realmente pede mais cabeça

Tratar o reasoning_content na resposta

Esse é o detalhe que a galera esquece e depois passa a tarde debugando, e ele só aparece se tu ligou o modo pensante

Nesse modo, o conteúdo do raciocínio vem em reasoning_content, no MESMO nível de content

msg = resposta.choices[0].message

raciocinio = getattr(msg, "reasoning_content", None)
texto = msg.content

print(raciocinio)
print(texto)

Se tu reenviar o reasoning_content de volta no histórico da conversa, ele é ignorado

O erro comum aqui: tratar a resposta como se ela tivesse só content e concluir que "o modelo não raciocinou"

Ele raciocinou, teu parser é que não olhou o campo novo 😀

O que continua igual e o que você precisa reconferir

A parte boa da compatibilidade é que a maior parte do teu código nem percebe a troca

A parte que exige atenção é curta, mas é justamente onde o silêncio engana

A compatibilidade cobre O que exige reconferência
Chamadas de chat pelo SDK da OpenAI, só trocando base URL e chave Nome do modelo: só deepseek-v4-pro e deepseek-v4-flash respondem
Function calling e tool calls, com guias oficiais próprios na documentação Ausência de endpoint de embeddings, que precisa ficar em outro provedor
Responses API suportada, com parâmetros não reconhecidos ignorados silenciosamente temperature, top_p, presence_penalty e frequency_penalty sem efeito no modo pensante
Clientes existentes conectando sem modificação, já que parâmetro estranho não vira erro Campo novo na resposta: reasoning_content, no mesmo nível de content
O mesmo formato de mensagens que tu já usa hoje Limites do V4 Pro: 1.000.000 de tokens de contexto e até 384.000 de saída por requisição

E tem ainda duas base URLs alternativas que valem conhecer antes de tu sair configurando:

  • https://api.deepseek.com/beta pra funcionalidades beta
  • https://api.deepseek.com/anthropic pro formato compatível com a API da Anthropic

Nesse endpoint da Anthropic o mapeamento é direto: nomes claude-opus viram deepseek-v4-pro, e claude-sonnet e claude-haiku viram deepseek-v4-flash

Massa pra quem tem os dois formatos convivendo no mesmo produto

Erros comuns depois da virada (e como resolver)

O modelo simplesmente não responde

Sintoma: a chamada sai, mas nada útil volta e o pipeline quebra logo depois

Causa: nome legado no código. deepseek-chat e deepseek-reasoner foram descontinuados em 24/07/2026

Solução: trocar pelo identificador explícito, deepseek-v4-pro ou deepseek-v4-flash, que são os únicos que respondem hoje

Os parâmetros de amostragem não mudam nada

Sintoma: tu mexe em temperature, mexe em top_p, e a saída continua igualzinha

Causa: no modo pensante esses parâmetros não são suportados, junto com presence_penalty e frequency_penalty

Solução: parar de calibrar o que não tem efeito ali. Como definir esses campos não gera erro, o sistema fica mudo e tu perde tempo achando que é problema de prompt

Um parâmetro foi enviado e ninguém avisou que ele sumiu

Sintoma: o cliente conectou de primeira na Responses API, tudo lindo, mas um comportamento específico não acontece

Causa: na Responses API os parâmetros não suportados são ignorados silenciosamente, sem erro. É exatamente isso que permite plugar cliente existente sem modificação

Solução: validar o comportamento pela RESPOSTA, não pela ausência de exceção. Silêncio ali não é sinal de sucesso

O trecho de embeddings quebrou

Sintoma: a parte de chat migrou lisa, e a indexação parou

Causa: não existe modelo de embeddings na API do DeepSeek

Solução: isolar o que não é chat e deixar essa chamada apontando pro provedor antigo

A prevenção pros quatro casos é a mesma receita: fixa o identificador explícito, valida a resposta em vez de confiar no silêncio, e separa no código o que é chat do que não é

Quando essa troca compensa (e quando não)

O argumento mais direto é preço somado a janela de contexto

O deepseek-v4-pro está hoje em US$ 0,435 por 1 milhão de tokens de entrada em cache miss, US$ 0,003625 por 1 milhão em cache hit e US$ 0,87 por 1 milhão de tokens de saída

Junta isso com 1.000.000 de tokens de contexto e tu tem um cenário confortável pra quem manda base de código inteira ou documento gigante na chamada

No índice de inteligência do Artificial Analysis, o DeepSeek V4 Pro 0813 (max) aparece com 53 pontos, e se tu quer entender melhor como escolher entre as variantes antes de decidir, o assunto rende post próprio

Aviso de calendário, e esse é importante: novos preços entram em vigor às 16:00 UTC de 16/08/2026

A cobrança passa a ter horário de pico e fora de pico, sendo o fora de pico pela metade do valor de pico

As janelas de pico são 01:00 às 04:00 e 06:00 às 10:00 UTC

Vale ter isso no radar se tu roda job pesado em horário fixo

Pra dar contexto do que tu tá chamando: o V4 Pro é uma arquitetura de mistura de especialistas (MoE) com 1,6 trilhão de parâmetros totais e 49 bilhões ativos por token, pré-treinado em mais de 32 trilhões de tokens

Insano, né?

Agora, quando NÃO compensa: se teu produto é basicamente um pipeline de embeddings com um chatzinho em cima, a migração te dá dor de cabeça e pouco ganho

Sem endpoint de embeddings, tu vai manter dois provedores no ar de qualquer jeito, e aí a conta muda de figura

Conclusão

A virada pro DeepSeek V4 Pro 0813 é de configuração, não de reescrita

Base URL, chave e nome do modelo, e teu código de chat já tá conversando com outro provedor

O trabalho de verdade é a reconferência: o campo reasoning_content que aparece no modo pensante, os parâmetros de amostragem que somem ali, o parâmetro ignorado sem aviso e o pedaço de embeddings que não tem pra onde ir

Próximo passo concreto: migra um ambiente de teste primeiro, roda as chamadas de tool calling, confere a resposta campo a campo, e só depois encosta em produção

E deixa a data de 16/08/2026 anotada, porque a conta muda ali…

até o próximo post! 😀

Perguntas frequentes

Quanto custa usar o DeepSeek V4 Pro pela API hoje?

O preço vigente é US$ 0,435 por 1 milhão de tokens de entrada em cache miss, US$ 0,003625 por 1 milhão em cache hit e US$ 0,87 por 1 milhão de tokens de saída. Vale ficar de olho: às 16:00 UTC de 16/08/2026 entra uma nova tabela, com cobrança diferente em horário de pico (01:00 às 04:00 e 06:00 às 10:00 UTC) e fora de pico pela metade do valor.

Dá pra usar o DeepSeek V4 Pro com o SDK da Anthropic, e não só com o da OpenAI?

Dá sim. A DeepSeek mantém um endpoint compatível com o formato da API da Anthropic em base_url = https://api.deepseek.com/anthropic. Nesse endpoint, nomes como claude-opus são mapeados pra deepseek-v4-pro, e claude-sonnet ou claude-haiku caem em deepseek-v4-flash.

Qual o tamanho da janela de contexto do DeepSeek V4 Pro?

O V4 Pro trabalha com até 1.000.000 de tokens de contexto. A saída máxima por requisição chega a 384.000 tokens.

Qual a arquitetura por trás do DeepSeek V4 Pro?

É um modelo de mistura de especialistas (MoE) com 1,6 trilhão de parâmetros totais, dos quais 49 bilhões ficam ativos por token. O pré-treino usou mais de 32 trilhões de tokens.

Para que serve o endpoint beta da API do DeepSeek?

É um endereço separado do endpoint principal, em base_url = https://api.deepseek.com/beta, reservado pra funcionalidades beta. Ou seja, ele fica fora do endpoint padrão usado na migração deste post.

Qual a pontuação do DeepSeek V4 Pro em benchmark de inteligência?

Na página viva do Artificial Analysis, o DeepSeek V4 Pro 0813 (max) marca 53 pontos no Artificial Analysis Intelligence Index. Como é uma página viva, esse número pode mudar conforme o índice é recalculado.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares