Tutorial da API DeepSeek: V4 Flash / Pro com Python e JavaScript
Chame o DeepSeek V4 Flash e Pro através do APIMaster com curl, Python e JavaScript. Configure sua chave de API, transmita respostas e solucione erros comuns.
Você pode chamar o DeepSeek com o SDK da OpenAI? Sim. Através do APIMaster, defina a URL base da API como https://apimaster.ai/v1, use sua chave de API do APIMaster e selecione deepseek-v4-flash ou deepseek-v4-pro. Este guia cobre essa configuração de gateway; uma chave emitida por outro provedor não é intercambiável.
Último teste: 2026-09-07. Ambos os modelos retornaram HTTP 200 e o texto esperado em nosso teste de Chat Completions. Codex CLI 0.153.4 e Claude Code 2.1.239 também concluíram testes de ferramentas de leitura de texto e arquivo através do mesmo gateway. Estas são verificações funcionais curtas, não um benchmark de contexto longo ou confiabilidade. Os exemplos em Python, JavaScript e streaming abaixo demonstram o uso correspondente da API; eles não são resultados de benchmark separados.
1. Obtenha sua chave e escolha um modelo
Crie uma conta e obtenha uma chave de API. Garanta que a chave tenha acesso ao modelo selecionado e cota suficiente. Verifique os preços atuais no marketplace de modelos; as tarifas podem variar por rota e horário.
| Configuração | Valor |
|---|---|
| URL base do SDK | https://apimaster.ai/v1 |
| Endpoint HTTP | POST https://apimaster.ai/v1/chat/completions |
| Autorização | Authorization: Bearer YOUR_APIMASTER_API_KEY |
| Modelo Flash | deepseek-v4-flash |
| Modelo Pro | deepseek-v4-pro |
Ambos os modelos usam o mesmo formato de solicitação. Comece com qualquer um dos modelos e depois compare os resultados em sua própria carga de trabalho. Substitua YOUR_APIMASTER_API_KEY abaixo pela sua chave localmente; não a envie para o controle de versão nem a coloque em código de navegador.
macOS / Linux:
export APIMASTER_API_KEY='YOUR_APIMASTER_API_KEY'
Windows PowerShell:
$env:APIMASTER_API_KEY = 'YOUR_APIMASTER_API_KEY'
Essas variáveis se aplicam ao terminal atual. Execute os exemplos a seguir nesse terminal.
2. Faça sua primeira solicitação com curl
O comando a seguir usa sintaxe de shell macOS / Linux. Usuários do Windows podem usar o exemplo Python multiplataforma abaixo.
curl --fail-with-body 'https://apimaster.ai/v1/chat/completions' \
-H "Authorization: Bearer $APIMASTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Reply with exactly: DEEPSEEK_TEST_OK"}],
"max_tokens": 256,
"stream": false
}'
Esperado: HTTP 200 e choices[0].message.content igual a DEEPSEEK_TEST_OK. Altere apenas model para deepseek-v4-pro para repetir o teste. A resposta pode incluir um nome de modelo com versão; continue usando os IDs de modelo públicos acima nas solicitações.
3. Chame o DeepSeek a partir do Python
Instale o SDK:
python -m pip install openai
Salve como deepseek_example.py e execute python deepseek_example.py:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIMASTER_API_KEY"],
base_url="https://apimaster.ai/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Reply with exactly: DEEPSEEK_TEST_OK"}],
max_tokens=256,
)
print(response.choices[0].message.content)
Para uma tarefa de codificação, substitua o prompt pelos seus requisitos. Aumente o orçamento de saída para respostas mais longas; o orçamento curto de teste não é adequado para gerar um aplicativo completo.
4. Chame o DeepSeek a partir do JavaScript
Use um ambiente Node.js no lado do servidor:
npm install openai
Salve como deepseek_example.mjs e execute node deepseek_example.mjs:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIMASTER_API_KEY,
baseURL: "https://apimaster.ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-pro",
messages: [{ role: "user", content: "Reply with exactly: DEEPSEEK_TEST_OK" }],
max_tokens: 256,
});
console.log(response.choices[0].message.content);
5. Transmita a resposta final
Usando o client Python acima:
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Explain a Python dictionary in three sentences."}],
max_tokens=1024,
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)
print()
Isso imprime o texto da resposta final de content. Algumas respostas também expõem reasoning_content; ele é separado da resposta final. Não presuma que cada bloco de streaming contém texto ou uma entrada choices.
Solução de problemas
| Sintoma | O que verificar |
|---|---|
| 401 | Use uma chave APIMaster, verifique espaços em branco e o cabeçalho Bearer, e confirme se a variável de ambiente está definida neste terminal. |
| 403 ou erro de acesso ao modelo | Verifique as permissões de modelo da chave e as restrições da conta. |
| 404 | Use /v1/chat/completions; não duplique /v1 nem anexe o endpoint a uma URL base do SDK. |
| 429 ou cota insuficiente | Leia o corpo do erro para distinguir um limite de taxa de esgotamento de cota. Repita com backoff para limites de taxa; verifique o saldo para erros de cota. |
| Resposta vazia ou truncada | Inspecione finish_reason, aumente o orçamento de tokens e distinga content de campos de raciocínio. |
| Tempo limite ou 5xx | Registre o timestamp e o ID da solicitação, repita com backoff e entre em contato com o suporte se persistir. Nunca envie sua chave completa em um relatório de bug. |
Perguntas frequentes
A chave de API é a mesma que uma chave oficial do DeepSeek?
Não. Este tutorial usa uma chave emitida pela APIMaster com o endpoint da APIMaster. Mantenha a chave e o endpoint do provedor emissor pareados.
Posso alternar entre Flash e Pro sem reescrever minha integração?
Sim, altere o campo model entre deepseek-v4-flash e deepseek-v4-pro, desde que sua chave possa acessar ambos. Verifique a saída de cada modelo e o preço atual para sua carga de trabalho.
Uma solicitação bem-sucedida prova a identidade do modelo subjacente?
Não. O sucesso HTTP e um nome de modelo retornado estabelecem que uma solicitação foi concluída; eles não verificam independentemente a identidade do modelo.
Posso usar esses modelos no Codex e no Claude Code?
Nossas configurações testadas concluíram solicitações de ferramentas de leitura de texto e arquivo em ambos os CLIs. Os protocolos diferem: Codex usa /v1/responses, enquanto Claude Code usa /v1/messages. Siga os guias dedicados em vez de substituir o endpoint de Chat Completions em uma configuração de CLI.