Группы каналов
Claude · Value, GPT · Value и Gemini · Value объединяют ёмкость для каждого семейства моделей за половину прайсовой цены. Как выбрать группу для ключа или для отдельного запроса.
Каждый вызов в Half Off Dev обслуживают три группы каналов, по одной на семейство моделей. Каждая из них — пул мощностей из нескольких каналов (отдельных источников ёмкости), которые обслуживают одни и те же модели по одной цене. Все три тарифицируются за половину официальной прайсовой цены, так что выбранная группа никогда не меняет то, сколько вы платите.
Большинству разработчиков эта настройка не нужна. Новый ключ начинает с режима Auto, который отправляет каждый запрос в группу, обслуживающую его модель. Читайте дальше, если хотите явно закрепить ключ или запрос за группой либо узнать, какая группа ответила.
Три группы#
| Group id | Название | Обслуживает | Множитель |
|---|---|---|---|
claude-value | Claude · Value | Модели Claude | ×0.50 |
gpt-value | GPT · Value | Модели GPT | ×0.50 |
gemini-value | Gemini · Value | Модели Gemini | ×0.50 |
Каждая группа объединяет несколько каналов ради пропускной способности и держит каждый разговор на одном канале, чтобы кеш промпта не остывал между репликами (см. Кеширование промптов). Поле groups в GET /v1/models называет группу каждой модели, а маркетплейс показывает все группы с текущим множителем.
Выбор группы#
Запрос попадает в группу тремя способами:
| Настройка | Какая группа обслуживает вызов |
|---|---|
| Ключ в режиме Auto, без заголовка | Группа, обслуживающая запрошенную модель. |
Ключ в режиме Auto, заголовок x-halfoff-group | Группа, указанная в заголовке. |
| Ключ привязан к группе | Всегда группа ключа; любой заголовок игнорируется. |
Поскольку у каждого семейства ровно одна группа, Auto уже выбирает правильную. Привязка полезна, когда ключ нужно ограничить одним семейством, например ключ для ассистента по программированию, который должен обращаться только к Claude: запросы к другим моделям тогда завершатся ошибкой 404, а не будут обслужены.
Привяжите ключ#
При создании ключа в разделе API-ключи установите Channel group на одну из трёх групп. С этого момента каждый запрос с этим ключом идёт в эту группу, что бы ни запрашивалось. Привязку нельзя изменить позже; если нужна другая, создайте новый ключ. Подробнее о настройках ключей см. API-ключи.
Выберите группу для запроса#
Для ключа в режиме Auto добавьте заголовок x-halfoff-group с id группы. Он учитывается на каждой конечной точке моделей, во всех трёх форматах API.
curl https://halfoff.dev/v1/messages \
-H "x-api-key: $HALFOFF_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "x-halfoff-group: claude-value" \
-H "content-type: application/json" \
-d '{"model": "claude-haiku-5.5", "max_tokens": 256,
"messages": [{"role": "user", "content": "Say hello in Portuguese."}]}'OpenAI SDK принимают ту же опцию default_headers / defaultHeaders.
| Если… | Вы получите |
|---|---|
| Ключ привязан к группе | Заголовок игнорируется, вызов обслуживает группа ключа. |
| Группы с таким id нет | 400 с Unknown group '<id>'. |
Группа не обслуживает эту модель в вашем формате API (например, gpt-value с моделью Claude) | 404 с Model '<id>' is not served in <format> format in group '<group>'. |
Какая группа ответила#
Успешные ответы содержат два заголовка, которые это сообщают:
| Заголовок | Пример |
|---|---|
x-halfoff-group | claude-value |
x-halfoff-channel | Pooled%20capacity (метка канала группы в URL-кодировке) |
Группа также записывается для каждого вызова в Логи, где по ней можно фильтровать.
Переключение внутри группы#
Если канал отвечает ошибкой или заполнен, шлюз повторяет запрос на другом канале. С привязанным ключом или заголовком x-halfoff-group каждый повтор остаётся в этой группе, поэтому ни группа, ни цена не могут измениться у вас за спиной. В режиме Auto повтор уходит в группу, обслуживающую модель, а x-halfoff-group всегда называет ту, что в итоге ответила. Когда происходят повторы, объясняется в разделе Лимиты запросов и переключение.
Сколько стоит каждая группа#
Вызов стоит прайсовую цену модели, умноженную на множитель группы, которая его обслужила. Все три группы имеют ×0.50, поэтому каждый вызов тарифицируется за половину прайсовой цены, какая бы группа его ни обслужила. Полный расчёт приведён в разделе Модели и цены.