Chat met beeldherkenning aanmaken (niet-streaming)
Deze API wordt gebruikt om prompts met tekst en afbeeldingen naar het model te sturen en een eenmalig chat-completionresultaat te verkrijgen. Op basis van de ingevoerde context en afbeeldingsinhoud geeft het model een gedetailleerde beschrijving of een antwoord terug.
- Endpoint:
https://api.codingplanx.ai/v1/chat/completions - Methode:
POST - Status: Uitgebracht (Released)
Headers
| Parameter | Verplicht | Type | Voorbeeldwaarde | Beschrijving |
|---|---|---|---|---|
| Content-Type | Ja | String | application/json | Formaat van de request body |
| Accept | Ja | String | application/json | Formaat van de response body |
| Authorization | Nee | String | Bearer {{YOUR_API_KEY}} | API-sleutel voor authenticatie |
Request Body
| Parameter | Verplicht | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|---|
| model | Ja | String | - | De model-ID die gebruikt moet worden (bijv. gpt-4o). |
| messages | Ja | Array | - | Lijst met chatberichten. Bij beeldherkenning moet content als een objectarray worden doorgegeven. |
| temperature | Nee | Number | 1 | Sampling-temperatuur (0-2). Hoe hoger, hoe willekeuriger; hoe lager, hoe deterministischer. |
| top_p | Nee | Number | 1 | Kans voor nucleus sampling. Aanbevolen om slechts één van temperature of top_p aan te passen. |
| max_tokens | Nee | Integer | inf | Het maximale aantal tokens dat mag worden gegenereerd. |
| n | Nee | Integer | 1 | Hoeveel alternatieve antwoorden per invoer moeten worden gegenereerd. |
| stream | Nee | Boolean | false | Of de output gestreamd moet worden. Voor deze API is dit vast ingesteld op false. |
| stop | Nee | String/Array | null | Stopsequenties voor generatie. Maximaal 4 sequenties worden ondersteund. |
| presence_penalty | Nee | Number | 0 | Presence penalty (-2.0 tot 2.0), vergroot de kans dat nieuwe onderwerpen worden aangesneden. |
| frequency_penalty | Nee | Number | 0 | Frequency penalty (-2.0 tot 2.0), vermindert herhaling van dezelfde formuleringen. |
| response_format | Nee | Object | - | Specificeert het uitvoerformaat, bijvoorbeeld { "type": "json_object" } om JSON-modus in te schakelen. |
| user | Nee | String | - | Unieke identificatie van de eindgebruiker. |
| tools | Nee | Array | - | Lijst met tools die het model kan aanroepen (momenteel alleen function ondersteund). |
| tool_choice | Nee | Object | - | Regelt het gedrag van toolaanroepen door het model (none/auto/specifieke functie). |
Structuur van messages.content voor beeldherkenning (Content Array)
Bij een beeldherkenningsverzoek moet messages.content de volgende structuur bevatten:
type:"text"of"image_url"text: wanneertypegelijk is aantext, vul hier de tekstvraag in.image_url: wanneertypegelijk is aanimage_url, vul hier een object in zoals{ "url": "afbeeldingslink" }.
Voorbeeldverzoek (Example)
{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "Je bent een behulpzame assistent."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Wat staat er op deze afbeelding? Beschrijf het in detail."
},
{
"type": "image_url",
"image_url": {
"url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
}
}
]
}
]
}
Response-parameters (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 | Bevat meerdere gegenereerde opties. |
| └ index | Integer | Index van de optie. |
| └ message | Object | Het berichtobject dat door het model is teruggegeven (bevat role en content). |
| └ finish_reason | String | Reden waarom de generatie is gestopt (bijv. stop, length). |
| usage | Object | Statistieken over tokenverbruik. |
| └ prompt_tokens | Integer | Aantal tokens verbruikt door de prompt. |
| └ completion_tokens | Integer | Aantal tokens verbruikt door het resultaat. |
| └ total_tokens | Integer | Totaal aantal verbruikte tokens. |
Voorbeeldrespons (Response)
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Deze afbeelding toont een net opgeruimd bureau met daarop een laptop, een kop koffie en een vetplantje."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 120,
"completion_tokens": 45,
"total_tokens": 165
}
}
Veelgestelde vragen (FAQs)
V: Welke modellen ondersteunen beeldherkenning?
A: Momenteel ondersteunen vooral multimodale modellen zoals gpt-4o, gpt-4-turbo en gpt-4-vision-preview beeldherkenning. Zorg ervoor dat u de juiste ID doorgeeft in het veld model.
V: Welke afbeeldingsformaten worden ondersteund?
A: Veelgebruikte afbeeldingsformaten worden ondersteund, zoals PNG, JPEG, WEBP en niet-geanimeerde GIF.
V: Zijn er toegangsbeperkingen voor afbeeldingslinks?
A: De opgegeven afbeeldings-URL moet openbaar toegankelijk zijn. Als de afbeelding zich in privé-cloudopslag bevindt, genereer dan eerst een tijdelijk ondertekende toegangslink of geef de afbeelding door als Base64 (let op: Base64 moet het formaat data:image/jpeg;base64,... volgen).
V: Hoe wordt beeldherkenning gefactureerd?
A: Afbeeldingen worden omgerekend naar tokens op basis van hun resolutie en detailniveau. Gewoonlijk verbruiken afbeeldingen met lage resolutie een klein, vast aantal tokens, terwijl afbeeldingen met hoge resolutie worden berekend op basis van het aantal 512x512-tiles.
V: Wat moet ik doen als ik streaming output wil (typewrite-effect)?
A: Stel de requestparameter stream in op true. Let er wel op dat deze documentatie bedoeld is voor niet-streaming responses; bij streaming verandert het responseformaat naar Server-Sent Events (SSE).
V: Waarom kreeg ik "finish_reason": "length" terug?
A: Dit betekent dat het antwoord de door u ingestelde limiet van max_tokens heeft bereikt, of dat de contextlimiet van het model is overschreden, waardoor de inhoud is afgekapt.