Пригласите друзей и получите бесплатные токены!Узнать больше

Создание завершения чата (qwen-mt-turbo)

По заданному промпту (подсказке) модель возвращает одно или несколько предсказанных завершений (Completion), а также может возвращать вероятности альтернативных токенов (Tokens) для каждой позиции. Данный интерфейс в первую очередь используется для общения с моделью и обработки задач естественного языка, таких как машинный перевод.

Официальная документация: 阿里云百炼 - Модель машинного перевода

Информация об интерфейсе

  • Протокол: HTTP/HTTPS
  • Метод запроса: POST
  • Путь запроса: https://api.codingplanx.ai/v1/chat/completions

Заголовки запроса (Headers)

Название параметраОбязательноТипПример значенияОписание
Content-TypeДаstringapplication/jsonФормат данных
AcceptДаstringapplication/jsonОжидаемый формат ответа
AuthorizationНетstringBearer {{YOUR_API_KEY}}Учетные данные для аутентификации API

Параметры запроса (Request Body)

Формат тела запроса — application/json.

Название параметраОбязательноТипОписание
modelДаstringИдентификатор используемой модели. Например: qwen-mt-turbo.
messagesДаarrayСписок сообщений, составляющих диалог на данный момент. Содержит поля role и content.
? roleНетstringРоль отправителя сообщения, например, user, assistant или system.
? contentНетstringСодержимое сообщения.
toolsДаarrayСписок инструментов, которые может вызывать модель. В настоящее время в качестве инструментов поддерживаются только функции. Используется для предоставления списка функций, для которых модель может генерировать JSON-ввод.
tool_choiceДаobjectУправляет тем, какую функцию вызывает модель (если таковые имеются). none означает отсутствие вызова, auto означает, что модель выбирает сама. Также можно принудительно вызвать функцию с помощью {"type": "function", "function": {"name": "my_function"}}.
temperatureНетintegerТемпература выборки, от 0 до 2. Более высокие значения (например, 0.8) делают вывод более случайным, а более низкие (например, 0.2) — более сфокусированным и детерминированным. Рекомендуется изменять либо это значение, либо top_p, но не оба одновременно.
top_pНетintegerПараметр ядерной выборки (nucleus sampling). Значение 0.1 означает, что рассматриваются только токены, составляющие верхние 10% вероятностной массы. Рекомендуется изменять либо это значение, либо temperature, но не оба одновременно.
nНетintegerСколько вариантов завершения чата генерировать для каждого входящего сообщения. По умолчанию 1.
streamНетbooleanВключить ли потоковый вывод. Если true, частичные изменения сообщений будут отправляться в виде Server-Sent Events (SSE), а по завершении будет отправлено data: [DONE]. По умолчанию false.
stopНетstringДо 4 последовательностей, на которых API остановит дальнейшую генерацию токенов.
max_tokensНетintegerМаксимальное количество токенов для генерации в ответе чата. Общая длина входных и сгенерированных токенов ограничена длиной контекста модели.
presence_penaltyНетnumberЧисло от -2.0 до 2.0. Положительные значения штрафуют новые токены в зависимости от того, присутствуют ли они уже в тексте, тем самым повышая вероятность того, что модель перейдет к новым темам.
frequency_penaltyНетnumberЧисло от -2.0 до 2.0. Положительные значения штрафуют новые токены на основе их текущей частоты в тексте, снижая вероятность того, что модель будет повторять одни и те же фразы.
logit_biasНетobject/nullИзменяет вероятность появления указанных токенов в ответе. Принимает JSON-объект, сопоставляющий идентификаторы токенов со значением смещения (от -100 до 100).
userНетstringУникальный идентификатор вашего конечного пользователя, который может помочь в мониторинге и обнаружении злоупотреблений.
response_formatНетobjectОбъект, определяющий формат, в котором модель должна выводить данные. Установка {"type": "json_object"} включает режим JSON. Примечание: При использовании этого параметра необходимо в сообщении дать указание модели сгенерировать JSON.
seenНетintegerФункция в стадии бета-тестирования. Сид (seed) для детерминированной выборки. Повторные запросы с одним и тем же сидом и параметрами должны возвращать одинаковые результаты.

Пример запроса (Сценарий машинного перевода)

{
  "model": "qwen-mt-turbo",
  "messages": [
    {
      "role": "user",
      "content": "看完这个视频我没有笑"
    }
  ],
  "translation_options": {
    "source_lang": "auto",
    "target_lang": "English"
  }
}

(Примечание: translation_options — это специфический расширенный параметр, характерный для модели перевода qwen-mt-turbo)

Параметры ответа (Response Body)

Формат возвращаемых данных — application/json.

Название параметраТипОписание
idstringУникальный идентификатор завершения чата.
objectstringТип объекта, обычно chat.completion.
createdintegerМетка времени создания (в секундах формата Unix).
choicesarrayСписок вариантов завершения.
? indexintegerИндекс данного варианта в списке.
? messageobjectОбъект сообщения, сгенерированный моделью. Содержит role и content.
? finish_reasonstringПричина, по которой модель остановила генерацию (например, stop означает нормальное завершение, length означает достижение лимита токенов).
usageobjectСтатистика потребления токенов для этого запроса.
? prompt_tokensintegerКоличество токенов, израсходованных на промпт (входящий запрос).
? completion_tokensintegerКоличество токенов, израсходованных на сгенерированный контент.
? total_tokensintegerОбщее количество израсходованных токенов.

Пример ответа (200 OK)

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\r
\r
Hello there, how may I assist you today?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

Часто задаваемые вопросы (FAQ)

1. Для каких сценариев в основном используется модель qwen-mt-turbo?

qwen-mt-turbo — это модель, глубоко оптимизированная для задач машинного перевода (Machine Translation). Хотя она использует стандартный интерфейс Chat Completions, передача текста для перевода вместе с настройками исходного и целевого языков позволяет получать результаты перевода высочайшего качества.

2. Как реализовать эффект печатной машинки (потоковый вывод)?

В теле запроса установите параметр stream в значение true. В этом случае интерфейс не будет возвращать полный JSON-ответ сразу, а начнет непрерывно отправлять блоки данных (data chunks) по протоколу Server-Sent Events (SSE). Когда генерация контента завершится, будет возвращен маркер data: [DONE], обозначающий конец потока.

3. Почему я получаю ошибку 401 Unauthorized?

Пожалуйста, проверьте поле Authorization в заголовках запроса. Убедитесь, что его формат — Bearer <ВАШ_API_KEY> (обратите внимание на пробел между Bearer и ключом API), а также в том, что сам API-ключ действителен и имеет права на вызов данной модели.

4. Как следует настраивать параметры temperature и top_p?

Оба эти параметра используются для управления случайностью вывода модели. Официально рекомендуется изменять только один из них, оставляя другой по умолчанию. Если вы хотите, чтобы результаты перевода или ответов были более строгими и точными, рекомендуется снизить temperature (например, до 0.1 - 0.2); если же вы хотите сгенерировать более креативный контент, можете повысить это значение (например, до 0.8).

5. Является ли параметр translation_options обязательным в примере запроса?

Это расширенная конфигурация, поддерживаемая специализированными моделями перевода, такими как qwen-mt-turbo, которая используется для явного указания исходного языка (source_lang) и целевого языка (target_lang). Хотя вы можете использовать естественный язык в content поля messages, чтобы попросить модель перевести текст, использование translation_options делает команду на перевод более четкой, а результат — более стабильным. Если модель используется для базового общения (не перевода), этот параметр можно не передавать.