Unquant

Opening your workspace…

Unquant

Генерация ответов в чате

Генерация ответов в чате, совместимая с 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логическое значение

Передавать ответ потоком событий от сервера (SSE).

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 ответ поступает в виде событий от сервера (SSE), содержащих фрагменты в формате OpenAI, и завершается сообщением data: [DONE]. Читайте текст из choices[0].delta.content.

Изображения

Обе модели принимают изображения в частях типа image_url, содержащих data 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, затем повторите вызов API.

Рассуждения

Обе модели рассуждают перед ответом и поддерживают reasoning_effort: none для ответов без рассуждений, low для кратких рассуждений или high для более сложных задач; GLM-5.3-Flash также поддерживает max и по умолчанию использует high. Ход рассуждений возвращается отдельно в reasoning_content и никогда не добавляется в content. Параметры "thinking": {"type": "disabled"} и "chat_template_kwargs": {"enable_thinking": false} также отключают рассуждения.

Одновременные запросы

Ваш тариф определяет, сколько запросов могут выполняться одновременно суммарно по всем вашим ключам. Запрос сверх этого лимита сразу возвращает ошибку 429 и не ставится в очередь; уже выполняющиеся запросы продолжают обрабатываться.

Руководство разработчика