Nodig vrienden uit en verdien gratis tokens!Meer weten

Chat Completion aanmaken - DeepSeek v3.1 controle van denkniveau (streaming)

Deze endpoint wordt gebruikt om een chatgesprek met het DeepSeek v3.1-model aan te maken. Ondersteunt streaming-uitvoer (SSE) en nauwkeurige controle over het diep nadenken van het model (Thinking).

Endpointdetails

  • Status van de endpoint: Uitgebracht (Released)
  • HTTP-methode: POST
  • Request-URL: https://api.codingplanx.ai/v1/chat/completions

Request-headers (Headers)

ParameternaamVerplichtTypeVoorbeeldwaardeBeschrijving
Content-TypeJaStringapplication/jsonGegevensformaat
AcceptJaStringapplication/jsonVerwacht responsformaat
AuthorizationNeeStringBearer {{YOUR_API_KEY}}Authenticatiegegevens (in de praktijk meestal verplicht)

(Opmerking: de X-Forwarded-Host header is momenteel uitgeschakeld)


Request-body (Request Body)

Content-Type: application/json

ParameternaamVerplichtTypeBeschrijving
modelJaStringDe ID van het te gebruiken model. Bijvoorbeeld: deepseek-v3-1-250821
messagesJaArray of ObjectsDe lijst met berichten in het gesprek.
? roleJaStringDe rol van de afzender van het bericht (zoals system, user, assistant).
? contentJaStringDe concrete inhoud van het bericht.
max_tokensNeeIntegerBeperkt het maximale aantal completion-tokens dat het model in één request mag genereren. De totale lengte van input- en outputtokens blijft beperkt door de contextlimiet van het model.
temperatureNeeNumberSampling-temperatuur, tussen 0 en 2. Hogere waarden (zoals 0.8) maken de uitvoer willekeuriger; lagere waarden (zoals 0.2) maken de uitvoer geconcentreerder en deterministischer.
streamNeeBooleanAls dit op true staat, worden berichtincrementen als SSE (server-sent events) gestreamd. De stream eindigt met data: [DONE].
stream_optionsNeeObjectOpties voor streaming-uitvoer. Deze parameter kan alleen worden ingesteld als stream op true staat.
? include_usageNeeBooleanAls dit op true staat, wordt vóór data: [DONE] een extra chunk verzonden. In deze chunk toont het veld usage de tokenverbruiksstatistieken van de volledige request.
thinkingNeeObjectSommige modellen met diep-denkcapaciteit ondersteunen via dit veld controle over het in- of uitschakelen van diep nadenken.
? typeNeeStringenabled: diep nadenken geforceerd inschakelen.<br>disabled: geforceerd uitschakelen.<br>auto: het model beslist zelf.

Voorbeeld van request

{
  "model": "deepseek-v3-1-250821",
  "max_tokens": 1000,
  "messages": [
    {
      "role": "system",
      "content": "Je bent een behulpzame assistent."
    },
    {
      "role": "user",
      "content": "Hallo"
    }
  ],
  "temperature": 1.0,
  "stream": true,
  "stream_options": {
    "include_usage": true
  },
  "thinking": {
    "type": "enabled"
  }
}

Response-body (Response)

HTTP-statuscode: 200 OK
Content-Type: application/json

(Opmerking: wanneer stream: true is ingesteld, is het retourformaat een SSE-datastroom; elke data-chunk is een JSON-string met de onderstaande structuur. Hieronder staat de standaard JSON-structuur voor niet-streaming of voor een volledig samengevoegde streaming-respons.)

VeldnaamTypeBeschrijving
idStringUnieke identificatie van de request.
objectStringObjecttype, meestal chat.completion of chat.completion.chunk.
createdIntegerTijdstempel van aanmaak (in seconden).
choicesArray of ObjectsLijst met door het model gegenereerde antwoorden.
? indexIntegerDe index van dit antwoord in de lijst choices.
? messageObjectHet gegenereerde antwoordbericht (bij streaming meestal delta).
   ? roleStringRol (meestal assistant).
   ? contentStringDe concrete inhoud van het antwoord.
? finish_reasonStringDe reden waarom de generatie stopte (zoals stop, length).
usageObjectStatistieken over tokengebruik.
? prompt_tokensIntegerAantal tokens verbruikt door de prompt.
? completion_tokensIntegerAantal tokens verbruikt door de gegenereerde inhoud.
? total_tokensIntegerTotaal aantal verbruikte tokens.

Voorbeeld van response (JSON)

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\r
\r
Hallo, waarmee kan ik je vandaag helpen?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

Veelgestelde vragen (FAQs)

V1: Hoe krijg ik tokenverbruiksinformatie (usage) bij een streaming (SSE) request?
A1: Je moet in de request-body stream op true zetten en daarnaast stream_options: {"include_usage": true} configureren. Dan pusht de server vóór het einde van de SSE-stream (data: [DONE]) een extra data-chunk. In deze chunk is de array choices leeg, maar bevat het veld usage de volledige tokenstatistieken.

V2: Wat is het verschil tussen enabled en auto in de parameter thinking?
A2:

  • enabled: dwingt het model om vóór het geven van het definitieve antwoord “diep na te denken (Chain of Thought)”. Dit levert doorgaans betere redeneerresultaten op, maar kan ook de responstijd (tijd tot eerste token) en het aantal outputtokens verhogen.
  • auto: laat de beslissing aan het model over. Het model beoordeelt op basis van de complexiteit van je vraag in messages automatisch of diep nadenken nodig is.

V3: Waarom krijg ik een 401 Unauthorized-foutmelding?
A3: Dit betekent meestal dat de authenticatie is mislukt. Controleer of het veld Authorization in je request-header correct is ingevuld volgens het formaat Bearer {{YOUR_API_KEY}}, en of je API-sleutel geldig en niet verlopen is.

V4: Wordt de inhoud van het denkproces teruggegeven wanneer thinking is ingeschakeld?
A4: Volgens de standaard OpenAI-compatibele implementatie kan de inhoud van diep nadenken bij streaming-uitvoer worden teruggegeven binnen specifieke markeringen (zoals tags <think>...</think>) of via specifieke chunk-velden. Let er daarom bij het parseren van de front-end streamdata op dat je de denkprocesinhoud in content correct verwerkt, zodat je een “aan het nadenken”-UI-effect aan gebruikers kunt tonen.

V5: Wat betekent finish_reason: "length"?
A5: Dit betekent dat de uitvoer van het model de door jou ingestelde limiet max_tokens heeft bereikt, of dat de maximale contextwindow van het model zelf is geraakt, waardoor het antwoord is afgekapt. Als het antwoord onvolledig is, kun je proberen de waarde van max_tokens te verhogen.