OpenAI SDK с Claude и Gemini
Смените base_url и API-ключ, чтобы вызывать Claude, GPT и Gemini одним клиентом OpenAI на Python или Node.js, и узнайте пределы этого способа.
OpenAI SDK — самый широко поддерживаемый клиент в экосистеме, и в нём можно изменить две вещи: базовый URL и API-ключ. Направьте их на Half Off Dev, и один и тот же клиент сможет вызывать модели GPT, Claude и Gemini, так что смена модели сводится к замене одного слова. На этой странице показана настройка на Python и Node.js, получение списка моделей и, что важно, чем вы жертвуете по сравнению с собственным API каждого вендора.
Замена двух строк
from openai import OpenAI
client = OpenAI(base_url="https://halfoff.dev/v1", api_key="ho-...")
reply = client.chat.completions.create(
model="claude-sonnet-5.5",
messages=[{"role": "user", "content": "Say hello in French."}],
)
print(reply.choices[0].message.content)Оставьте здесь /v1 в базовом URL: OpenAI SDK добавляет только путь после него. Работают и переменные окружения: официальные SDK читают OPENAI_BASE_URL и OPENAI_API_KEY, так что существующий код и инструменты можно перенаправить, не меняя их.
Список моделей
for m in client.models.list():
print(m.id)GET https://halfoff.dev/v1/models общедоступен и возвращает все модели с ценами. Используйте эти идентификаторы точно как есть; они же есть в списке моделей.
Где способ перестаёт работать
Chat Completions — это формат OpenAI. Когда вы отправляете его модели Claude или Gemini, запрос преобразуется под эту модель, поэтому возможности, существующие только в собственном API вендора, могут отбрасываться или отклоняться. На практике:
| Вам нужно | Используйте |
|---|---|
| Обычный чат, потоковая передача, вызов функций, вывод в JSON | Клиент OpenAI работает со всеми моделями |
cache_control Claude, расширенное мышление | Anthropic SDK с адресом https://halfoff.dev (руководство) |
thinkingConfig Gemini, нативный ввод аудио и видео | Gemini SDK или REST (руководство) |
| Responses API GPT, Codex CLI | https://halfoff.dev/v1/responses (руководство) |
Если важна цена, важен и нативный формат: скидка на кеш Claude требует cache_control, а он гарантированно работает только в формате Anthropic. Способ каждого вендора объясняет раздел кеширование промптов.
Устранение неполадок
401ключ не доходит до сервера или введён с опечаткой. Проверьте имя переменной окружения, которую читает ваш код.
404 с упоминанием моделитакого идентификатора нет в GET /v1/models. Скопируйте его оттуда.
404 с /v1/v1/ в путибазовый URL оканчивается на /v1, а инструмент добавляет его ещё раз. Для инструментов, которые сами дописывают /v1, уберите его.
402баланс пуст или достигнут лимит расходов. См. раздел Оплата.
Полный список есть в разделе Ошибки.
Частые вопросы
Можно ли использовать OpenAI SDK с Claude?+
Да. Укажите базовый URL https://halfoff.dev/v1, свой ключ и в model идентификатор Claude, например claude-sonnet-5.5. Для функций, доступных только в Claude, вроде управления кешированием промптов, используйте Anthropic SDK.
Поддерживает ли библиотека OpenAI для Python свой базовый URL?+
Да: передайте base_url клиенту или задайте OPENAI_BASE_URL. В библиотеке для Node.js то же самое делается через baseURL.
Это совместимость с OpenAI или настоящий API?+
Оба варианта работают нативно на одном хосте: OpenAI Chat Completions и Responses, Anthropic Messages и Gemini. Выберите тот формат, на котором уже написан ваш код.
С какой модели начать?+
С модели среднего размера любого вендора; сравните в калькуляторе и в руководствах по ценам для Claude, GPT и Gemini.
Сколько это стоит?+
Каждая модель стоит половину официального прайса, оплата идёт за токены с предоплаченного баланса. Чтобы начать, создайте аккаунт и сделайте ключ.
Один предоплаченный ключ для моделей, данных и агентов
Без подписки. Пополняйте баланс, используйте сколько нужно и смотрите каждое списание в логах.