API-ul DeepSeek în producție: formatele OpenAI, Anthropic și Responses în DeepSeek (V4 & R1)

API-ul DeepSeek acceptă formatele OpenAI (Chat Completions, Responses) și Anthropic, cu modelele deepseek-flash și deepseek-v4-pro; pagina adună configurarea, erorile, limitele de concurență și practicile de producție.

Sintaxă & invocare
base_url="https://api.deepseek.com"              # OpenAI: Chat Completions, Responses API
base_url="https://api.deepseek.com/anthropic"    # Anthropic Messages
model="deepseek-flash"  sau  model="deepseek-v4-pro"

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-chat sau deepseek-reasoner din exemple vechi. Nu mai sunt accesibile; alege deepseek-flash sau deepseek-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 și frequency_penalty nu 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.

Noțiuni și module înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: API-ul DeepSeek în producție: formatele OpenAI, Anthropic și Responses

Ai 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.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.