Een chat-creatieafbeelding maken (niet-streaming)
Deze API wordt gebruikt om een prompt (met tekst of afbeeldingen) naar het model te sturen. Het model retourneert vervolgens één of meerdere gegenereerde antwoorden. Deze interface is vooral geschikt voor modellen die multimodale invoer ondersteunen (zoals beeldverwerking, beeldverfraaiing en visuele creatieve taken), bijvoorbeeld gpt-4o-image-vip.
Interface-informatie
- Endpoint:
https://api.codingplanx.ai/v1/chat/completions - HTTP-methode:
POST - Content-Type:
application/json - Response-Type:
application/json
Request-headers (Headers)
| Parameternaam | Verplicht | Type | Voorbeeldwaarde | Beschrijving |
|---|---|---|---|---|
| Content-Type | Ja | String | application/json | Formaat van de request body |
| Accept | Ja | String | application/json | Gewenst responseformaat |
| Authorization | Nee | String | Bearer {{YOUR_API_KEY}} | API-sleutel voor authenticatie |
Request-parameters (Body)
De request body is een JSON-object met de volgende velden:
| Parameternaam | Type | Verplicht | Standaardwaarde | Beschrijving |
|---|---|---|---|---|
| model | String | Ja | - | De model-ID die gebruikt moet worden. Bijvoorbeeld: gpt-4o-image-vip. |
| messages | Array | Ja | - | Lijst met conversatieberichten. Elk object bevat role (user/assistant/system) en content. content kan een string zijn, of een array van objecten met type en afbeeldings-URL. |
| tools | Array | Ja | - | Een lijst met tools die het model kan aanroepen. Momenteel worden alleen functies ondersteund. |
| tool_choice | Object | Ja | none | Bepaalt welke functie wordt aangeroepen. none betekent geen aanroep, auto betekent automatisch kiezen. |
| temperature | Number | Nee | 1 | Sampling-temperatuur (0-2). Hoe hoger, hoe willekeuriger; hoe lager, hoe geconcentreerder. |
| top_p | Number | Nee | 1 | Nucleus sampling. Houdt alleen rekening met tokens binnen de bovenste kansmassa P. Aanbevolen om dit als alternatief voor temperature te gebruiken, niet samen. |
| n | Integer | Nee | 1 | Hoeveel chat-completion-keuzes per invoer moeten worden gegenereerd. |
| stream | Boolean | Nee | false | Of streaming gebruikt moet worden. Deze interface is momenteel gedefinieerd als niet-streaming. |
| max_tokens | Integer | Nee | inf | Maximaal aantal tokens dat gegenereerd mag worden. |
| stop | String/Array | Nee | null | Stopsequentie. De API stopt dan met het genereren van verdere tokens. |
| presence_penalty | Number | Nee | 0 | Tussen -2.0 en 2.0. Straft reeds verschenen tokens af om de kans op nieuwe onderwerpen te vergroten. |
| frequency_penalty | Number | Nee | 0 | Tussen -2.0 en 2.0. Straft herhaalde tokens af op basis van frequentie. |
| response_format | Object | Nee | - | Geeft het uitvoerformaat op, bijvoorbeeld { "type": "json_object" } om de JSON-modus in te schakelen. |
| user | String | Nee | - | Unieke identificatie van de eindgebruiker, gebruikt voor misbruikmonitoring. |
| seen | Integer | Nee | - | (Bèta) Geeft een seed-waarde op om deterministische sampling zo goed mogelijk te benaderen. |
Response-parameters
| Parameternaam | Type | Beschrijving |
|---|---|---|
| id | String | Unieke identificatie van deze request. |
| object | String | Objecttype, altijd chat.completion. |
| created | Integer | Unix-tijdstempel (seconden). |
| choices | Array | Bevat de gegenereerde antwoordopties. |
| └ index | Integer | Index van de optie. |
| └ message | Object | Berichtobject met role en content. |
| └ finish_reason | String | Reden waarom de generatie is gestopt (zoals stop, length). |
| usage | Object | Tokenverbruik. |
| └ prompt_tokens | Integer | Aantal tokens verbruikt door de prompt. |
| └ completion_tokens | Integer | Aantal tokens verbruikt door de completion. |
| └ total_tokens | Integer | Totaal verbruik. |
Voorbeelden
Request-voorbeeld (beeldverfraaiing / creatieve beeldgeneratie)
{
"model": "gpt-4o-image-vip",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Verfraai dit soort afbeelding, voeg de woorden 'Ik hou van China' toe, formaat [4:3]"},
{
"type": "image_url",
"image_url": {
"url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
}
}
]
}
],
"tools": [],
"tool_choice": "none"
}
Response-voorbeeld
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Prima, de afbeelding is voor u verwerkt. U kunt het gegenereerde resultaat hier bekijken: [afbeeldingslink/beschrijving]"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
FAQ's (Veelgestelde vragen)
V: Waarom geeft een request met response_format: { "type": "json_object" } een fout?
A: Wanneer u de JSON-modus gebruikt, moet u in messages expliciet aangeven dat het model JSON moet genereren (bijvoorbeeld door in de systeemprompt op te nemen: “Geef antwoord in JSON-formaat”). Anders kan het model niet-JSON-inhoud produceren, wat tot een oneindige lus of fout kan leiden.
V: Hoe zorg ik ervoor dat het gegenereerde resultaat bij elke request hetzelfde is?
A: Hoewel AI-modellen willekeurigheid bevatten, kunt u proberen de parameter seen (seed) in te stellen en temperature op 0 te houden. Let daarnaast op het veld system_fingerprint in de response om te controleren of de backend-omgeving is veranderd.
V: Hoe groot moet max_tokens worden ingesteld?
A: Dat hangt af van uw gebruiksscenario. Voor korte afbeeldingsbeschrijvingen is 100-300 meestal voldoende; voor uitgebreide analyse of lange creatieve tekst wordt 1000 of meer aanbevolen. Houd er rekening mee dat de som van invoertokens (inclusief afbeeldingen) en uitvoertokens niet hoger mag zijn dan de contextlimiet van het model.
V: Hoe verwerk ik afbeeldingsinvoer?
A: Gebruik in content van messages het type image_url. Momenteel wordt aangeraden om een openbaar toegankelijke HTTPS-afbeeldingslink te gebruiken.
V: Zijn tools en tool_choice verplicht?
A: Volgens deze interfacedefinitie zijn deze twee velden verplicht. Als u geen specifieke tool hoeft aan te roepen, stel tools dan in op een lege array [] en tool_choice op "none".