Qwen работает с тем же ключом gd-… и общим балансом Guard. Для генерации доступны семь моделей; их точные ID, вход, контекст и цены приведены ниже.
Получите ключ в @subscribe_ai_bot, затем выберите HTTP, Python SDK или Node.js SDK. Покупка даёт один общий ключ; отдельный аккаунт Qwen не нужен.
- Сохраните ключ в переменной
GUARD_API_KEY; не вставляйте его в репозиторий и не печатайте в журнал. - Выберите API: Messages, Chat Completions или Responses. У каждого есть общий путь
/v1и отдельный путь/qwen/v1. - Передайте точный
modelи бюджет вывода 4096. Для первого запроса используйте обычный JSON-ответ. - Проверьте текст, конечное состояние и
usage; затем при необходимости включитеstream: true.
export GUARD_API_KEY="gd-ваш-ключ"
curl https://api.guardrelay.ai/qwen/v1/messages \
-H "Authorization: Bearer $GUARD_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"qwen3.7-plus","max_tokens":4096,"messages":[{"role":"user","content":"Reply with OK"}]}'$env:GUARD_API_KEY = "gd-ваш-ключ"
$headers = @{
Authorization = "Bearer $env:GUARD_API_KEY"
"anthropic-version" = "2023-06-01"
}
$body = @{
model = "qwen3.7-plus"
max_tokens = 4096
messages = @(@{ role = "user"; content = "Reply with OK" })
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Method Post `
-Uri "https://api.guardrelay.ai/qwen/v1/messages" `
-Headers $headers `
-ContentType "application/json" `
-Body $body| API | Общий путь | Путь Qwen | Бюджет вывода |
|---|---|---|---|
| Messages | POST /v1/messages | POST /qwen/v1/messages | max_tokens |
| Chat Completions | POST /v1/chat/completions | POST /qwen/v1/chat/completions | max_tokens / max_completion_tokens |
| Responses | POST /v1/responses | POST /qwen/v1/responses | max_output_tokens |
Оба пространства имён дают один контракт Qwen и один биллинг. Семейный адрес удобен для отдельного клиентского профиля и принимает только модели Qwen; общий адрес удобен, если приложение уже выбирает семейство по model.
| Model ID | Вход | Контекст | Предел ответа |
|---|---|---|---|
qwen3.8-max | Текст и картинки | 1 000 000 | 131 072 |
qwen3.7-max | Только текст | 1 000 000 | 131 072 |
qwen3.7-plus | Текст и картинки | 1 000 000 | 65 536 |
qwen3.6-plus | Текст и картинки | 1 000 000 | 65 536 |
qwen3.5-plus | Текст и картинки | 1 000 000 | 65 536 |
qwen3.5-omni-plus | Текст и картинки | 262 144, вход до 196 608 | 65 536 |
qwen3.8-omni-flash | Текст и картинки | 1 000 000 | 131 072 |
| API | Обычный финал | Финал SSE | Usage |
|---|---|---|---|
| Messages | stop_reason: end_turn, max_tokens, tool_use | message_delta → message_stop | input_tokens, output_tokens |
| Chat Completions | choices[].finish_reason: stop, length, tool_calls | финальный блок данных + [DONE] | prompt_tokens, completion_tokens, total_tokens |
| Responses | status: completed, incomplete | response.completed | input_tokens, output_tokens, total_tokens |
| Модель | Вход запроса, токенов | Ввод / 1M | Вывод / 1M |
|---|---|---|---|
qwen3.8-max | до 1 000 000 | $2.00 | $6.00 |
qwen3.7-max | до 1 000 000 | $2.50 | $7.50 |
qwen3.7-plus | до 256 000 | $0.40 | $1.60 |
qwen3.7-plus | свыше 256 000 | $1.20 | $4.80 |
qwen3.6-plus | до 256 000 | $0.50 | $3.00 |
qwen3.6-plus | свыше 256 000 | $2.00 | $6.00 |
qwen3.5-plus | до 256 000 | $0.40 | $2.40 |
qwen3.5-plus | свыше 256 000 | $0.50 | $3.00 |
qwen3.5-omni-plus | до 196 608 | $1.40 | $8.30 |
qwen3.8-omni-flash | до 1 000 000 | $0.15 | $0.47 |
Ставки равны официальным ставкам Alibaba Cloud для этих моделей, множитель 1, включая PRIVATE. У Plus-моделей два уровня: если вход запроса больше 256 000 токенов, весь запрос, и ввод, и вывод, считается по второй строке. Если модель хотя бы раз искала в сети, запрос стоит на $0.01 больше; число поисков на цену не влияет. Кеша у Qwen нет.
Пример для qwen3.7-plus: 10 000 входных и 2000 выходных токенов стоят 10000×0.40/1M + 2000×1.60/1M = $0.00720000, а если модель искала в сети, $0.01720000 при любом числе поисков. При 300 000 входных и 2000 выходных токенов действует второй уровень: 300000×1.20/1M + 2000×4.80/1M = $0.36960000.
curl https://api.guardrelay.ai/qwen/v1/messages/count_tokens \
-H "Authorization: Bearer $GUARD_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"qwen3.7-plus","messages":[{"role":"user","content":"Count this input"}]}'Подсчёт выполняет сам шлюз, без обращения к модели и без списания. Он возвращает ту же оценку входа, по которой считается генерация, и заголовок X-Guard-Usage-Source: estimated.
- Один аккаунт Qwen обслуживает одну клиентскую сессию и выполняет один запрос за раз. Параллельные запросы одной сессии ждут друг друга.
- Новая сессия того же ключа, например после
/clear, получает аккаунт, как только тот закончит текущий запрос. Запросы других ключей ждут свободный аккаунт. - Если свободного аккаунта нет, запрос ждёт в очереди до 30 секунд, затем получает
429 queue_timeoutс заголовкомRetry-After: 30. - Генерация одного ответа длится не больше 10 минут, после этого приходит ошибка
generation_timeout. - После 10 минут без запросов аккаунт освобождается. Следующее сообщение продолжит беседу по истории, которую прислал клиент.
Если запрошенная модель занята у поставщика или её лимит исчерпан, ответит ближайшая свободная модель Qwen, которая принимает такой запрос. Замена происходит до первого символа ответа. Клиент видит в ответе запрошенную модель и платит по её ставке. Если подходящей свободной модели нет, приходит 429 provider_at_capacity с Retry-After: 5, а при временной недоступности Qwen приходит 503 qwen_unavailable с Retry-After: 30.
В личном кабинете Qwen можно поставить на паузу и задать для него часовой и дневной лимит расходов ключа. На паузе запросы Qwen получают 403 api_key_paused, при достигнутом лимите 429 customer_hour_limit или 429 customer_day_limit.
Клиентские функции и поиск в сети устроены по-разному. Функцию исполняет ваше приложение и возвращает результат модели. Поиск Qwen выполняет сам, когда решает, что он нужен; отдельного параметра для включения или запрета поиска нет. Если модель искала хотя бы раз, Guard добавляет к запросу $0.01 один раз, сколько бы поисков ни было.
| API | Объявление клиентской функции |
|---|---|
| Chat Completions | {type: "function", function: {name, description, parameters}} |
| Messages | {name, description, input_schema} |
| Responses | {type: "function", name, description, parameters} |
usage, stop_reason, tools и SSE.Chat CompletionsOpenAI-совместимый запрос, инструменты и картинки.ResponsesПолная история в input и финал incomplete.Ошибки QwenКоды, очередь, повтор и действия клиента.Python SDKКороткие примеры для OpenAI и Anthropic SDK.Node.js SDKChat Completions и Responses без скрытых повторов.