halfoff.devДокументация
Получить ключ
Models API

Группы каналов

Claude · Value, GPT · Value и Gemini · Value объединяют ёмкость для каждого семейства моделей за половину прайсовой цены. Как выбрать группу для ключа или для отдельного запроса.

Каждый вызов в Half Off Dev обслуживают три группы каналов, по одной на семейство моделей. Каждая из них — пул мощностей из нескольких каналов (отдельных источников ёмкости), которые обслуживают одни и те же модели по одной цене. Все три тарифицируются за половину официальной прайсовой цены, так что выбранная группа никогда не меняет то, сколько вы платите.

Большинству разработчиков эта настройка не нужна. Новый ключ начинает с режима Auto, который отправляет каждый запрос в группу, обслуживающую его модель. Читайте дальше, если хотите явно закрепить ключ или запрос за группой либо узнать, какая группа ответила.

Три группы#

Group idНазваниеОбслуживаетМножитель
claude-valueClaude · ValueМодели Claude×0.50
gpt-valueGPT · ValueМодели GPT×0.50
gemini-valueGemini · 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-groupclaude-value
x-halfoff-channelPooled%20capacity (метка канала группы в URL-кодировке)

Группа также записывается для каждого вызова в Логи, где по ней можно фильтровать.

Переключение внутри группы#

Если канал отвечает ошибкой или заполнен, шлюз повторяет запрос на другом канале. С привязанным ключом или заголовком x-halfoff-group каждый повтор остаётся в этой группе, поэтому ни группа, ни цена не могут измениться у вас за спиной. В режиме Auto повтор уходит в группу, обслуживающую модель, а x-halfoff-group всегда называет ту, что в итоге ответила. Когда происходят повторы, объясняется в разделе Лимиты запросов и переключение.

Сколько стоит каждая группа#

Вызов стоит прайсовую цену модели, умноженную на множитель группы, которая его обслужила. Все три группы имеют ×0.50, поэтому каждый вызов тарифицируется за половину прайсовой цены, какая бы группа его ни обслужила. Полный расчёт приведён в разделе Модели и цены.