Nodig vrienden uit en verdien gratis tokens!Meer weten

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

ParameternaamVerplichtTypeVoorbeeldwaardeBeschrijving
Content-TypeJaStringapplication/jsonFormaat van de requestbody
AcceptJaStringapplication/jsonFormaat van de response
AuthorizationNeeStringBearer {{YOUR_API_KEY}}API-sleutel voor authenticatie

1.2 Body-parameters

Hoewel de oorspronkelijke definitie GET aangeeft, worden de onderstaande parameters op basis van de bedrijfslogica doorgaans via een JSON-body doorgegeven.

ParameternaamTypeVerplichtStandaardwaardeBeschrijving
modelstringJa-De model-ID die moet worden gebruikt. Bijvoorbeeld: gpt-3.5-turbo.
messagesarrayJa-De lijst met berichten die het gesprek tot nu toe bevat. Elk bericht bevat role en content.
temperaturenumberNee1Sampling-temperatuur, tussen 0 en 2. Hoe hoger de waarde, hoe willekeuriger de output.
top_pnumberNee1Nucleus-sampling. 0.1 betekent dat alleen tokens worden overwogen die samen de bovenste 10% van de waarschijnlijkheidsmassa vormen.
nintegerNee1Aantal chat-completionkeuzes dat per invoer moet worden gegenereerd.
streambooleanNeefalseOf streaming moet worden gebruikt. Wanneer ingesteld op true, worden incrementele berichtupdates verzonden (SSE).
stopstring/arrayNeenullStopsequentie. Het model stopt met genereren wanneer deze tekens worden aangetroffen.
max_tokensintegerNeeinfHet maximale aantal tokens dat mag worden gegenereerd.
presence_penaltynumberNee0Een getal tussen -2.0 en 2.0. Positieve waarden vergroten de kans dat het model nieuwe onderwerpen aansnijdt.
frequency_penaltynumberNee0Een getal tussen -2.0 en 2.0. Positieve waarden verkleinen de kans dat het model dezelfde regels herhaalt.
logit_biasobjectNeenullWijzigt de kans dat opgegeven tokens in de completion verschijnen.
userstringNee-Een unieke identificatie van de eindgebruiker, nuttig voor het monitoren van misbruik.
response_formatobjectNee-Geeft het outputformaat van het model aan, bijvoorbeeld { "type": "json_object" } om JSON-modus in te schakelen.
toolsarrayNee-Een lijst met tools die het model kan aanroepen (zoals functies).
tool_choiceobjectNeeautoBepaalt welke functie het model moet aanroepen.

2. Responseparameters

ParameternaamTypeBeschrijving
idstringDe unieke identificatie van deze request.
objectstringHet objecttype, meestal chat.completion.
createdintegerTijdstempel van het aanmaken van de request (in seconden).
choicesarrayLijst met completionresultaten.
├─ indexintegerDe index van deze keuze in de lijst.
├─ messageobjectHet concrete bericht dat door het model is gegenereerd.
│ ├─ rolestringDe rol, meestal assistant.
│ └─ contentstringDe inhoud van het bericht.
└─ finish_reasonstringReden van stoppen, zoals stop (normaal gestopt) of length (maximale lengte bereikt).
usageobjectStatistieken over tokenverbruik.
├─ prompt_tokensintegerAantal tokens verbruikt door de invoer.
├─ completion_tokensintegerAantal tokens gegenereerd in de output.
└─ total_tokensintegerTotaal 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.