Source: https://ailoot.ai/docs/da/api/chat-completions/
Canonical: https://ailoot.ai/docs/da/api/chat-completions/
Language: da

[API](https://ailoot.ai/docs/da/) 

# Chat Completions

[Markdown](https://ailoot.ai/docs/da/api/chat-completions/index.md)

Modellens svar på en samtale i OpenAI-format. Det mest udbredte format: næsten alle klienter forstår det.

POST`https://api.ailoot.ai/v1/chat/completions`

Chat Completions

```bash
curl https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "messages": [
      {"role": "user", "content": "Forklar med to sætninger, hvad API er."}
    ]
  }' 
```

```python
from openai import OpenAI
import os

client = OpenAI(max_retries=0, 
    base_url="https://api.ailoot.ai/v1",
    api_key=os.environ["AILOOT_API_KEY"],
)

resp = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Forklar med to sætninger, hvad API er."}],
)
print(resp.choices[0].message.content)
```

```js
import OpenAI from "openai";

const client = new OpenAI({ maxRetries: 0,
  baseURL: "https://api.ailoot.ai/v1",
  apiKey: process.env.AILOOT_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5-5",
  messages: [{ role: "user", content: "Forklar med to sætninger, hvad API er." }],
});
console.log(resp.choices[0].message.content);
```

200 OK

```json
{
  "id": "chatcmpl-8f2c…",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "API er en aftale om, hvordan et program beder et andet om at gøre noget…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Godkendelse

| Parameter | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- |
| `Authorization` | header | påkrævet | Nøgle i formatet `Bearer sk-…`. Følgende headers kan også bruges: `x-api-key` eller `x-goog-api-key`. |

## Anmodningens indhold

| Parameter | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- |
| `model` | string | påkrævet | Model-ID fra [kataloget](https://ailoot.ai/models/da/), for eksempel `claude-sonnet-5-5`. Modellen skal understøtte OpenAI Chat-formatet. |
| `messages` | array | påkrævet | Samtalehistorik: objekter med `role` (`system`, `developer`, `user`, `assistant`, `tool`) og `content` — en streng eller en liste af dele (tekst, `image_url`). |
| `stream` | boolean | valgfrit | Svar i Server-Sent Events-format. Som standard `false`. Betalt tekst kommer i én blok efter beregning af prisen, ikke ord for ord. |
| `stream_options` | object | valgfrit | `{"include_usage": true}` — send det endelige `usage` som strømmens sidste hændelse. |
| `max_tokens` | integer | valgfrit | Det maksimale antal tokens i svaret. Det nye navn er `max_completion_tokens`. Hvis grænsen ikke angives, indsætter Ailoot 4096 (eller færre, hvis modellens svargrænse er lavere; Grok har sin egen grænse). Angiv grænsen udtrykkeligt ved lange svar, ellers stopper svaret ved 4096 tokens med `finish_reason: "length"`. Grænsen indgår i reservationen: jo højere den er, desto større ledig saldo kræves. |
| `temperature` | number | valgfrit | Hvor tilfældigt svaret er, normalt fra 0 til 2. Kan blive ignoreret af ræsonneringsmodeller. |
| `top_p` | number | valgfrit | Alternativ til temperature: den andel af sandsynlighedsmassen, der bruges til at vælge tokens. |
| `stop` | string \| array | valgfrit | Strenge, som får genereringen til at stoppe. |
| `tools` | array | valgfrit | Beskrivelser af funktioner, som modellen kan kalde. Formatet er som hos OpenAI: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | valgfrit | `auto`, `none`, `required` eller en bestemt funktion. |
| `response_format` | object | valgfrit | `{"type": "json_object"}` eller `{"type": "json_schema", ...}` til et struktureret svar — hvis modellen understøtter det. |
| `reasoning_effort` | string | valgfrit | Ræsonneringsdybde for ræsonneringsmodeller: `low`, `medium`, `high`. |

De øvrige OpenAI-parametre videresendes uændret; det er modellens udvikler, der afgør, om den enkelte model understøtter dem.

## Svar

| Parameter | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Modellens svar: `content`, ved værktøjskald — `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — svaret er afsluttet; `length` — grænsen `max_tokens` er nået (svaret er stadig fuldstændigt og betales efter det faktiske forbrug); `tool_calls` — modellen kalder et værktøj. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — de bruges til at beregne debiteringen. |

Har du stadig spørgsmål? Send Request ID og en beskrivelse — så hjælper vi med at finde ud af det.[Kontakt support](mailto:support@ailoot.ai)

## Ailoot · Virksomheden og dens projektportefølje





Ailoot bygger på solid driftserfaring, en stor kundebase, stabil service og løbende kontrol af KPI.





Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.





Ailoot bruger denne driftserfaring til API-adgang til AI-funktioner i kundernes produkter, agenter, applikationer og automatiseringer.
