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

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

# Chat Completions

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

Mallin vastaus keskusteluun OpenAI-muodossa. Yleisin muoto: lähes kaikki asiakkaat ymmärtävät sitä.

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": "Selitä kahdella lauseella, mitä API tarkoittaa."}
    ]
  }' 
```

```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": "Selitä kahdella lauseella, mitä API tarkoittaa."}],
)
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: "Selitä kahdella lauseella, mitä API tarkoittaa." }],
});
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 on sopimus siitä, miten yksi ohjelma pyytää toista tekemään jotakin…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Todennus

| Parametri | Tyyppi | Pakollinen | Kuvaus |
| --- | --- | --- | --- |
| `Authorization` | header | pakollinen | Avain muodossa `Bearer sk-…`. Myös seuraavat otsakkeet käyvät: `x-api-key` tai `x-goog-api-key`. |

## Pyynnön runko

| Parametri | Tyyppi | Pakollinen | Kuvaus |
| --- | --- | --- | --- |
| `model` | string | pakollinen | Mallin ID [luettelosta](https://ailoot.ai/models/fi/), esimerkiksi `claude-sonnet-5-5`. Mallin on tuettava OpenAI Chat -muotoa. |
| `messages` | array | pakollinen | Keskusteluhistoria: objektit, joissa on `role` (`system`, `developer`, `user`, `assistant`, `tool`) ja `content` — merkkijonona tai osien taulukkona (teksti, `image_url`). |
| `stream` | boolean | valinnainen | Vastaus Server-Sent Events -muodossa. Oletuksena `false`. Maksullinen teksti saapuu yhtenä lohkona hinnan laskemisen jälkeen, ei sana kerrallaan. |
| `stream_options` | object | valinnainen | `{"include_usage": true}` — lähetä lopullinen `usage` virran viimeisenä tapahtumana. |
| `max_tokens` | integer | valinnainen | Vastauksen tokenien enimmäismäärä. Uusi nimi on `max_completion_tokens`. Jos rajaa ei anneta, Ailoot asettaa arvoksi 4096 (tai vähemmän, jos mallin vastausraja on pienempi; Grokilla on oma rajansa). Määritä raja erikseen pitkille vastauksille, muuten vastaus päättyy 4096 tokeniin syyllä `finish_reason: "length"`. Raja sisältyy varaukseen: mitä suurempi se on, sitä enemmän vapaata saldoa tarvitaan. |
| `temperature` | number | valinnainen | Vastauksen satunnaisuus, tavallisesti 0–2. Päättelymallit voivat sivuuttaa sen. |
| `top_p` | number | valinnainen | Vaihtoehto temperature-parametrille: tokenien valintaan käytettävä osuus todennäköisyysmassasta. |
| `stop` | string \| array | valinnainen | Merkkijonot, joiden kohdalla generointi pysähtyy. |
| `tools` | array | valinnainen | Mallin kutsuttavissa olevien funktioiden kuvaukset. Muoto on sama kuin OpenAIlla: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | valinnainen | `auto`, `none`, `required` tai tietty funktio. |
| `response_format` | object | valinnainen | `{"type": "json_object"}` tai `{"type": "json_schema", ...}` rakenteiseen vastaukseen — jos malli tukee sitä. |
| `reasoning_effort` | string | valinnainen | Päättelyn syvyys päättelymalleille: `low`, `medium`, `high`. |

Muut OpenAI-parametrit välitetään sellaisinaan; mallin kehittäjä päättää, tukeeko kyseinen malli niitä.

## Vastaus

| Parametri | Tyyppi | Pakollinen | Kuvaus |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Mallin vastaus: `content`, työkalukutsuissa — `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — vastaus on valmis; `length` — saavutettiin raja `max_tokens` (tällainenkin vastaus on täydellinen, ja siitä veloitetaan toteutuneen käytön mukaan); `tool_calls` — malli kutsuu työkalua. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — niiden perusteella lasketaan veloitus. |

Onko vielä kysyttävää? Lähetä Request ID ja kuvaus — autamme selvittämään asian.[Ota yhteyttä tukeen](mailto:support@ailoot.ai)

## Ailoot · Yritys ja sen projektisalkku





Ailoot perustuu kertyneeseen toimintakokemukseen, laajaan asiakaskuntaan, vakaaseen palveluun ja jatkuvaan KPI-seurantaan.





Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.





Ailoot hyödyntää tätä toimintakokemusta tarjotessaan API-yhteyden tekoälytoimintoihin asiakkaiden tuotteissa, agenteissa, sovelluksissa ja automaatioissa.
