Nodig vrienden uit en verdien gratis tokens!Meer weten

Chat Completions API-documentatie

Deze API wordt gebruikt om, gegeven een reeks gespreksberichten, één of meer voorspelde aanvullingen van het model terug te geven. Ondersteunt streaming-uitvoer, tool-calls (Function Calling) en het aanpassen van verschillende sampling-parameters.

1. Interface-informatie

  • Interfacenaam: Officiële N-test
  • HTTP-methode: POST
  • Request-URL: https://api.codingplanx.ai/v1/chat/completions
  • Content-Type: application/json
  • Authenticatie: Bearer {{YOUR_API_KEY}}

2. Request-headers (Headers)

ParameternaamVerplichtTypeBeschrijvingVoorbeeld
Content-TypeJastringType media-indelingapplication/json
AcceptJastringHet responsformaat dat de client accepteertapplication/json
AuthorizationNeestringAPI-toegangstokenBearer sk-xxxxxx

3. Request-body (Request Body)

ParameternaamVerplichtTypeBeschrijving
modelJastringDe te gebruiken model-ID (zoals gpt-4o, gpt-3.5-turbo).
messagesJaarrayLijst met gespreksberichten. Elk object bevat role (system/user/assistant) en content.
toolsJaarrayEen lijst met tools die het model kan aanroepen. Momenteel worden alleen functies ondersteund.
tool_choiceJaobjectBepaalt welke functie het model aanroept. none (niet aanroepen), auto (automatisch), of een specifiek gekozen functie.
temperatureNeenumberSampling-temperatuur (0-2). Hoe hoger, hoe willekeuriger; hoe lager, hoe deterministischer. Aanbevolen om dit of top_p aan te passen, niet allebei tegelijk.
top_pNeenumberNucleus sampling. 0.1 betekent dat alleen tokens binnen de bovenste 10% kansmassa worden overwogen.
nNeeintegerStandaard is 1. Het aantal antwoorden dat voor elk invoerbericht wordt gegenereerd.
streamNeebooleanStandaard is false. Als dit true is, worden incrementele tokens verzonden zoals in ChatGPT.
stopNeestringStopsequentie. De generatie stopt wanneer het model deze tekens tegenkomt.
max_tokensNeeintegerHet maximale aantal tokens dat wordt gegenereerd. Standaard is inf.
presence_penaltyNeenumberTussen -2.0 en 2.0. Straft onderwerpen die al zijn verschenen af en vergroot de kans op nieuwe onderwerpen.
frequency_penaltyNeenumberTussen -2.0 en 2.0. Straft herhaalde woorden af.
logit_biasNeeobjectPast de waarschijnlijkheid van het verschijnen van specifieke tokens aan.
userNeestringIdentificatie van de eindgebruiker, gebruikt voor misbruikdetectie.
response_formatNeeobjectGeeft het retourformaat aan. Bijvoorbeeld { "type": "json_object" } om JSON-modus in te schakelen.
seenNeeintegerFunctie in testfase. Geeft een seed op om deterministische uitvoer te proberen te bereiken.

4. Responsparameters (Response Body)

ParameternaamTypeBeschrijving
idstringDe unieke identificatie van deze request.
objectstringObjecttype, meestal chat.completion.
createdintegerTijdstempel van het aanmaken van de request (seconden).
choicesarrayLijst met antwoordopties.
├─ indexintegerDe index van deze optie in de lijst.
├─ messageobjectHet specifieke bericht dat door het model is gegenereerd.
│ ├─ rolestringDe rol, meestal assistant.
│ └─ contentstringDe tekstinhoud van het bericht.
└─ finish_reasonstringDe reden waarom de generatie stopte (zoals stop, length, tool_calls).
usageobjectTokengebruik.
├─ prompt_tokensintegerAantal tokens gebruikt voor de invoer.
├─ completion_tokensintegerAantal tokens gebruikt voor de uitvoer.
└─ total_tokensintegerTotaal aantal gebruikte tokens.

5. Voorbeeld (Example)

Voorbeeldrequest

{
    "model": "gpt-4o",
    "messages": [
        {
            "role": "user",
            "content": "wie ben jij?"
        }
    ],
    "n": 1,
    "max_tokens": 100,
    "temperature": 0.8,
    "stream": false
}

Voorbeeldrespons

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

6. Veelgestelde vragen (FAQs)

V: Waarom krijg ik een foutmelding wanneer ik response_format: { "type": "json_object" } instel?
A: Wanneer je JSON-modus gebruikt, moet je in messages expliciet via een system- of user-bericht aangeven dat het model JSON moet genereren (bijvoorbeeld: “Geef antwoord in JSON-formaat”). Anders kan het model vastlopen of een fout geven omdat het geen geldige JSON kan genereren.

V: Kunnen temperature en top_p tegelijkertijd worden aangepast?
A: Technisch gezien wel, maar officieel wordt meestal aangeraden om één van beide te gebruiken. Het aanpassen van één parameter is doorgaans voldoende om de willekeurigheid van de uitvoer te beïnvloeden; beide tegelijk aanpassen kan leiden tot moeilijk voorspelbare resultaten.

V: Hoe ontvang ik gegevens wanneer stream: true is ingesteld?
A: Wanneer streaming is ingeschakeld, stuurt de server een reeks Server-Sent Events (SSE). Het datagedeelte van elk event is een JSON-object, en aan het einde wordt data: [DONE] verzonden. Je moet een streaming-parserbibliotheek gebruiken (zoals Python’s response.iter_lines()) om de gegevens regel voor regel te verwerken.

V: Hoe wordt het tokengebruik berekend?
A: Voor Engels komt 1 token ongeveer overeen met 4 tekens of 0,75 woord; voor Chinees kan 1 karakter overeenkomen met 1-2 tokens. Het daadwerkelijke verbruik is gebaseerd op het veld usage in de respons.

V: Wat betekent finish_reason: "length"?
A: Dit betekent dat de gegenereerde inhoud de limiet overschreed die je in max_tokens hebt ingesteld, of dat de maximale contextlengte van het model is bereikt, waardoor de inhoud is afgekapt.

V: Ondersteunt de interface function calling?
A: Ja. Definieer het functieprototype via de parameter tools; afhankelijk van de behoefte retourneert het model tool_calls in choices[0].message in plaats van normale content.