> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Kimi Chat Completion API заявка та використання

> Kimi API guide - Ace Data Cloud

Kimi — це серія AI моделей, випущена Moonshot. Наразі рекомендована модель `kimi-k3` призначена для довгострокового програмування, агентів, складного міркування та знань, і може бути викликана через API Chat Completions, сумісний з OpenAI.

Цей документ в основному описує процес використання Kimi Chat Completion API, за допомогою якого ми можемо легко використовувати офіційні функції діалогу Kimi.

## Процес заявки

Щоб використовувати Kimi Chat Completion API, спочатку перейдіть до [консолі Ace Data Cloud](https://platform.acedata.cloud/console/applications), щоб отримати ваш API Token, залиште його на випадок потреби.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Якщо ви ще не увійшли або не зареєструвалися, вас автоматично перенаправлять на сторінку входу, щоб запросити реєстрацію та вхід, після чого ви автоматично повернетеся на цю сторінку.

**Один API Token дозволяє викликати всі послуги платформи, не потрібно окремо запитувати для кожної послуги.** Перший запит надає безкоштовний ліміт, щоб ви могли безкоштовно спробувати; коли ліміт закінчиться, ви можете поповнити загальний баланс в [консолі](https://platform.acedata.cloud/console/coin).

> 📘 Повна документація: [Kimi Chat Completion API →](https://platform.acedata.cloud/documents/kimi-chat-completions)

## Основне використання

Далі ви можете заповнити відповідні дані на інтерфейсі, як показано на малюнку:

<p>
  <img src="https://cdn.acedata.cloud/ej5ozg.png" width="400" className="m-auto" />
</p>

Під час першого використання цього інтерфейсу потрібно заповнити щонайменше три поля: `authorization` можна вибрати безпосередньо зі списку; `model` використовується для вибору моделі Kimi, рекомендується використовувати `kimi-k3`; `messages` — це масив діалогових повідомлень, кожне повідомлення містить `role` та `content`, де `role` підтримує `user`, `assistant`, `system` та `tool`.

Ви також можете помітити, що праворуч є відповідний код виклику, який ви можете скопіювати та безпосередньо виконати, або просто натиснути кнопку «Спробувати» для тестування.

<p>
  <img src="https://cdn.acedata.cloud/six7e3.png" width="400" className="m-auto" />
</p>

Нижче наведено реальну відповідь K3, отриману з використанням `reasoning_effort: max` (пропущені невикористані розширені поля):

```json theme={null}
{
  "id": "msg_2D4Btbg1WgvkNE3tCYkR4xGA",
  "object": "chat.completion",
  "created": 1784466588,
  "model": "kimi-k3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Привіт! Чим я можу вам допомогти сьогодні?"
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 86,
    "completion_tokens": 206,
    "total_tokens": 292
  }
}
```

У відповіді є кілька полів, описаних нижче:

* `id`, ID, що генерує це завдання діалогу, використовується для унікальної ідентифікації цього завдання діалогу.
* `model`, вибрана модель Kimi з офіційного сайту.
* `choices`, відповіді Kimi на запитання.
* `usage`: статистична інформація про токени для цього запитання-відповіді.

Серед `choices` міститься інформація про відповіді Kimi, в якій `choices` є конкретною інформацією про відповідь Kimi, що можна побачити на малюнку.

<p>
  <img src="https://cdn.acedata.cloud/tv9rul.png" width="400" className="m-auto" />
</p>

Можна побачити, що поле `content` в `choices` містить конкретний зміст відповіді Kimi; K3 також може повернути `reasoning_content`, щоб відобразити процес міркування.

## Інтенсивність міркування K3

`kimi-k3` завжди активує міркування. На верхньому рівні тіла запиту підтримується поле `reasoning_effort`, єдине підтримуване значення наразі — `max`; якщо це поле пропущено, також використовується `max`. `standard`, `high` або інші рядки можуть бути частково сумісно прийняті, але не гарантують зміни поведінки міркування, не покладайтеся на це.

```bash theme={null}
curl https://api.acedata.cloud/kimi/chat/completions \
  -H "Authorization: Bearer $ACEDATACLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [{"role": "user", "content": "Перегляньте цей код і надайте варіанти виправлення"}],
    "reasoning_effort": "max"
  }'
```

При використанні OpenAI SDK можна безпосередньо передати це поле:

```python theme={null}
response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Розробіть надійний чергу завдань"}],
    reasoning_effort="max",
)
```

Під час багатокрокового діалогу та викликів інструментів, будь ласка, передайте повне повідомлення асистента з попереднього раунду назад у `messages`, включаючи `reasoning_content` та `tool_calls`.

### Офіційні посилання

* [Thinking Effort](https://platform.kimi.ai/docs/guide/use-thinking-effort): пояснює, що Kimi K3 завжди активує міркування, наразі єдине підтримуване значення для `reasoning_effort` — `max`.
* [Model Parameter Reference](https://platform.kimi.ai/docs/api/models-overview): порівнює параметри міркування K3 та K2, вікно контексту та відмінності у викликах інструментів.
* [Create Chat Completion](https://platform.kimi.ai/docs/api/chat): офіційний запит Moonshot Chat Completions, відповіді та визначення полів OpenAPI.

## Потокова відповідь

Цей інтерфейс також підтримує потокову відповідь, що дуже корисно для веб-інтеграції, дозволяючи веб-сторінці реалізувати ефект поетапного відображення.

Якщо ви хочете отримати відповідь у потоковому режимі, ви можете змінити параметр `stream` у заголовку запиту на `true`.

Зміна, як показано на малюнку, але код виклику потребує відповідних змін, щоб підтримувати потокову відповідь.

<p>
  <img src="https://cdn.acedata.cloud/a3nzpw.png" width="400" className="m-auto" />
</p>

Після зміни `stream` на `true`, API буде повертати відповідні JSON дані по рядках, на рівні коду нам потрібно внести відповідні зміни, щоб отримати результати по рядках.

Приклад коду виклику на Python:

```python theme={null}
import requests

url = "https://api.acedata.cloud/kimi/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "kimi-k3",
    "messages": [{"role":"user","content":"Привіт"}],
    "reasoning_effort": "max",
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Нижче наведено витяг з початкового, міркувального, основного, завершального та обсягу даних з реальної потокової відповіді K3 Max:

```json theme={null}
data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":null}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{"reasoning_content":"Це"},"finish_reason":null}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{"content":"Привіт"},"finish_reason":null}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[],"usage":{"prompt_tokens":172,"completion_tokens":168,"total_tokens":340}}

data: [DONE]
```

Можна побачити, що у відповіді є багато `data`, `data` містить `choices`, які є останнім відповіддю, що узгоджується з вищезгаданим змістом. `choices` є новим відповіддю, ви можете підключити його до вашої системи. Водночас закінчення потокової відповіді визначається за змістом `data`, якщо зміст є `[DONE]`, це означає, що потокова відповідь завершена. Повернуті результати `data` мають кілька полів, описаних нижче:

* `id`, ID, що генерує цю розмову, використовується для унікальної ідентифікації цієї розмови.
* `model`, вибрано модель Kimi з офіційного сайту.
* `choices`, відповіді Kimi на запитання.

JavaScript також підтримується, наприклад, код для потокового виклику Node.js виглядає так:

```javascript theme={null}
const options = {
  method: "post",
  headers: {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k3",
    "messages": [{"role":"user","content":"Привіт"}],
    "stream": true
  })
};

fetch("https://api.acedata.cloud/kimi/chat/completions", options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
```

Приклад коду на Java:

```java theme={null}
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "kimi-k3");
jsonObject.put("messages", [{"role":"user","content":"Привіт"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/kimi/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
```

Інші мови можна переписати самостійно, принцип однаковий.

## Багатократний діалог

Якщо ви хочете підключити функцію багатократного діалогу, вам потрібно завантажити кілька запитів у поле `messages`, конкретні приклади кількох запитів наведені на зображенні нижче:

<p>
  <img src="https://cdn.acedata.cloud/g85v2a.png" width="400" className="m-auto" />
</p>

Приклад коду на Python:

```python theme={null}
import requests

url = "https://api.acedata.cloud/kimi/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "kimi-k3",
    "messages": [{"role":"assistant","content":"Привіт! Як я можу вам допомогти сьогодні?"},{"role":"user","content":"Яка ти модель?"}],
    "reasoning_effort": "max"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Завантаживши кілька запитів, ви можете легко реалізувати багатократний діалог. Нижче наведено реальну відповідь K3 Max на цей запит (пропущені невикористані розширені поля):

```json theme={null}
{
  "id": "msg_Rqp8nPGBDHWwBlL4VpxuafOp",
  "object": "chat.completion",
  "created": 1784466628,
  "model": "kimi-k3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Я Кімі, AI асистент, розроблений Moonshot AI (月之暗面). У мене немає конкретного публічного ідентифікатора версії моделі, щоб поділитися звідси."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 134,
    "completion_tokens": 346,
    "total_tokens": 480
  }
}
```

Можна побачити, що інформація, що міститься в `choices`, узгоджується з основним використанням, це містить конкретний зміст відповідей Kimi на кілька діалогів, таким чином, можна відповідати на відповідні запитання на основі кількох діалогів.

## Обробка помилок

При виклику API, якщо виникає помилка, API поверне відповідний код помилки та інформацію. Наприклад:

* `400 token_mismatched`: Неправильний запит, можливо, через відсутні або недійсні параметри.
* `400 api_not_implemented`: Неправильний запит, можливо, через відсутні або недійсні параметри.
* `401 invalid_token`: Неавторизовано, недійсний або відсутній токен авторизації.
* `429 too_many_requests`: Занадто багато запитів, ви перевищили ліміт запитів.
* `500 api_error`: Внутрішня помилка сервера, щось пішло не так на сервері.

### Приклад відповіді на помилку

```
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Висновок

Завдяки цьому документу ви дізналися, як використовувати Kimi Chat Completion API для реалізації звичайного діалогу, потокових відповідей, багатократного діалогу, а також як контролювати інтенсивність міркувань K3 за допомогою `reasoning_effort`.
