Nodig vrienden uit en verdien gratis tokens!Meer weten

De inspanningsgraad van reasoning-modellen regelen (Chat Completions)

API-beschrijving

Gegeven een prompt retourneert dit model één of meerdere voorspelde completion-antwoorden (met ondersteuning voor het regelen van de denkinspanning van reasoning-modellen).

Verzoekbeschrijving

  • Methode: POST
  • Endpoint: https://api.codingplanx.ai/v1/chat/completions

Requestheaders (Headers)

ParameternaamVerplichtTypeVoorbeeldwaardeBeschrijving
Content-TypeJastringapplication/jsonGegevensformaat
AcceptJastringapplication/jsonVerwacht antwoordformaat
AuthorizationNeestringBearer {{YOUR_API_KEY}}Verificatiegegevens

Parameters van de requestbody (Body)

Gegevensformaat: application/json

ParameternaamVerplichtTypeBeschrijving
modelJastringDe ID van het model dat gebruikt moet worden (bijvoorbeeld o4-mini).
messagesJaarrayDe lijst met berichten die tot nu toe in het gesprek voorkomen. Bevat role (zoals user/assistant) en content (berichtinhoud).
toolsJaarrayEen lijst met tools (functies) die het model kan aanroepen. Wordt gebruikt om functies aan te bieden waarvoor het model JSON-invoer kan genereren.
tool_choiceJaobjectBepaalt welke functie het model moet aanroepen. none betekent niet aanroepen, auto betekent automatisch kiezen.
reasoning_effortNeestringKernparameter: regelt hoeveel inspanning (denkdiepte) het reasoning-model gebruikt bij het genereren van een antwoord. Veelgebruikte waarden zijn low, medium, high.
temperatureNeenumberSampling-temperatuur, tussen 0 en 2. Hogere waarden (zoals 0.8) maken de output willekeuriger; lagere waarden (zoals 0.2) maken deze meer gefocust en deterministisch. Aanbevolen wordt om slechts één van temperature of top_p aan te passen.
top_pNeenumberNucleus sampling. 0.1 betekent dat alleen tokens worden overwogen die samen de bovenste 10% kansmassa vormen. Aanbevolen wordt om slechts één van temperature of top_p aan te passen.
nNeeintegerStandaard is 1. Hoeveel chat completion-keuzes per invoerbericht moeten worden gegenereerd.
streamNeebooleanStandaard is false. Indien ingesteld op true, worden gedeeltelijke berichtincrementen verzonden via Server-Sent Events (SSE), en eindigt de stream met data: [DONE].
stopNeestringMaximaal 4 tekenreeksen waarop de API stopt met verdere token-generatie.
max_tokensNeeintegerHet maximale aantal tokens dat in de chat completion mag worden gegenereerd. De totale lengte van invoer plus gegenereerde tokens is beperkt door de contextlengte van het model.
presence_penaltyNeenumberEen getal tussen -2.0 en 2.0. Positieve waarden bestraffen tokens op basis van het al dan niet eerder voorkomen ervan, waardoor de kans toeneemt dat over nieuwe onderwerpen wordt gesproken.
frequency_penaltyNeenumberEen getal tussen -2.0 en 2.0. Positieve waarden bestraffen tokens op basis van hun huidige frequentie in de tekst, waardoor herhaling wordt verminderd.
logit_biasNeeobjectAccepteert een JSON-object dat token-ID's koppelt aan bias-waarden (-100 tot 100), om de kans te beïnvloeden dat bepaalde tokens in de completion verschijnen.
userNeestringEen unieke identifier voor de eindgebruiker, om monitoring en misbruikdetectie te ondersteunen.
response_formatNeeobjectGeeft het verplichte uitvoerformaat van het model aan. Bijvoorbeeld {"type": "json_object"} schakelt de JSON-modus in.
seenNeeintegerFunctionaliteit in testfase (vergelijkbaar met seed). Indien opgegeven, probeert het systeem zo deterministisch mogelijk te samplen, zodat dezelfde parameters dezelfde resultaten opleveren.

Voorbeeldrequest

{
  "model": "o4-mini",
  "max_tokens": 500,
  "messages": [
    {
      "role": "user",
      "content": "Hallo, kun je het principe van quantumcomputing gedetailleerd uitleggen?"
    }
  ],
  "temperature": 1.0,
  "stream": false,
  "reasoning_effort": "medium"
}

Antwoordbeschrijving

Parameters van de responsebody

Gegevensformaat: application/json

ParameternaamTypeBeschrijving
idstringDe unieke identifier van deze aanvraag.
objectstringHet objecttype, meestal chat.completion.
createdintegerTijdstempel van aanmaak.
choicesarrayLijst met completion-resultaten.
└ indexintegerDe index van deze keuze in de lijst.
└ messageobjectHet door het model gegenereerde antwoordbericht. Bevat role en content.
└ finish_reasonstringDe reden waarom de generatie is gestopt (bijvoorbeeld stop, length).
usageobjectStatistieken over tokenverbruik.
└ prompt_tokensintegerHet aantal tokens dat door de prompt is verbruikt.
└ completion_tokensintegerHet aantal tokens dat door de gegenereerde output is verbruikt.
└ total_tokensintegerHet totale aantal tokens.

Voorbeeldresponse (HTTP 200 OK)

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

FAQ (Veelgestelde vragen)

1. Wat doet de parameter reasoning_effort?

reasoning_effort wordt gebruikt om te bepalen hoeveel rekenkracht en tijd een model met geavanceerde reasoning-capaciteiten (zoals modellen uit de o1/o4-serie van OpenAI) besteedt aan intern nadenken voordat het een definitief antwoord geeft. Meestal worden drie niveaus ondersteund: low, medium en high. Wanneer ingesteld op high, voert het model diepgaandere logische afleidingen uit, wat geschikt is voor complexe wiskundige of programmeervraagstukken; de responstijd zal dan doorgaans ook toenemen.

2. Waarom ontvang ik geen standaard JSON-response wanneer stream: true is ingeschakeld?

Wanneer streaming (stream: true) is ingeschakeld, gebruikt de API het Server-Sent Events (SSE)-protocol om continu datablocks (chunks) terug te sturen. Elk blok wordt verzonden in de vorm data: {...}. Zodra alle inhoud is overgedragen, wordt een laatste bericht data: [DONE] verzonden. Ontwikkelaars moeten de stream regel voor regel uitlezen en de JSON-string na data: parseren om het volledige antwoord samen te stellen.

3. Waarom wordt aangeraden om slechts één van temperature en top_p aan te passen?

Deze twee parameters sturen allebei de willekeur en diversiteit van de modeloutput. temperature verandert de kansverdeling door logits te schalen, terwijl top_p (nucleus sampling) de kandidatenpool beperkt door tokens met lage cumulatieve waarschijnlijkheid uit te sluiten. Als beide tegelijk worden aangepast, wordt het gedrag van het model moeilijker te voorspellen en te beheersen. Daarom is het best practice om er één vast te laten staan (meestal op de standaardwaarde) en alleen de andere aan te passen.

4. Wat betekent het als finish_reason "length" teruggeeft?

Dit betekent dat het antwoord van het model voortijdig is afgebroken. Daar zijn meestal twee mogelijke oorzaken voor: ten eerste kan het aantal gegenereerde tokens de in de request ingestelde limiet max_tokens hebben bereikt; ten tweede kan de som van prompt en gegenereerde output groter zijn dan het maximale contextvenster van het model. In dat geval wordt aanbevolen om de gespreksgeschiedenis in te korten of max_tokens te verhogen.

5. Hoe dwing ik het model om JSON terug te geven?

Je kunt de JSON-modus inschakelen door "response_format": {"type": "json_object"} mee te sturen in de requestbody. Zeer belangrijk: wanneer deze modus is ingeschakeld, moet je in messages (meestal in een system- of user-prompt) ook expliciet in natuurlijke taal aangeven dat het model JSON moet retourneren. Anders kan het model in een oneindige lus van witruimtes terechtkomen totdat de tokenlimiet is bereikt.