AI для новичковИнструкция
OpenAI-совместимый API: что такое base_url и как переключиться
OpenAI-совместимый API принимает те же запросы, что и OpenAI. Смените base_url, ключ и id модели — и код отправит первый запрос в CheapTokens.

Содержание
OpenAI-совместимый API — это API, который принимает запросы в том же формате, что и Chat Completions от OpenAI, и отвечает в том же формате. Чтобы перенести приложение к другому провайдеру, обычно меняют три значения: base_url (куда идут запросы), API-ключ и id модели. Остальной код — список сообщений и чтение ответа — остаётся прежним.
В этой статье идея объяснена простыми словами, а в конце — рабочий первый запрос в CheapTokens на Python и curl. Данные о CheapTokens сверены с его документацией 22 октября 2026 года.
Что значит «OpenAI-совместимый»?#
API — это набор правил, по которым программа общается с сервисом через интернет (если слово новое, начните с первого запроса к API). Формат чата OpenAI стал общим стандартом: многие провайдеры и инструменты принимают такое же тело запроса и возвращают такой же ответ. Такой API называют OpenAI-совместимым.
На практике у любого совместимого провайдера одинаковы три вещи:
- Запрос: JSON с полем
modelи спискомmessages, где у каждого сообщения естьrole(system,userилиassistant) иcontent. - Путь запроса:
/, который добавляется после базового адреса.chat/ completions - Ответ: JSON, где сгенерированный текст лежит в
choices[0]..message. content
Благодаря общему формату официальные SDK и многие приложения работают с любым совместимым провайдером. Им нужно знать только, куда отправлять запрос.
Что такое base_url?#
base_url — адрес, с которого начинается каждый запрос. SDK собирает полный адрес, добавляя к нему путь вызова.
Прокрутите таблицу вправо →
| Часть | Пример |
|---|---|
base_url |
https:/ |
| Путь, который добавляет SDK | / |
| Полный адрес запроса | https:/ |
Поэтому, если задать другой base_url, тот же код отправит такой же запрос на другой сервер. Базовый адрес CheapTokens — https:/. Его API совместим с OpenAI Chat Completions и Anthropic Messages, а один предоплаченный баланс действует для всех моделей.
Три значения, которые нужно сменить#
Прокрутите таблицу вправо →
| Значение | Что это | Где взять |
|---|---|---|
base_url |
Адрес API | https:/ |
| API-ключ | Ваш секретный пароль для API | Ваш аккаунт CheapTokens. См. что такое API-ключ и как его хранить |
| id модели | Точное имя модели в поле model |
Документация CheapTokens |
На id модели стоит обратить внимание. У разных провайдеров одна и та же модель называется по-разному, поэтому id из другого сервиса здесь не подойдёт. Берите id из документации CheapTokens. Сейчас доступны:
Прокрутите таблицу вправо →
| Модель | id модели | Контекст | Максимум в ответе |
|---|---|---|---|
| GLM-5.3-Flash | zai- |
390K | 8 192 токена |
| DeepSeek-V4-Flash | deepseek- |
380K | 32 768 токенов |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8 192 токена |
DeepSeek-V4-Flash отвечает до 32 768 токенов за раз и имеет контекст 380K; у GLM-5.3-Flash контекст 390K; у MiniMax-M2.7 — 180K. Все три списывают деньги с одного баланса, поэтому переключение между ними — это смена одного id модели.
Первый запрос на Python#
Установите пакет openai и сохраните ключ в переменной окружения, а не в коде:
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"Теперь код. От стандартного примера OpenAI он отличается только аргументом base_url, ключом и id модели:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1", # 1. куда идут запросы
api_key=os.environ["CHEAPTOKENS_API_KEY"], # 2. ваш ключ CheapTokens
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7", # 3. id модели из документации
messages=[
{"role": "system", "content": "Отвечай кратко."},
{"role": "user", "content": "Объясни base_url одним предложением."},
],
)
print(response.choices[0].message.content)Ключ в примере — заглушка: замените YOUR_ своим ключом и никогда не коммитьте настоящий ключ в репозиторий.
Если готовое приложение читает настройки из файла или переменных окружения, код править не нужно. Найдите поля «base URL», «API base» или «endpoint» и впишите те же три значения.
Тот же запрос через curl#
curl показывает, что SDK делает «под капотом»: базовый адрес плюс путь, ключ в заголовке Authorization и JSON в теле.
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "user", "content": "Объясни base_url одним предложением."}
]
}'Что вы должны увидеть#
Если всё настроено верно, скрипт на Python напечатает короткий текстовый ответ, а curl — JSON-объект. Найдите список choices: текст ответа лежит в choices[0].. Если вы это видите, первый запрос в CheapTokens сработал, можно переходить к своему приложению.
Сколько это стоит?#
Оплата идёт за токены, отдельно за вход и выход (см. входные и выходные токены). Например, MiniMax-M2.7 сейчас стоит $0.05 за 1M входных токенов и $0.15 за 1M выходных. Таблица ниже всегда показывает актуальные цены всех моделей, без надбавок за часы пик.
| Модель | Контекст | Вход $/1M | Выход $/1M | OpenRouter вход | OpenRouter выход |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning | 390K | $0.02 | $0.04 | $0.0413 | $0.0758 |
| DeepSeek-V4-Flash | 380K | $0.015 | $0.10 | $0.0475 | $0.1568 |
| MiniMax-M2.7 | 180K | $0.05 | $0.15 | $0.30 | $1.20 |
Цены в USD за 1 млн токенов. Данные OpenRouter приведены для сравнения и могут меняться.
Цены на все модели есть и на странице тарифов CheapTokens.
Если не работает#
- Ошибка аутентификации (обычно 401): ключ не задан, с опечаткой или с лишними пробелами. Проверьте, что переменная окружения задана в том же терминале, где запускаете скрипт.
- «Не найдено» (обычно 404): проверьте
base_url. Он должен заканчиваться на/v1, а/при работе через SDK добавлять не нужно — иначе путь удвоится.chat/ completions - Неизвестная модель: скопируйте id модели точно из таблицы выше или из документации, с заглавными буквами и частью до слэша.
- Нет соединения или таймаут: см. частые ошибки подключения и как их исправить.
- Ответ обрывается на полуслове: достигнут лимит
max_tokens; подробности — в статье почему ответ ИИ обрывается.
Что дальше#
Когда первый запрос заработал, можно добавить потоковый вывод на Python, подставить те же три значения в редактор или агента или прочитать, как читать названия моделей ИИ. Подробности настройки и полный список моделей — в документации CheapTokens.



