API моделей
/ Документация API← Быстрый старт с APIОткрыть как Markdown
GET https://api.opencheese.dev/v1/models возвращает модели, которые ваш API-ключ может
использовать прямо сейчас, в формате списка OpenAI. Состав списка зависит от вашего тарифа,
ограничений ключа по моделям и моделей, которые вы отключили на странице Цены, поэтому берите
ID моделей из него, а не копируйте из примеров.
Запрос
curl https://api.opencheese.dev/v1/models \
-H "Authorization: Bearer $OPENCHEESE_API_KEY"
x-api-key тоже подходит. На недействительный ключ приходит 401 с ошибкой в JSON.
Ответ
Текстовая модель (значения приведены для примера):
{
"object": "list",
"data": [
{
"id": "MODEL_ID",
"object": "model",
"created": 0,
"owned_by": "opencheese",
"displayName": "Example Model",
"name": "Example Model",
"capabilities": { "streaming": true, "tools": true },
"pricing": { "inputRate": 0.5, "outputRate": 2, "cacheReadRate": 0.05, "cacheWriteRate": 0.6 },
"modalities": { "input": ["text", "image"], "output": ["text"] },
"reasoning": true,
"reasoningEfforts": { "max": "max", "medium": "medium", "low": "low" },
"supported_reasoning_levels": ["max", "medium", "low"],
"efforts": ["max", "medium", "low"],
"default_reasoning_level": "max",
"context_window": 1000000,
"contextWindow": 1000000,
"max_output_tokens": 131000,
"maxTokens": 131000,
"maxOutputTokens": 131000
}
]
}
Поля
| Поле | Значение |
|---|---|
id |
ID, который передаётся в model. |
displayName, name |
Название модели в том виде, в каком его показывает панель. |
capabilities |
Поддерживает ли модель потоковые ответы и вызовы инструментов. |
pricing |
Ваши ставки в кредитах (USD) за миллион токенов: вход, выход, чтение кешированного входа и запись в кеш. У бесплатных моделей здесь нули. |
modalities |
Что модель принимает (input) и что выдаёт (output): text, image, video, audio, pdf. |
supported_reasoning_levels |
Уровни рассуждений, которые можно передавать, начиная с самого сильного. efforts и ключи reasoningEfforts повторяют их для клиентов, которые читают поля с такими именами. |
default_reasoning_level |
Первый, самый сильный уровень из этого списка. |
context_window |
Наибольшее число токенов, которое модель читает за один запрос, включая промпт. contextWindow содержит то же число. |
max_output_tokens |
Максимальная длина ответа модели. maxTokens и maxOutputTokens содержат то же число. |
Поле отсутствует, если к модели оно не относится: у модели без выбора уровня нет полей уровней, а
у модели без известного лимита нет полей лимитов. Передавайте уровень рассуждений только со
значением из supported_reasoning_levels; куда его передавать, показано на страницах
Chat Completions, Responses и
Messages.
Модели изображений
Модели, у которых modalities.output равно ["image"], генерируют изображения. У них есть только
базовые поля из таблицы выше, а их параметры (размеры, соотношения сторон, качество, сколько
изображений может вернуть один запрос) возвращает GET /v1/images/capabilities — он описан на
странице API изображений.
Фильтрация списка
Все текстовые модели с помощью jq:
curl -s https://api.opencheese.dev/v1/models \
-H "Authorization: Bearer $OPENCHEESE_API_KEY" \
| jq -r '.data[] | select(.modalities.output | index("text")) | .id'
Бесплатные модели:
curl -s https://api.opencheese.dev/v1/models \
-H "Authorization: Bearer $OPENCHEESE_API_KEY" \
| jq -r '.data[] | select(.pricing.inputRate == 0 and .pricing.outputRate == 0) | .id'
Бесплатным моделям всё равно нужен небольшой минимальный баланс на аккаунте; подробнее в FAQ.
Через SDK
from openai import OpenAI
client = OpenAI(base_url="https://api.opencheese.dev/v1", api_key="YOUR_OPENCHEESE_API_KEY")
for model in client.models.list():
print(model.id)
Отдельного GET /v1/models/{id} нет: берите модель из списка.