Rode os resumos de vídeo do BibiGPT em uma API personalizada compatível com OpenAI.

Updated 2026-07-30

O BibiGPT auto-hospedado lê OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY, e OPENAI_COMPATIBLE_MODEL do seu ambiente. Aponte a base URL para https://api.apisrouter.com/v1 e todo resumo de Bilibili, YouTube, ou podcast roda pelo gateway, com modelos chineses e globais atrás de uma chave.

Resposta rápida: três variáveis de ambiente.

O arquivo de ambiente de exemplo do BibiGPT documenta a superfície diretamente: OPENAI_COMPATIBLE_BASE_URL define o endpoint (padrão https://api.openai.com/v1), OPENAI_COMPATIBLE_API_KEY contém a chave (recaindo em OPENAI_API_KEY quando não definida), e OPENAI_COMPATIBLE_MODEL escolhe o modelo padrão para resumos. Defina a base URL como https://api.apisrouter.com/v1, coloque uma chave do gateway na variável de chave, e escolha qualquer id do catálogo como o modelo. A base URL é validada no uso: ela precisa começar com http:// ou https://, e barras finais são removidas, então o formato /v1 acima está exatamente certo. Por baixo dos panos, o app constrói um provider openai-compatible do Vercel AI SDK a partir desses valores e chama chatModel com o id configurado, o que é por que qualquer modelo que o endpoint sirva funciona sem mudanças de código.

# Opcional: use providers compatíveis com OpenAI (recai em 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

O que o BibiGPT envia para o endpoint.

O BibiGPT (JimmyLv no GitHub, cerca de 6 mil estrelas para o v1 open-source) é um resumidor de IA de um clique para áudio e vídeo: cole um link do Bilibili ou YouTube, um podcast, uma gravação de reunião, ou um arquivo local, e ele busca a transcrição, a condensa, e permite que você converse com o conteúdo. Começou como BiliGPT para resumos do Bilibili e cresceu para uma ferramenta bilíngue com um sucessor hospedado; a configuração de ambiente descrita aqui se aplica à versão open-source auto-hospedada. A carga de trabalho tem o formato de transcrição: entradas longas, saídas curtas. Uma hora de fala é bastante transcrição, que o app divide em pedaços do tamanho do modelo antes de resumir, então um vídeo pode significar várias chamadas chat-completions cujos tokens de entrada ofuscam o resumo que produzem. O preço por token de entrada é, portanto, toda a economia, e modelos de contexto longo reduzem a divisão em pedaços para palestras e podcasts longos. A construção do provider resolve valores em uma cascata sensata: uma chave por requisição (para instâncias que deixam usuários trazerem a própria chave) vence sobre OPENAI_COMPATIBLE_API_KEY, que vence sobre OPENAI_API_KEY; o mesmo se aplica à base URL e ao modelo. Existe até uma variável OPENAI_COMPATIBLE_KEY_PREFIXES para aceitar chaves inseridas por usuários cujos prefixos não são sk-, o que importa quando as chaves que seus usuários têm vêm de um gateway em vez da OpenAI.

Configuração completa para uma instância auto-hospedada.

O BibiGPT é um app Next.js, então o ambiente viaja como quer que você faça o deploy: um arquivo .env localmente, variáveis de ambiente de projeto na Vercel, ou variáveis de ambiente de container no Docker. Defina as três variáveis, refaça o deploy ou reinicie, e os resumos roteiam pelo gateway. A variável de modelo é o padrão, não um limite rígido. Requisições carregam uma config por vídeo cujo campo model, quando presente, sobrescreve OPENAI_COMPATIBLE_MODEL, então uma instância pode ter como padrão um id de volume enquanto fluxos específicos pedem um mais forte. Se você roda a instância para outros e deixa que colem suas próprias chaves, defina OPENAI_COMPATIBLE_KEY_PREFIXES para incluir o prefixo de chave do seu gateway para que o formulário as aceite.

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

# aceitando chaves do gateway inseridas por usuários na UI:
OPENAI_COMPATIBLE_KEY_PREFIXES=sk-

Escolhendo um modelo de sumarização, Oriente e Ocidente.

A comparação é fácil de rodar honestamente: mesmo vídeo, dois ids de modelo, leia os dois resumos contra a transcrição. O log de uso por chave precifica cada candidato em conteúdo real, e para cargas de transcrição a diferença é visível imediatamente na coluna de tokens de entrada.

  • Conteúdo em chinês é o terreno natural do BibiGPT: palestras do Bilibili, clipes do Douyin, podcasts chineses. glm-5.2, deepseek-v4-flash, e kimi-k2.6 são nativamente fortes em transcrições chinesas e ficam atrás do mesmo endpoint que tudo o mais.
  • Conteúdo em inglês e misto (YouTube, podcasts globais) se sai bem com claude-haiku-4-5-20251001 e gemini-3.5-flash, ambos confortáveis com transcrições longas e ruidosas.
  • Essa divisão é o argumento prático China-mais-global para um gateway: um endpoint, uma chave, e a sobrescrita de modelo por vídeo escolhe a família certa por fonte de conteúdo em vez de forçar um fornecedor para os dois.
  • Palestras longas recompensam contexto longo. Menos pedaços significa menos chamadas e um resumo mais coerente; teste um id de contexto longo contra seu conteúdo mais longo antes de padronizar.
  • Instâncias de volume (um time resumindo tudo que assiste) deveriam ter deepseek-v4-flash como padrão e escalar seletivamente; o formato pesado em entrada faz o preço da camada rápida se acumular.

Pague pelo uso · abaixo do preço oficial

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

ModeloPreço oficialNosso preço
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

Modos de falha específicos do BibiGPT.

A cadeia de fallback pode te surpreender. Se OPENAI_COMPATIBLE_API_KEY estiver vazia, o app recai silenciosamente em OPENAI_API_KEY. Isso é conveniente até que os dois apontem para serviços diferentes: uma base URL de gateway com uma chave OpenAI produz erros de autenticação que parecem problemas de gateway. Quando o roteamento muda, defina o par com prefixo compatible juntos e não deixe nenhuma OPENAI_API_KEY obsoleta apontando para outro lugar, ou garanta que ela contenha a mesma chave do gateway. O validador de base URL rejeita valores sem um esquema, então um host puro falha rápido com um erro claro; inclua https:// e o caminho /v1. Barras finais são normalizadas, então qualquer forma funciona ali. Ids de modelo são strings exatas contra a listagem /v1/models do endpoint; um erro de digitação em OPENAI_COMPATIBLE_MODEL falha o primeiro resumo com model-not-found. Lembre também da sobrescrita por vídeo: se um fluxo continua usando um modelo antigo, algo está passando um model explícito na config da requisição. A busca de transcrição é uma canalização separada. Se um vídeo não produz resumo porque legendas ou áudio não puderam ser buscados, isso é o pipeline de conteúdo (APIs de plataforma, disponibilidade de legenda), não o endpoint de LLM. As variáveis de ambiente deste guia só movem as chamadas de sumarização. E note que o serviço hospedado bibigpt.co gerencia seus próprios modelos; essas variáveis configuram o v1 open-source que você mesmo faz deploy.

Quem roteia o BibiGPT por um gateway.

  • Espectadores bilíngues resumindo tanto Bilibili quanto YouTube, combinando ids fortes em chinês com globais atrás de uma chave em vez de um fornecedor por idioma.
  • Self-hosters em configurações próximas à China, onde um único endpoint compatível com OpenAI que também serve GLM, DeepSeek, e Kimi remove completamente o problema de faturamento multi-fornecedor.
  • Times rodando um sumarizador compartilhado para reuniões e palestras, medindo uso por chave e usando ids de camada de volume como padrão.
  • Ouvintes pesados de podcast, onde horas de transcrição por semana fazem do preço de token de entrada toda a história de custo.
  • Desenvolvedores sem acesso ao faturamento de um determinado fornecedor. O acesso baseado em recarga sem exigência de cartão remove a dependência de cadastro por provedor.

Verifique o endpoint e depure o primeiro resumo.

Liste os modelos que sua chave pode endereçar e confirme que o id em OPENAI_COMPATIBLE_MODEL está entre eles; essa única verificação previne a maioria das falhas de primeira execução. Depois resuma algo curto. Um erro de autenticação significa que a chave resolvida não bate com a base URL, e dada a cadeia de fallback, imprima qual variável realmente forneceu a chave antes de assumir. Model-not-found é um erro de digitação no id. Um erro de esquema na inicialização é uma base URL sem https://. Um resumo que nunca começa apesar de um endpoint saudável é a busca de transcrição falhando a montante de qualquer chamada de LLM. Assim que os resumos fluem, o console da APIsRouter mostra modelo, contagens de token e gasto por requisição. Sumarização de transcrição é a carga de trabalho mais claramente pesada em entrada que existe, e uma semana de dados de uso te diz o custo real por hora de conteúdo para cada modelo, que é o número que vale a pena otimizar.

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

Perguntas frequentes

O BibiGPT suporta uma base URL personalizada compatível com OpenAI?

Sim. O v1 auto-hospedado documenta OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY, e OPENAI_COMPATIBLE_MODEL no seu arquivo de ambiente de exemplo, e constrói seu provider do AI SDK a partir delas. Defina a base URL como o endpoint do gateway incluindo /v1.

O BibiGPT pode resumir com modelos GLM, DeepSeek, Kimi, ou Claude?

Sim. O id de modelo configurado é passado para o endpoint como uma string simples, então qualquer id do catálogo funciona: glm-5.2 e kimi-k2.6 para conteúdo chinês, claude-haiku-4-5-20251001 ou gemini-3.5-flash para conteúdo global, todos em uma chave.

O que acontece se OPENAI_COMPATIBLE_API_KEY não estiver definida?

O app recai em OPENAI_API_KEY. Isso é ok quando ambas apontam para o mesmo serviço, e confuso quando não apontam; ao usar um gateway, defina a chave com prefixo compatible explicitamente.

Usuários podem trazer suas próprias chaves de gateway em uma instância compartilhada?

Sim. Chaves por requisição sobrescrevem o ambiente, e OPENAI_COMPATIBLE_KEY_PREFIXES controla quais prefixos de chave a interface aceita, então um deploy compartilhado pode receber chaves de gateway inseridas por usuários.

Por que vídeos longos custam mais do que o tamanho do resumo sugere?

Porque a transcrição é a entrada. Uma hora de fala é um número grande de tokens de entrada, dividida em várias chamadas, enquanto a saída do resumo é pequena. O preço de token de entrada e o tratamento de contexto longo guiam o custo, e o log de uso mostra isso por vídeo.

Essas variáveis se aplicam ao serviço hospedado bibigpt.co?

Não. O serviço hospedado gerencia seus próprios modelos no lado do servidor. As variáveis de ambiente OPENAI_COMPATIBLE_* configuram o BibiGPT v1 open-source que você mesmo faz deploy.