Перейти к содержимому
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

API NotHoly встаёт в ваш код OpenAI или Anthropic

Поменяйте base URL, ключ и ID модели. Ваш SDK OpenAI или Anthropic и инструменты поверх него продолжают работать с моделями NotHoly.

Средний3 мин чтенияАвтор: NotHoly

Переход между провайдерами моделей почти всегда означает переписывание: другой клиент, другие поля запроса, другой streaming. Именно эта цена держит команду у провайдера долго после того, как появился повод уйти. NotHoly убирает цену тем, что говорит на двух формах API, которые ваш код уже использует.

API совместим и с форматом OpenAI, и с форматом Anthropic. Вы меняете base URL, ключ и ID модели, а клиентская библиотека, тела запросов, описания инструментов и streaming, которые вы уже написали, продолжают работать. Один аккаунт и один ключ достают до обеих форм. Ключи, бюджеты и список моделей лежат на одном аккаунте, так что команда может переносить по одному сервису за раз.

Форма OpenAI

Направьте SDK OpenAI на NotHoly и выберите ID модели из каталога. Больше в вызове ничего не меняется, включая функциональные инструменты, которые вы передаёте, и способ читать потоковый ответ.

python
from openai import OpenAI

client = OpenAI(base_url="https://api.notholy.com/v1", api_key="nh_live_...")

r = client.chat.completions.create(
    model="MODEL_ID",
    messages=[{"role": "user", "content": "List the auth checks this endpoint is missing."}],
    max_tokens=800,
)
print(r.choices[0].message.content)

GET /v1/chat/completions, /v1/completions и /v1/responses отвечают в этой форме, с server-sent events, когда вы включаете stream, каждое событие это строка data:, которая заканчивается на data: [DONE]. Принимаются и Authorization: Bearer, и x-api-key, так что клиент, который шлёт любой из заголовков, работает без правок.

Форма Anthropic

SDK Anthropic берут https://api.notholy.com как base URL, без /v1, и зовут POST /v1/messages. Вы сохраняете max_tokens и сохраняете reasoning: thinking с бюджетом токенов или output_config.effort для именованного уровня, который ложится на ближайший у модели. Ходы user и assistant несут блоки text, tool_use и tool_result так же.

bash
curl https://api.notholy.com/v1/messages \
  -H "x-api-key: $NOTHOLY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model": "MODEL_ID", "max_tokens": 800, "thinking": {"type": "enabled", "budget_tokens": 2000}, "messages": [{"role": "user", "content": "Explain this stack trace and name the likely bug class."}]}'

Ответ это форма сообщения Anthropic, ошибки используют типы ошибок Anthropic, а stream возвращает события Anthropic. POST /v1/messages/count_tokens оценивает размер ввода до отправки, не вызывая модель.

Инструменты, которые вы уже запускаете

Раз формы совпадают, совпадают и библиотеки поверх них. SDK OpenAI и Anthropic на любом языке указывают на NotHoly одной конфигурацией, и то же верно для кодовых агентов, которые говорят на этих протоколах. CLI пишет эту конфигурацию для агентов вроде Claude Code, Codex и OpenCode, так что вы не правите каждый вручную. Руководство по миграции это короткая версия: base URL, ключ, модель. Использование считается по токенам по опубликованному тарифу каждой модели на всех этих endpoint, так что переход не меняет того, как вы думаете о стоимости. Ваш harness для оценки, обёртка для логов и логика повторов сохраняют смысл, потому что запрос и ответ, которые они оборачивают, не изменились.

Где не подходит

Часть вещей не переносится вместе с остальным. API Responses без состояния, поэтому previous_response_id возвращает 400. cache_control принимается и игнорируется, потому что кэширование идёт само. На сырых endpoint сервер не запускает ни одного своего инструмента; он запускает только функциональные инструменты, которые вы шлёте, и ваш код их выполняет. n должен быть 1. Модели embedding пока нет, и нет endpoint для batch, fine-tuning, assistants, аудио или генерации изображений. Источник document в PDF в форме Messages возвращает 400, так что шлите файлы через чат или через endpoint файлов.

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

Источники

  1. NotHoly, Migration from OpenAI and Anthropic
  2. NotHoly, Chat completions
  3. NotHoly, Messages (Anthropic)
  4. OpenAI, API reference
  5. Anthropic, Messages API

Ещё по теме: LLM-модели и API

LLM-модели и API

Verboo, Venice AI и Drael против NotHoly для задач ИБ

Verboo, Venice AI и Drael рядом с NotHoly, ноябрь 2026: оплата, формат API, условия лицензии, базы моделей и где работают инструменты, с источниками.

Средний8 мин чтения