Skip to content

Быстрый старт

С помощью этой инструкции вы создадите деплоймент языковой модели и проверите ее работу.

Перед началом работы

  1. В веб-консоли выберите нужный проект. Если у вас нет проекта, создайте его.

  2. В списке сервисов выберите GPT Model Hub. При первом запуске нажмите кнопку Активировать, для этого необходима роль admin.

  3. Создайте два сервисных аккаунта:

    • Сервисный аккаунт с именем sa-cli с ролью gpt.deployment.editor. От имени этого сервисного аккаунта будет инициализирована MWS CLI и создан деплоймент.
    • Сервисный аккаунт с именем sa-inferencer с ролью gpt.inferencer. От имени этого сервисного аккаунта вы будете обращаться к модели.
  4. Создайте ключи доступа:

  5. Установите и настройте утилиту MWS CLI:

    1. Инициализируйте профиль. Используйте авторизованный ключ сервисного аккаунта sa-cli.
  6. Установите утилиту jq.

Деплоймент модели

  1. Получите список доступных базовых моделей:

    bash
    mws gpt model list
  2. Выберите подходящую вам модель. В этом руководстве в качестве примера используется модель qwen3-32b.

  3. Создайте деплоймент модели:

    bash
    mws gpt deployment create qwen3-32b --body '
    metadata:
      displayName: "qwen3-32b"
      description: "Модель для быстрого старта"
    spec:
      model: "gpt/projects/<имя проекта>/models/qwen3-32b"'
    Пример вывода команды
    bash
    metadata:
        displayName: qwen3-32b
        createTime: "2025-10-23T08:27:22Z"
        updateTime: "2025-10-23T08:27:22Z"
        etag: f65d6b2b-e5ad-4622-8819-702889fb63d6
        description: Модель для быстрого старта
        id: gpt/projects/<имя проекта>/deployments/qwen3-32b
    spec:
        model: gpt/projects/<имя проекта>/models/qwen3-32b
    status:
        ready:
            state: OK
        modalities:
            text: true
            vision: false
            audio: false
        capabilities:
            chatCompletion: true
            embedding: false
        deprecation:
            inference: "2040-10-16T14:16:38Z"

Работа с моделью

Для работы с OpenAI-совместимым API используется базовый URL https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1.

Доступно два режима ответа модели:

  • Опция streaming отключена — модель возвращает ответ модели одним сообщением, без разбиения на части;
  • Опция streaming включена — модель возвращает ответ частями по мере генерации.

Запрос без streaming

bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/chat/completions \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
      "model": "qwen3-32b",
      "messages": [
        {
          "role": "user", "content": "Привет!"
        }
      ]
    }' | jq .
Пример ответа от модели
bash
{
  "id": "chatcmpl-c37a7ecbae094877b28654dbbfa14b81",
  "created": 1758740886,
  "model": "qwen3-32b",
  "object": "chat.completion",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "Привет! Как я могу помочь?",
        "role": "assistant",
        "audio": null,
        "refusal": null,
      }
    }
  ],
  "usage": {
    "completion_tokens": 45,
    "prompt_tokens": 72,
    "total_tokens": 117,
  },
}

В этом примере в поле usage:

  • prompt_tokens — количество входящих токенов запроса (токенов промпта);
  • completion_tokens — количество исходящих токенов, сгенерированных моделью (токенов ответа).

Входящие и исходящие токены тарифицируются отдельно.

Запрос со streaming

bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/chat/completions \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
      "model": "qwen3-32b",
      "stream": true,
      "stream_options": {
        "include_usage": true
      },
      "messages": [
        {
          "role": "user", "content": "Привет!"
        }
      ]
    }'
Пример ответа от модели
bash
{"id":"chatcmpl-e999cff5eb274f70988477c978c7d9f7","created":1775157501,"model":"qwen3-32b","choices":[{"delta":{"content":"Пр","reasoning":null,"reasoning_content":null,"refusal":null,"role":"assistant"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk"}
{"id":"chatcmpl-e999cff5eb274f70988477c978c7d9f7","created":1775157501,"model":"qwen3-32b","choices":[{"delta":{"content":"ив","reasoning":null,"reasoning_content":null,"refusal":null},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk"}
{"id":"chatcmpl-e999cff5eb274f70988477c978c7d9f7","created":1775157501,"model":"qwen3-32b","choices":[{"delta":{"content":"ет","reasoning":null,"reasoning_content":null,"refusal":null},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk"}
{"id":"chatcmpl-e999cff5eb274f70988477c978c7d9f7","created":1775157501,"model":"qwen3-32b","choices":[{"delta":{"content":"","reasoning":null,"reasoning_content":null,"refusal":null},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk"}
...
{"id":"chatcmpl-e999cff5eb274f70988477c978c7d9f7","created":1775157501,"model":"qwen3-32b","choices":[{"delta":{"content":null,"reasoning":null,"reasoning_content":null,"refusal":null},"finish_reason":null,"index":0,"logprobs":null}],"usage":{"completion_tokens":21,"prompt_tokens":12,"total_tokens":33},"object":"chat.completion.chunk"}
{"id":"chatcmpl-e999cff5eb274f70988477c978c7d9f7","created":1775157501,"model":"qwen3-32b","choices":[{"delta":{"content":null,"reasoning":null,"reasoning_content":null,"refusal":null},"finish_reason":null,"index":0,"logprobs":null}],"usage":{"completion_tokens":21,"completion_tokens_details":{"reasoning_tokens":0},"prompt_tokens":12,"total_tokens":33},"object":"chat.completion.chunk"}

В этом примере в поле usage:

  • prompt_tokens — количество входящих токенов запроса (токенов промпта);
  • completion_tokens — количество исходящих токенов, сгенерированных моделью (токенов ответа).

Входящие и исходящие токены тарифицируются отдельно.