Генерація відповідей у чаті
Генерація відповідей у чаті, сумісна з OpenAI, з підтримкою потокової передачі, зображень, виклику інструментів і керування міркуванням.
POST /v1/chat/completions
curl https://api.unquant.io/v1/chat/completions \
-H "Authorization: Bearer $UNQUANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash",
"messages":[{"role":"user","content":"Hello!"}]}'Поля запиту
modelрядокОбов’язковеglm-5.3-flash або qwen-3.8-flash-next.
messagesмасивОбов’язковеРолі: system, user, assistant і tool. Вміст — рядок або масив частин типу text та image_url.
streamлогічне значенняПередавати відповідь потоком подій від сервера.
stream_optionsоб’єкт{"include_usage": true} додає завершальний фрагмент із кількістю токенів.
max_tokensціле числоМаксимальна довжина відповіді.
max_completion_tokensціле числоТе саме, що й max_tokens.
temperatureчислоСтупінь випадковості під час семплювання.
top_pчислоЯдерне семплювання.
top_kціле числоВибір серед k найімовірніших токенів.
min_pчислоМінімальна відносна ймовірність токена.
seedціле числоПочаткове значення генератора випадкових чисел для відтворюваного семплювання.
stopрядок або масивПослідовності для зупинки генерації.
frequency_penaltyчислоШтрафувати токени залежно від частоти їх появи.
presence_penaltyчислоШтрафувати токени, які вже з’являлися хоча б раз.
repetition_penaltyчислоМультиплікативний штраф за повторення.
toolsмасивФункції, які може викликати модель, у форматі OpenAI.
tool_choiceрядок або об’єктauto, none, required або функція, указана за назвою.
parallel_tool_callsлогічне значенняДозволити кілька викликів інструментів за один хід.
response_formatоб’єктВиведення у форматі JSON.
logprobsлогічне значенняПовертати логарифми ймовірностей токенів.
top_logprobsціле числоКількість альтернатив для кожного токена, які потрібно повернути.
nціле числоМає дорівнювати 1: одна згенерована відповідь на запит.
reasoning_effortрядокДля обох моделей: none, low або high; GLM-5.3-Flash також підтримує max.
chat_template_kwargsоб’єктПеремикачі шаблону, наприклад {"enable_thinking": false}.
Інші поля ігноруються.
Відповідь
response.choices[0].message.contentПоказники використання повертаються для вашого моніторингу; плата за них не нараховується.
Потокова передача
Якщо задано "stream": true, відповідь надходить потоком подій від сервера у форматі фрагментів OpenAI та завершується повідомленням data: [DONE]. Зчитуйте текст із choices[0].delta.content.
Зображення
Обидві моделі приймають зображення як частини типу image_url, що містять URL-адресу даних у форматі base64 (data:image/png;base64,..., JPEG або WebP). Зображення за зовнішніми URL-адресами не завантажуються, а запит із таким посиланням повертає помилку 400.
{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}Виклик інструментів
Передавайте tools так само, як в API OpenAI. Коли модель викликає інструмент, відповідь містить finish_reason: "tool_calls" і message.tool_calls; виконайте інструмент, додайте повідомлення tool із його результатом та відповідним tool_call_id і надішліть наступний запит.
Міркування
Обидві моделі міркують перед відповіддю та підтримують reasoning_effort: none — для відповідей без міркувань, low — для стислих міркувань, high — для складніших завдань; GLM-5.3-Flash також підтримує max і за замовчуванням використовує high. Міркування повертаються окремо в reasoning_content і ніколи не додаються до content. "thinking": {"type": "disabled"} і "chat_template_kwargs": {"enable_thinking": false} також вимикають міркування.
Одночасні запити
Ваш тарифний план визначає, скільки запитів можуть виконуватися одночасно за всіма вашими ключами разом. Запит понад цей ліміт одразу повертає помилку 429 і не потрапляє до черги; це не впливає на запити, які вже виконуються.