Запустите видео-саммари BibiGPT на кастомном OpenAI-совместимом API.

Updated 2026-07-30

Self-hosted BibiGPT читает OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY и OPENAI_COMPATIBLE_MODEL из окружения. Укажите base URL https://api.apisrouter.com/v1 — и каждое саммари с Bilibili, YouTube или подкаста пойдёт через шлюз, а китайские и глобальные модели окажутся за одним ключом.

Короткий ответ: три переменные окружения.

Пример env-файла BibiGPT прямо документирует нужную поверхность: OPENAI_COMPATIBLE_BASE_URL задаёт эндпоинт (по умолчанию https://api.openai.com/v1), OPENAI_COMPATIBLE_API_KEY хранит ключ (с откатом на OPENAI_API_KEY, если не задан), а OPENAI_COMPATIBLE_MODEL выбирает модель по умолчанию для саммари. Установите base URL в https://api.apisrouter.com/v1, поместите ключ шлюза в переменную ключа и выберите любой id из каталога в качестве модели. Base URL проверяется при использовании: он должен начинаться с http:// или https://, а завершающие слэши обрезаются, так что форма /v1 выше — именно то, что нужно. Под капотом приложение строит из этих значений openai-совместимого провайдера Vercel AI SDK и вызывает chatModel с настроенным id, поэтому любая модель, которую обслуживает эндпоинт, работает без изменений кода.

# Optional: use OpenAI-compatible providers (falls back to OPENAI_API_KEY)
OPENAI_COMPATIBLE_API_KEY=sk-YOUR-APISROUTER-KEY
OPENAI_COMPATIBLE_BASE_URL=https://api.apisrouter.com/v1
OPENAI_COMPATIBLE_MODEL=deepseek-v4-flash

Что BibiGPT отправляет на эндпоинт.

BibiGPT (JimmyLv на GitHub, около 6K звёзд для open-source v1) — это ИИ-саммаризатор аудио и видео в один клик: вставьте ссылку на Bilibili или YouTube, подкаст, запись встречи или локальный файл, и он получит транскрипт, сожмёт его и даст вам общаться с содержимым. Начинался как BiliGPT для саммари Bilibili и вырос в двуязычный инструмент с хостед-преемником; конфигурация окружения, описанная здесь, применяется к self-hosted open-source версии. Нагрузка имеет форму транскрипта: длинный вход, короткий выход. Час речи — это много текста транскрипта, который приложение режет на куски размером под модель перед суммированием, так что одно видео может означать несколько вызовов chat-completions, чьи входные токены намного превышают итоговое саммари. Цена за входной токен поэтому и есть вся экономика, а модели с длинным контекстом уменьшают дробление для длинных лекций и подкастов. Конструирование провайдера резолвит значения по разумному каскаду: ключ на уровне запроса (для инстансов, которые позволяют пользователям приносить свой) побеждает OPENAI_COMPATIBLE_API_KEY, который побеждает OPENAI_API_KEY; то же самое для base URL и модели. Есть даже переменная OPENAI_COMPATIBLE_KEY_PREFIXES для приёма введённых пользователем ключей, чьи префиксы отличаются от sk-, что важно, когда ключи ваших пользователей приходят от шлюза, а не от OpenAI.

Полная настройка для self-hosted инстанса.

BibiGPT — приложение на Next.js, так что окружение путешествует вместе с тем, как вы деплоите: .env файл локально, переменные окружения проекта на Vercel, либо env контейнера в Docker. Задайте три переменные, передеплойте или перезапустите — и саммари пойдут через шлюз. Переменная модели — это значение по умолчанию, а не жёсткий лимит. Запросы несут конфиг для конкретного видео, чьё поле model, если оно есть, переопределяет OPENAI_COMPATIBLE_MODEL, так что инстанс может по умолчанию использовать объёмный id, пока отдельные флоу запрашивают более сильный. Если вы запускаете инстанс для других и позволяете им вставлять свои собственные ключи, задайте OPENAI_COMPATIBLE_KEY_PREFIXES так, чтобы включить префикс ключа вашего шлюза, чтобы форма их принимала.

OPENAI_COMPATIBLE_API_KEY=sk-YOUR-APISROUTER-KEY
OPENAI_COMPATIBLE_BASE_URL=https://api.apisrouter.com/v1
OPENAI_COMPATIBLE_MODEL=deepseek-v4-flash

# accepting user-entered gateway keys in the UI:
OPENAI_COMPATIBLE_KEY_PREFIXES=sk-

Выбор модели для суммирования, Восток и Запад.

Честное сравнение легко провести: одно и то же видео, два id модели, прочитать оба саммари против транскрипта. Лог использования по ключу оценивает каждого кандидата на реальном контенте, а для нагрузок с транскриптами разница видна сразу в столбце входных токенов.

  • Китайский контент — родная стихия BibiGPT: лекции с Bilibili, клипы Douyin, китайские подкасты. glm-5.2, deepseek-v4-flash и kimi-k2.6 нативно сильны на китайских транскриптах и находятся за тем же эндпоинтом, что и всё остальное.
  • Английский и смешанный контент (YouTube, глобальные подкасты) хорошо ложится на claude-haiku-4-5-20251001 и gemini-3.5-flash — обе модели уверенно работают с длинными зашумлёнными транскриптами.
  • Это разделение — практический аргумент «Китай плюс остальной мир» в пользу шлюза: один эндпоинт, один ключ, а переопределение модели по видео выбирает нужное семейство под источник контента вместо того, чтобы навязывать одного вендора для обоих случаев.
  • Длинные лекции вознаграждают длинный контекст. Меньше кусков — меньше вызовов и более связное саммари; протестируйте id с длинным контекстом на самом длинном вашем контенте, прежде чем стандартизировать выбор.
  • Объёмные инстансы (команда, суммирующая всё, что смотрит) должны по умолчанию использовать deepseek-v4-flash и повышать уровень выборочно; форма нагрузки с преобладанием входа делает цену быстрого тира накопительно выгодной.

Оплата по факту · дешевле официальных цен

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

МодельОфициальная ценаНаша цена
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M
GLM-5.2$1.14 / $4.00 per M$1.10 / $4.00 per M
Kimi K2.6$0.95 / $4.00 per M$1.00 / $4.00 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M

Сбои, специфичные именно для BibiGPT.

Цепочка отката может вас удивить. Если OPENAI_COMPATIBLE_API_KEY пуст, приложение тихо откатывается на OPENAI_API_KEY. Это удобно, пока оба не указывают на разные сервисы: base URL шлюза вместе с ключом OpenAI даёт ошибки аутентификации, которые выглядят как проблемы шлюза. Когда меняете маршрутизацию, задавайте пару с префиксом compatible вместе и не оставляйте устаревший OPENAI_API_KEY, указывающий куда-то ещё, либо убедитесь, что он хранит тот же ключ шлюза. Валидатор base URL отклоняет значения без схемы, так что голый хост быстро падает с понятной ошибкой; включайте https:// и путь /v1. Завершающие слэши нормализуются, так что обе формы там работают. Id моделей — это точные строки относительно листинга /v1/models эндпоинта; опечатка в OPENAI_COMPATIBLE_MODEL роняет первое саммари с ошибкой model-not-found. Не забывайте и про переопределение по видео: если один флоу продолжает использовать старую модель, значит что-то передаёт явную model в конфиге запроса. Получение транскрипта — отдельная механика. Если видео не даёт саммари из-за того, что не удалось получить субтитры или аудио, это проблема пайплайна контента (API платформ, доступность субтитров), а не эндпоинта LLM. Переменные окружения из этого гайда двигают только вызовы суммирования. И учтите: хостед-сервис bibigpt.co управляет своими моделями сам; эти переменные настраивают open-source v1, который вы деплоите самостоятельно.

Кто направляет BibiGPT через шлюз.

  • Двуязычные зрители, суммирующие и Bilibili, и YouTube, сочетающие сильные по-китайски id с глобальными за одним ключом вместо отдельного вендора на каждый язык.
  • Self-hosters в окружениях, близких к Китаю, где единый OpenAI-совместимый эндпоинт, также обслуживающий GLM, DeepSeek и Kimi, полностью снимает проблему биллинга у нескольких вендоров.
  • Команды, запускающие общий суммаризатор для встреч и лекций, замеряющие использование по ключу и использующие по умолчанию id объёмного тира.
  • Активные слушатели подкастов, у которых часы транскриптов в неделю делают цену за входной токен всей историей затрат.
  • Разработчики без доступа к биллингу конкретного вендора. Доступ на основе пополнения без требования карты убирает зависимость от регистрации у каждого провайдера.

Проверьте эндпоинт и отладьте первое саммари.

Получите список моделей, доступных вашему ключу, и убедитесь, что id в OPENAI_COMPATIBLE_MODEL — среди них; одна эта проверка предотвращает большинство сбоев при первом запуске. Затем засуммируйте что-нибудь короткое. Ошибка аутентификации означает, что резолвнутый ключ не соответствует base URL, а учитывая цепочку отката, выведите, какая переменная реально предоставила ключ, прежде чем строить предположения. Model-not-found — это опечатка в id. Ошибка схемы при старте — это base URL без https://. Саммари, которое никогда не начинается, несмотря на здоровый эндпоинт, — это сбой получения транскрипта выше по цепочке любого вызова LLM. Как только саммари начинают идти, консоль APIsRouter показывает модель на запрос, счётчики токенов и расходы. Суммирование транскриптов — это самая явная нагрузка с преобладанием входа, какая только есть, и неделя данных использования говорит вам реальную стоимость часа контента для каждой модели — именно то число, которое стоит оптимизировать.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Частые вопросы

Поддерживает ли BibiGPT кастомный OpenAI-совместимый base URL?

Да. Self-hosted v1 документирует OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY и OPENAI_COMPATIBLE_MODEL в своём примере env-файла и строит из них провайдера AI SDK. Установите base URL в эндпоинт шлюза, включая /v1.

Может ли BibiGPT суммировать с помощью моделей GLM, DeepSeek, Kimi или Claude?

Да. Настроенный id модели передаётся на эндпоинт как обычная строка, так что работает любой id из каталога: glm-5.2 и kimi-k2.6 для китайского контента, claude-haiku-4-5-20251001 или gemini-3.5-flash для глобального контента, всё на одном ключе.

Что происходит, если OPENAI_COMPATIBLE_API_KEY не задан?

Приложение откатывается на OPENAI_API_KEY. Это нормально, когда оба указывают на один и тот же сервис, и сбивает с толку, когда нет; при использовании шлюза задавайте ключ с префиксом compatible явно.

Могут ли пользователи приносить свои собственные ключи шлюза на общем инстансе?

Да. Ключи на уровне запроса переопределяют окружение, а OPENAI_COMPATIBLE_KEY_PREFIXES контролирует, какие префиксы ключей принимает интерфейс, так что общий деплой может принимать введённые пользователем ключи шлюза.

Почему длинные видео стоят дороже, чем предполагает длина саммари?

Потому что транскрипт — это вход. Час речи — это большое число входных токенов, раздробленных на несколько вызовов, пока выход саммари мал. Цена за входной токен и обработка длинного контекста определяют стоимость, и лог использования показывает её по каждому видео.

Применяются ли эти переменные к хостед-сервису bibigpt.co?

Нет. Хостед-сервис управляет своими моделями на стороне сервера самостоятельно. Переменные окружения OPENAI_COMPATIBLE_* настраивают open-source BibiGPT v1, который вы деплоите сами.