API-documentatie voor Chat Completions
Deze interface wordt gebruikt om, op basis van een gegeven prompt, één of meerdere voorspelde completions te retourneren. U kunt tekst genereren op basis van de gespreksgeschiedenis en controle uitoefenen over de willekeur, lengte en opmaak van de output.
- Interfacenaam: Modellen weergeven / Chat-completions
- HTTP-methode:
GET(Opmerking: volgens de aangeleverde definitie) - Request-URL:
https://api.codingplanx.ai/v1/models - Status: Gepubliceerd (Released)
1. Requestparameters
1.1 Header-parameters
| Parameternaam | Verplicht | Type | Voorbeeldwaarde | Beschrijving |
|---|---|---|---|---|
| Content-Type | Ja | String | application/json | Formaat van de requestbody |
| Accept | Ja | String | application/json | Formaat van de response |
| Authorization | Nee | String | Bearer {{YOUR_API_KEY}} | API-sleutel voor authenticatie |
1.2 Body-parameters
Hoewel de oorspronkelijke definitie
GETaangeeft, worden de onderstaande parameters op basis van de bedrijfslogica doorgaans via een JSON-body doorgegeven.
| Parameternaam | Type | Verplicht | Standaardwaarde | Beschrijving |
|---|---|---|---|---|
| model | string | Ja | - | De model-ID die moet worden gebruikt. Bijvoorbeeld: gpt-3.5-turbo. |
| messages | array | Ja | - | De lijst met berichten die het gesprek tot nu toe bevat. Elk bericht bevat role en content. |
| temperature | number | Nee | 1 | Sampling-temperatuur, tussen 0 en 2. Hoe hoger de waarde, hoe willekeuriger de output. |
| top_p | number | Nee | 1 | Nucleus-sampling. 0.1 betekent dat alleen tokens worden overwogen die samen de bovenste 10% van de waarschijnlijkheidsmassa vormen. |
| n | integer | Nee | 1 | Aantal chat-completionkeuzes dat per invoer moet worden gegenereerd. |
| stream | boolean | Nee | false | Of streaming moet worden gebruikt. Wanneer ingesteld op true, worden incrementele berichtupdates verzonden (SSE). |
| stop | string/array | Nee | null | Stopsequentie. Het model stopt met genereren wanneer deze tekens worden aangetroffen. |
| max_tokens | integer | Nee | inf | Het maximale aantal tokens dat mag worden gegenereerd. |
| presence_penalty | number | Nee | 0 | Een getal tussen -2.0 en 2.0. Positieve waarden vergroten de kans dat het model nieuwe onderwerpen aansnijdt. |
| frequency_penalty | number | Nee | 0 | Een getal tussen -2.0 en 2.0. Positieve waarden verkleinen de kans dat het model dezelfde regels herhaalt. |
| logit_bias | object | Nee | null | Wijzigt de kans dat opgegeven tokens in de completion verschijnen. |
| user | string | Nee | - | Een unieke identificatie van de eindgebruiker, nuttig voor het monitoren van misbruik. |
| response_format | object | Nee | - | Geeft het outputformaat van het model aan, bijvoorbeeld { "type": "json_object" } om JSON-modus in te schakelen. |
| tools | array | Nee | - | Een lijst met tools die het model kan aanroepen (zoals functies). |
| tool_choice | object | Nee | auto | Bepaalt welke functie het model moet aanroepen. |
2. Responseparameters
| Parameternaam | Type | Beschrijving |
|---|---|---|
| id | string | De unieke identificatie van deze request. |
| object | string | Het objecttype, meestal chat.completion. |
| created | integer | Tijdstempel van het aanmaken van de request (in seconden). |
| choices | array | Lijst met completionresultaten. |
| ├─ index | integer | De index van deze keuze in de lijst. |
| ├─ message | object | Het concrete bericht dat door het model is gegenereerd. |
| │ ├─ role | string | De rol, meestal assistant. |
| │ └─ content | string | De inhoud van het bericht. |
| └─ finish_reason | string | Reden van stoppen, zoals stop (normaal gestopt) of length (maximale lengte bereikt). |
| usage | object | Statistieken over tokenverbruik. |
| ├─ prompt_tokens | integer | Aantal tokens verbruikt door de invoer. |
| ├─ completion_tokens | integer | Aantal tokens gegenereerd in de output. |
| └─ total_tokens | integer | Totaal aantal verbruikte tokens. |
3. Requestvoorbeeld
Voorbeeld van een succesvolle request
curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hallo daar, hoe kan ik u vandaag helpen?"
}
],
"temperature": 1,
"top_p": 1,
"n": 1,
"stream": false,
"user": "user-1234"
}'
Voorbeeld van een succesvolle response
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\r
\r
Hallo daar, hoe kan ik u vandaag helpen?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
4. FAQ's (Veelgestelde vragen)
V: Waarom staat in de documentatie GET, terwijl het eruitziet als een POST-request?
A: In de standaard OpenAI-specificatie wordt het aanmaken van een completion meestal via POST gedaan. Volgens de door u aangeleverde metadata is deze interface echter gedefinieerd als GET. Controleer daarom de daadwerkelijke serverconfiguratie wanneer u de API aanroept. Als GET niet werkt, probeer dan POST.
V: Hoe kies ik tussen temperature en top_p?
A: Wij raden aan om slechts één van beide aan te passen. Als u nauwkeurigere en meer deterministische antwoorden wilt, verlaag dan temperature (bijvoorbeeld naar 0.2). Als u meer variatie en creativiteit wilt, verhoog die dan.
V: Hoe schakel ik JSON-modus in?
A: U moet response_format instellen op { "type": "json_object" } en in messages duidelijk aangeven (via een System- of User-bericht) dat de output in JSON-formaat moet worden gegeven. Anders kan het model parseerfouten produceren of oneindig witruimte blijven genereren.
V: Wat zijn presence_penalty en frequency_penalty?
A:
presence_penalty(aanwezigheidsstraf): richt zich op het bestraffen van onderwerpen die al zijn genoemd, en moedigt het model aan om nieuwe onderwerpen aan te snijden.frequency_penalty(frequentiestraf): richt zich op het bestraffen van woorden of formuleringen die al vaak zijn herhaald, om te voorkomen dat het model in korte tijd dezelfde zinnen blijft herhalen.
V: Hoe werkt streaming output (stream: true)?
A: Wanneer streaming is ingeschakeld, retourneert de API data token voor token via Server-Sent Events (SSE). Elk datablock begint met data: gevolgd door een JSON-string, en eindigt uiteindelijk met data: [DONE]. Dit is erg handig voor realtime weergave van lange tekstgeneratie.