Chat Completions aanmaken (niet-streaming)
Deze endpoint wordt gebruikt om, gegeven een prompt, één of meerdere voorspelde completion-resultaten door het model te laten teruggeven. De niet-streaming interface retourneert het volledige antwoord in één keer nadat de generatie is voltooid.
- Endpoint:
https://api.codingplanx.ai/v1/chat/completions - HTTP-methode:
POST - Content-Type:
application/json
Verzoekparameters
Request headers
| Parameter | Type | Verplicht | Voorbeeldwaarde | Beschrijving |
|---|---|---|---|---|
| Content-Type | string | Ja | application/json | Formaat van de request body |
| Accept | string | Ja | application/json | Formaat van de response body |
| Authorization | string | Nee | Bearer {{YOUR_API_KEY}} | Authenticatietoken |
Request body
| Parameter | Type | Verplicht | Standaardwaarde | Beschrijving |
|---|---|---|---|---|
| model | string | Ja | - | De model-ID die gebruikt moet worden (zoals gpt-4o, gpt-3.5-turbo). |
| messages | array | Ja | - | Lijst met conversatieberichten. Elk object bevat role (system/user/assistant) en content. |
| temperature | number | Nee | 1 | Samplingtemperatuur (0-2). Hoe hoger, hoe willekeuriger; hoe lager, hoe deterministischer. |
| top_p | number | Nee | 1 | Nucleus sampling. Houdt alleen tokens in aanmerking binnen de top_p waarschijnlijkheidsmassa. Aanbevolen om slechts één van temperature of top_p aan te passen. |
| n | integer | Nee | 1 | Aantal completion-keuzes dat voor elk invoerbericht wordt gegenereerd. |
| stream | boolean | Nee | false | Of streaming wordt gebruikt. Hier moet deze op false staan. |
| stop | string/array | Nee | null | Sequenties waarbij de API het genereren moet stoppen (maximaal 4). |
| max_tokens | integer | Nee | inf | Maximaal aantal tokens dat mag worden gegenereerd, beperkt door de contextlengte van het model. |
| presence_penalty | number | Nee | 0 | Tussen -2.0 en 2.0. Positieve waarden vergroten de kans dat het model nieuwe onderwerpen aansnijdt. |
| frequency_penalty | number | Nee | 0 | Tussen -2.0 en 2.0. Positieve waarden verminderen de kans dat het model dezelfde woorden herhaalt. |
| logit_bias | object | Nee | null | Wijzigt de kans dat opgegeven tokens in de completion verschijnen. |
| user | string | Nee | - | Unieke identificatie van de eindgebruiker, gebruikt voor misbruikdetectie. |
| response_format | object | Nee | - | Geeft het uitvoerformaat op, bijvoorbeeld { "type": "json_object" } om de JSON-modus in te schakelen. |
| tools | array | Nee | - | Lijst met tools die het model kan aanroepen (momenteel alleen function ondersteund). |
| tool_choice | string/obj | Nee | auto | Bepaalt welke functie het model moet aanroepen (none/auto/specifieke functie). |
Responseparameters
Response body
| Parameter | Type | Beschrijving |
|---|---|---|
| id | string | De unieke identificatie van deze aanvraag. |
| object | string | Objecttype, altijd chat.completion. |
| created | integer | Unix-tijdstempel (seconden). |
| choices | array | Lijst met completion-resultaten. |
| ├─ index | integer | De index van dit resultaat in de lijst. |
| ├─ message | object | De door het model gegenereerde berichtinhoud. |
| │ ├─ role | string | Rol, meestal assistant. |
| │ └─ content | string | De specifieke tekstinhoud van het bericht. |
| └─ finish_reason | string | Reden van stoppen (zoals stop, length, tool_calls). |
| usage | object | Statistieken over tokengebruik. |
| ├─ prompt_tokens | integer | Aantal tokens verbruikt door de invoerprompt. |
| ├─ completion_tokens | integer | Aantal tokens verbruikt door de gegenereerde output. |
| └─ total_tokens | integer | Totaal aantal verbruikte tokens. |
Voorbeelden
Voorbeeldverzoek (cURL)
curl --location --request POST 'https://api.codingplanx.ai/v1/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "Hallo, kun je jezelf even voorstellen?"
}
],
"max_tokens": 1000
}'
Voorbeeldresponse
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hallo! Ik ben een AI-assistent aangeboden door CodingPlanX. Fijn om je van dienst te zijn."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 15,
"completion_tokens": 25,
"total_tokens": 40
}
}
FAQ's (veelgestelde vragen)
V1: Hoe schakel ik de JSON-modus in?
A1: Stel in de request body "response_format": { "type": "json_object" } in. Let op: wanneer je de JSON-modus gebruikt, moet je in een system- of user-bericht expliciet aangeven dat het model JSON moet retourneren. Anders kan het model in een oneindige lus van lege witruimte terechtkomen.
V2: Hoe kies ik tussen temperature en top_p?
A2: We raden meestal aan om er slechts één van aan te passen. Als je wilt dat het model creatiever is, verhoog dan temperature (bijvoorbeeld 0.8); als je wilt dat het model strikter en consistenter antwoordt, verlaag die dan (bijvoorbeeld 0.2).
V3: Waarom is finish_reason gelijk aan length?
A3: Dit betekent dat het gegenereerde antwoord is afgekapt omdat het de door jou ingestelde limiet van max_tokens heeft bereikt of de maximale contextlengte van het model heeft overschreden.
V4: Wat is een token?
A4: Een token is de basiseenheid waarmee het model tekst verwerkt. Voor Chinees komt één karakter ongeveer overeen met 1 tot 2 tokens. Facturatie en contextlimieten van de API zijn gebaseerd op het aantal tokens.
V5: Wat is het verschil tussen presence_penalty en frequency_penalty?
A5: presence_penalty richt zich op het introduceren van nieuwe onderwerpen: zodra een woord eenmaal is verschenen, wordt het bestraft. frequency_penalty richt zich op het aantal herhalingen van woorden: hoe vaker een woord voorkomt, hoe sterker de straf.
V6: Hoe krijg ik een realtime effect van gegenereerde tekst?
A6: Stel de parameter stream in op true. Let op: het responseformaat van streaming verschilt van dit document (niet-streaming); het is gebaseerd op Server-Sent Events (SSE).