2026-04-15
Como usar DeepSeek V4 em Python: do zero até produção
DeepSeek V4 expõe uma API compatível com OpenAI, então em Python você não precisa aprender SDK novo: o pacote openai padrão funciona igualzinho, basta trocar o base URL e a API Key. Este guia cobre instalação, primeira chamada, streaming, tool use e controle de custo em escala.
1. Instalar o SDK e configurar a API Key
Não existe pacote DeepSeek-específico. O openai oficial em Python fala o endpoint direto. Guarde a chave em variável de ambiente, nunca no código.
Obtenha a chave no console oficial do DeepSeek ou em /pricing (mesma API, mais barato). Coloque no shell como DEEPSEEK_API_KEY.
pip install "openai>=1.40.0" python-dotenv
echo "DEEPSEEK_API_KEY=sk-..." >> .env2. Primeira chat completion
Crie o cliente OpenAI apontando base_url para o endpoint DeepSeek. chat.completions.create é idêntico ao da OpenAI; muda só o nome do modelo: deepseek-chat para uso geral, deepseek-reasoner para raciocínio profundo.
import os
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com/v1",
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "Write a Python one-liner to flatten a nested list."},
],
temperature=0.2,
)
print(response.choices[0].message.content)
print("tokens used:", response.usage.total_tokens)3. Streaming para UIs responsivas
Em chat, CLI ou loop de agente você quer tokens aparecendo enquanto são gerados. Passe stream=True e itere pelos chunks. Cada chunk é um delta compatível com OpenAI.
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Explain MoE in 3 sentences."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)4. Function calling (tool use)
V4 suporta tool use estilo OpenAI: você declara JSON Schema, o modelo decide quando chamar, você executa e devolve o resultado no próximo turno. Bem mais estável que o V3.
Valide sempre os argumentos que o modelo devolve antes de executar. Trate como entrada não confiável.
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Weather in Tokyo?"}],
tools=tools,
)
call = response.choices[0].message.tool_calls[0]
# call.function.name == "get_weather"
# call.function.arguments == '{"city":"Tokyo"}'5. Controlar o custo de tokens
Entrada e saída são cobradas separadamente, saída ~2× o preço da entrada. O system prompt e o histórico contam como entrada, então conversas longas inflam a conta rapidamente.
Três táticas: system prompt curto e estável (cacheável), sumarizar turnos antigos quando passar de ~6k tokens, limitar max_tokens. Para volume alto, /pricing oferece chaves oficiais com desconto.
FAQ
Preciso de SDK Python específico do DeepSeek?
Não. O pacote openai padrão funciona, assim como LangChain, LlamaIndex e Instructor.
deepseek-chat ou deepseek-reasoner?
Comece com deepseek-chat. Troque para deepseek-reasoner em matemática, lógica rígida ou cadeias longas.
Dá para usar asyncio?
Sim. Use AsyncOpenAI no lugar de OpenAI, o resto é igual.
Onde consigo chave mais barata?
Em /pricing oferecemos chaves oficiais com desconto.
Python + DeepSeek V4 é o caminho mais curto para um stack LLM em produção em 2026: SDK familiar, qualidade próxima ao GPT-4o e preço que cabe em projetos reais.