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

API моделей

/ Документация API

← Быстрый старт с APIОткрыть как Markdown

GET https://api.opencheese.dev/v1/models возвращает модели, которые ваш API-ключ может использовать прямо сейчас, в формате списка OpenAI. Состав списка зависит от вашего тарифа, ограничений ключа по моделям и моделей, которые вы отключили на странице Цены, поэтому берите ID моделей из него, а не копируйте из примеров.

Запрос

bash
curl https://api.opencheese.dev/v1/models \
  -H "Authorization: Bearer $OPENCHEESE_API_KEY"

x-api-key тоже подходит. На недействительный ключ приходит 401 с ошибкой в JSON.

Ответ

Текстовая модель (значения приведены для примера):

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:

bash
curl -s https://api.opencheese.dev/v1/models \
  -H "Authorization: Bearer $OPENCHEESE_API_KEY" \
  | jq -r '.data[] | select(.modalities.output | index("text")) | .id'

Бесплатные модели:

bash
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

python
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} нет: берите модель из списка.

В сыре есть дырки. В вашей инфраструктуре их быть не должно.