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

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

> Grok 集成指南 - XHuoAPI

xAI Grok — це дуже потужна AI система діалогу, яка може генерувати плавні та природні відповіді всього за кілька секунд, просто ввівши підказку. Grok вирізняється своїм унікальним гумористичним стилем та здатністю отримувати інформацію з мережі в реальному часі, сьогодні Grok вже проявив себе в кількох інноваційних сферах, і його вплив швидко розширюється. Незалежно від того, чи це повсякденні розмови, креативне письмо, чи технічний аналіз, чи налагодження коду, Grok може надати інтелектуальну допомогу з глибокими інсайтами, забезпечуючи нові виміри підтримки для рішень та творчості користувачів.

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

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

Щоб використовувати Grok Chat Completion API, спочатку можна перейти на сторінку [Grok Chat Completion API](https://api.xhuoapi.ai/documents/faf08b59-36aa-4d26-b5d9-a18f113cc2be) та натиснути кнопку «Acquire», щоб отримати необхідні для запиту облікові дані:

![](https://cdn.xhuoapi.ai/nyq0xz.png)

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

При першій заявці буде надано безкоштовний ліміт, який дозволяє безкоштовно використовувати цей API.

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

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

<p>
  <img src="https://cdn.xhuoapi.ai/vunnjf.png" width="400" className="m-auto" />
</p>

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

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

Звичайні необов'язкові параметри:

* `max_tokens`: обмежує максимальну кількість токенів для однієї відповіді.
* `temperature`: генерує випадковість, від 0 до 2, чим більше значення, тим більше розсіювання.
* `n`: скільки кандидатних відповідей генерувати за один раз.

<p>
  <img src="https://cdn.xhuoapi.ai/d7iwun.png" width="400" className="m-auto" />
</p>

Після виклику ми отримуємо наступний результат:

```json theme={null}
{
  "id": "foaicmpl-13936918-cb99-49e1-b94c-bde98b482ed4",
  "model": "grok-3",
  "object": "chat.completion",
  "created": 1755839683,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Привіт! Як справи? 😎 Готовий зануритися в те, про що ти сьогодні думаєш?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 20,
    "total_tokens": 28,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null
  }
}
```

У повернутому результаті є кілька полів, описаних нижче:

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

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

<p>
  <img src="https://cdn.xhuoapi.ai/p8vupk.png" width="400" className="m-auto" />
</p>

Можна побачити, що поле `content` в `choices` містить конкретний зміст відповіді Grok.

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

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

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

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

<p>
  <img src="https://cdn.xhuoapi.ai/k883qa.png" width="400" className="m-auto" />
</p>

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

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

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/grok/chat/completions"

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

payload = {
    "model": "grok-3",
    "messages": [{"role":"user","content":"Привіт"}],
    "stream": True
}

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

Вихідний ефект виглядає так:

```json theme={null}
data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "Привіт, "}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "як"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data:
{"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "'s г"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "добре?"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": " Реа"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "ди т"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "о ді"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "ве і"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "нто "}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "що"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "коли-небудь"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "ти"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "'є "}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "понд"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "ерін"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "г аб"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "зовні "}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "сьогодні"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {"content": "?"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null} 

data: {"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": null, "choices": [{"delta": {}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": {"prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null}} 

data:
{"id": "foaicmpl-503ab14f-3f22-46ab-9f91-3fb44773be38", "object": "chat.completion.chunk", "created": 1755839790, "model": "grok-3", "system_fingerprint": "", "choices": [], "usage": {"prompt_tokens": 8, "completion_tokens": 18, "total_tokens": 26, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null}} 

дані: [Готово]
```

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

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

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": "grok-3",
    "messages": [{"role":"user","content":"Hello"}],
    "stream": true
  })
};

fetch("https://api.xhuoapi.ai/v1/grok/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", "grok-3");
jsonObject.put("messages", [{"role":"user","content":"Hello"}]);
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.xhuoapi.ai/v1/grok/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.xhuoapi.ai/t8cya8.png" width="400" className="m-auto" />
</p>

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

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/grok/chat/completions"

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

payload = {
    "model": "grok-3",
    "messages": [{"role":"user","content":"Hello"},{"role":"assistant","content":"What model are you?"},{"role":"user","content":"What did I just say?"}]
}

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

Завантаживши кілька запитів, ви можете легко реалізувати багатократний діалог, отримавши таку відповідь:

```json theme={null}
{
  "id": "foaicmpl-984ebc53-76b3-4d33-b0e8-0307ab4965af",
  "model": "grok-3",
  "object": "chat.completion",
  "created": 1755839996,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "You said, \"Hello.\""
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 27,
    "completion_tokens": 6,
    "total_tokens": 33,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null
  }
}
```

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

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

При виклику 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"
}
```

## Висновок

Завдяки цьому документу ви дізналися, як використовувати OpenAI Chat Completion API для легкого реалізації функції діалогу офіційного OpenAI ChatGPT. Сподіваємося, що цей документ допоможе вам краще підключити та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.
