API-ul DeepSeek folosește un format compatibil cu OpenAI și cu Anthropic, deci SDK-urile lor și uneltele construite pe ele funcționează după ce schimbi adresa și cheia. Pentru formatul OpenAI (Chat Completions și Responses API), base_url este https://api.deepseek.com; pentru formatul Anthropic, https://api.deepseek.com/anthropic. Modelele sunt deepseek-flash și deepseek-v4-pro (vezi modele și prețuri); deepseek-chat și deepseek-reasoner au fost retrase în iulie 2026. API-ul este fără stare: serverul nu păstrează conversația, deci fiecare cerere trimite istoricul. Modul thinking este activ implicit, iar raționamentul vine în reasoning_content (vezi modul thinking).
În formatul Anthropic, numele de model care încep cu claude-opus sunt mapate la deepseek-v4-pro, iar celelalte nume claude* la deepseek-flash; alte nume necunoscute dau eroarea 400. Câmpuri ca top_k, cache_control, mcp_servers și container sunt ignorate, budget_tokens din thinking este ignorat, iar blocurile document și redacted_thinking nu sunt acceptate. Prin același endpoint, DeepSeek poate fi folosit ca backend pentru Claude Code; pentru Codex, documentația folosește Responses API.
Pentru producție, documentația precizează trei lucruri. Limita de concurență este pe cont (2500 de cereri simultane pentru deepseek-flash, 500 pentru deepseek-v4-pro), indiferent de cheie; peste ea primești 429, iar mărirea limitei se cere gratuit. Cât timp o cerere așteaptă, serverul trimite linii goale (fără streaming) sau comentarii SSE : keep-alive (cu streaming); dacă inferența nu a început în 10 minute, serverul închide conexiunea. Parametrul user_id separă utilizatorii aplicației tale pentru verificarea conținutului, cache-ul KV (vezi context caching) și programarea cererilor.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
base_url (format OpenAI) |
https://api.deepseek.com, pentru Chat Completions și Responses API. |
base_url (format Anthropic) |
https://api.deepseek.com/anthropic; antetul x-api-key este acceptat, anthropic-version este ignorat. |
base_url (Beta) |
https://api.deepseek.com/beta, pentru FIM, Chat Prefix Completion și tool calls în modul strict. |
model |
deepseek-flash sau deepseek-v4-pro. |
reasoning_content |
Raționamentul în modul thinking, separat de content. |
user_id |
Identificatorul utilizatorului tău final: cu SDK-ul OpenAI prin extra_body, în formatul Anthropic prin metadata.user_id. |
400 / 422 |
Corp de cerere invalid / parametri invalizi: corectează după mesajul de eroare. |
401 / 402 |
Cheie API greșită / sold insuficient. |
429 |
Prea multe cereri sau limita de concurență depășită. |
500 / 503 |
Eroare de server / server supraîncărcat: reîncearcă după o scurtă pauză. |
finish_reason |
stop, length, content_filter, tool_calls, insufficient_system_resource, aborted. |
Exemple practice și scenarii reale
Exemplul 1: SDK-ul OpenAI, cu raționament separat
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
)
r = client.chat.completions.create(
model="deepseek-flash",
messages=[
{"role": "system", "content": "Ești un asistent juridic. Răspunde concis."},
{"role": "user", "content": "Ce riscuri are un contract de licență exclusivă?"},
],
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}},
)
mesaj = r.choices[0].message
print(mesaj.reasoning_content) # raționamentul (doar în thinking)
print(mesaj.content) # răspunsul final
Exemplul 2: SDK-ul Anthropic
Variabilele de mediu sunt cele din ghidul oficial; clientul Anthropic le citește automat.
# export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
# export ANTHROPIC_API_KEY=<cheia DeepSeek>
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="deepseek-flash",
max_tokens=1000,
system="Ești un asistent util.",
messages=[{"role": "user", "content": [{"type": "text", "text": "Salut, ce poți face?"}]}],
)
print(message.content)
Exemplul 3: Claude Code cu modelele DeepSeek
Configurația din ghidul oficial de integrare (Linux / macOS).
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<cheia DeepSeek>
export ANTHROPIC_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432
cd /calea/proiectului && claude
Exemplul 4: Reîncercări la 429 / 500 / 503 și user_id
import os, time
from openai import OpenAI, APIStatusError
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
timeout=900, # răspunsurile în thinking pot dura; serverul trimite keep-alive
)
def cere(messages, user_id, incercari=4):
for i in range(incercari):
try:
return client.chat.completions.create(
model="deepseek-flash",
messages=messages,
extra_body={"user_id": user_id},
)
except APIStatusError as e:
if e.status_code in (429, 500, 503) and i < incercari - 1:
time.sleep(2 ** i)
continue
raise
Greșeli frecvente și capcane
- Folosești
deepseek-chatsaudeepseek-reasonerdin exemple vechi. Nu mai sunt accesibile; alegedeepseek-flashsaudeepseek-v4-pro. - Setezi
temperatureși te aștepți să schimbe răspunsul în modul thinking. Nu are efect acolo (fără eroare);presence_penaltyșifrequency_penaltynu mai au efect în niciun mod. - Folosești un timeout HTTP scurt sau un parser propriu care nu tolerează liniile goale și comentariile
: keep-alive. Ambele apar cât timp cererea așteaptă. - Pui date personale în
user_id. Documentația cere explicit să nu o faci; folosește un identificator intern.
Întrebări & Exemple practice:
API-ul DeepSeek în producție: formatele OpenAI, Anthropic și ResponsesAi o întrebare despre API-ul DeepSeek în producție: formatele OpenAI, Anthropic și Responses sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.