Draai de videosamenvattingen van BibiGPT op een aangepaste OpenAI-compatibele API.

Updated 2026-07-30

Zelfgehoste BibiGPT leest OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY en OPENAI_COMPATIBLE_MODEL uit zijn omgeving. Wijs de base URL naar https://api.apisrouter.com/v1 en elke samenvatting van Bilibili, YouTube of podcast draait via de gateway, met Chinese en globale modellen achter één sleutel.

Snel antwoord: drie omgevingsvariabelen.

Het voorbeeld-omgevingsbestand van BibiGPT documenteert het oppervlak rechtstreeks: OPENAI_COMPATIBLE_BASE_URL stelt het endpoint in (standaard https://api.openai.com/v1), OPENAI_COMPATIBLE_API_KEY bevat de sleutel (valt terug op OPENAI_API_KEY indien niet gezet), en OPENAI_COMPATIBLE_MODEL kiest het standaardmodel voor samenvattingen. Zet de base URL op https://api.apisrouter.com/v1, plaats een gatewaysleutel in de sleutelvariabele, en kies een willekeurig catalogus-ID als model. De base URL wordt gevalideerd bij gebruik: hij moet beginnen met http:// of https://, en slotslashes worden verwijderd, dus de /v1-vorm hierboven is precies juist. Onder de motorkap bouwt de app een Vercel AI SDK openai-compatible provider uit deze waarden en roept chatModel aan met het geconfigureerde ID, wat waarom elk model dat het endpoint bedient werkt zonder codewijzigingen.

# 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

Wat BibiGPT naar het endpoint stuurt.

BibiGPT (JimmyLv op GitHub, ongeveer 6K sterren voor de open-source v1) is een one-click AI-samenvatter voor audio en video: plak een Bilibili- of YouTube-link, een podcast, een vergaderopname, of een lokaal bestand, en het haalt het transcript op, condenseert het, en laat je chatten met de inhoud. Het begon als BiliGPT voor Bilibili-samenvattingen en groeide uit tot een tweetalige tool met een gehoste opvolger; de hier beschreven omgevingsconfiguratie geldt voor de zelfgehoste open-sourceversie. De workload is transcriptvormig: lange input, korte output. Een uur spraak is veel transcript, dat de app opdeelt in modelgrote stukken voordat het samenvat, dus één video kan meerdere chat-completions-aanroepen betekenen wier inputtokens de samenvatting die ze produceren ver overtreffen. De prijs per inputtoken is dus de hele economie, en langecontextmodellen verminderen chunking voor lange lezingen en podcasts. De providerconstructie resolveert waarden in een verstandige cascade: een sleutel per verzoek (voor instanties die gebruikers hun eigen sleutel laten meebrengen) wint van OPENAI_COMPATIBLE_API_KEY, die wint van OPENAI_API_KEY; hetzelfde geldt voor de base URL en het model. Er is zelfs een variabele OPENAI_COMPATIBLE_KEY_PREFIXES voor het accepteren van door gebruikers ingevoerde sleutels wier voorvoegsels niet sk- zijn, wat ertoe doet wanneer de sleutels die je gebruikers bezitten van een gateway komen in plaats van OpenAI.

Volledige instelling voor een zelfgehoste instantie.

BibiGPT is een Next.js-app, dus de omgeving reist mee hoe je ook deployt: een .env-bestand lokaal, projectomgevingsvariabelen op Vercel, of containeromgeving in Docker. Zet de drie variabelen, herdeploy of herstart, en samenvattingen routeren via de gateway. De modelvariabele is de standaard, geen harde limiet. Verzoeken dragen een config per video wiens model-veld, indien aanwezig, OPENAI_COMPATIBLE_MODEL overschrijft, dus een instantie kan standaard op een volume-ID staan terwijl specifieke flows een sterker model aanvragen. Als je de instantie voor anderen draait en hen hun eigen sleutels laat plakken, zet OPENAI_COMPATIBLE_KEY_PREFIXES zodat het formulier het sleutelvoorvoegsel van je gateway accepteert.

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-

Een samenvattingsmodel kiezen, Oost en West.

De vergelijking is eenvoudig eerlijk uit te voeren: dezelfde video, twee model-ID's, lees beide samenvattingen tegen het transcript. Het gebruikslogboek per sleutel prijst elke kandidaat op echte content, en voor transcriptworkloads is het verschil direct zichtbaar in de inputtokenkolom.

  • Chinese inhoud is het thuisveld van BibiGPT: Bilibili-lezingen, Douyin-clips, Chinese podcasts. glm-5.2, deepseek-v4-flash en kimi-k2.6 zijn native sterk op Chinese transcripten en zitten achter hetzelfde endpoint als al het andere.
  • Engelse en gemengde inhoud (YouTube, globale podcasts) doet het goed op claude-haiku-4-5-20251001 en gemini-3.5-flash, beide comfortabel met lange rommelige transcripten.
  • Deze splitsing is het praktische China-plus-globale argument voor een gateway: één endpoint, één sleutel, en de per-video-modeloverride kiest de juiste familie per contentbron in plaats van één leverancier voor beide te forceren.
  • Lange lezingen belonen lange context. Minder chunks betekent minder aanroepen en een coherentere samenvatting; test een langecontext-ID tegen je langste content voordat je standaardiseert.
  • Volume-instanties (een team dat alles samenvat wat het bekijkt) zouden standaard op deepseek-v4-flash moeten staan en selectief escaleren; de input-zware vorm laat prijzen in de snelle laag zich opstapelen.

Betaal naar gebruik · onder officiële prijzen

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

ModelOfficiële prijsOnze prijs
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

Faalmodi specifiek voor BibiGPT.

De fallbackketen kan je verrassen. Als OPENAI_COMPATIBLE_API_KEY leeg is, valt de app stilletjes terug op OPENAI_API_KEY. Dat is handig totdat de twee naar verschillende services wijzen: een gateway-base-URL met een OpenAI-sleutel produceert authenticatiefouten die eruitzien als gatewayproblemen. Wanneer de routering verandert, zet het compatible-voorvoegsel-paar samen en laat geen verouderde OPENAI_API_KEY achter die elders wijst, of zorg dat hij dezelfde gatewaysleutel bevat. De base-URL-validator wijst waarden zonder schema af, dus een kale host faalt snel met een duidelijke fout; neem https:// en het /v1-pad op. Slotslashes worden weggenormaliseerd, dus beide vormen werken daar. Model-ID's zijn exacte strings tegen de /v1/models-lijst van het endpoint; een tikfout in OPENAI_COMPATIBLE_MODEL laat de eerste samenvatting falen met model-not-found. Onthoud ook de per-video-override: als een flow een oud model blijft gebruiken, geeft iets een expliciet model door in de verzoekconfig. Transcriptophaling is aparte loodgieterij. Als een video geen samenvatting oplevert omdat ondertitels of audio niet konden worden opgehaald, is dat de contentpijplijn (platform-API's, ondertitelbeschikbaarheid), niet het LLM-endpoint. De omgevingsvariabelen in deze gids verplaatsen alleen de samenvattingsaanroepen. En merk op dat de gehoste bibigpt.co-service zijn eigen modellen beheert; deze variabelen configureren de open-source v1 die je zelf deployt.

Wie routeert BibiGPT via een gateway.

  • Tweetalige kijkers die zowel Bilibili als YouTube samenvatten, die Chinees-sterke ID's paren met globale achter één sleutel in plaats van één leverancier per taal.
  • Self-hosters in China-aangrenzende opstellingen waar één OpenAI-compatibel endpoint dat ook GLM, DeepSeek en Kimi bedient het multi-vendorfactureringsprobleem volledig wegneemt.
  • Teams die een gedeelde samenvatter draaien voor vergaderingen en lezingen, die gebruik per sleutel meten en standaard op volume-tier-ID's staan.
  • Zware podcastluisteraars, waar uren transcript per week de prijs per inputtoken het hele kostenverhaal maakt.
  • Developers zonder toegang tot de facturering van een bepaalde leverancier. Toegang op basis van opwaarderen zonder kaartvereiste verwijdert de aanmeldingsafhankelijkheid per provider.

Verifieer het endpoint en debug de eerste samenvatting.

Lijst de modellen op die je sleutel kan aanspreken en bevestig dat het ID in OPENAI_COMPATIBLE_MODEL erbij zit; die ene controle voorkomt de meeste eerste-run-fouten. Vat dan iets korts samen. Een authenticatiefout betekent dat de gerezolveerde sleutel niet overeenkomt met de base URL, en gezien de fallbackketen, print welke variabele daadwerkelijk de sleutel leverde voordat je iets aanneemt. Model-not-found is een tikfout in het ID. Een schemafout bij opstarten is een base URL zonder https://. Een samenvatting die nooit start ondanks een gezond endpoint is de transcriptophaling die faalt stroomopwaarts van elke LLM-aanroep. Zodra samenvattingen stromen, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Transcriptsamenvatting is de duidelijkste input-zware workload die er is, en een week aan gebruiksdata vertelt je de echte kosten per uur content voor elk model, wat het cijfer is dat het waard is om te optimaliseren.

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

Veelgestelde vragen

Ondersteunt BibiGPT een aangepaste OpenAI-compatibele base URL?

Ja. De zelfgehoste v1 documenteert OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY en OPENAI_COMPATIBLE_MODEL in zijn voorbeeld-omgevingsbestand, en bouwt zijn AI SDK-provider daaruit. Zet de base URL op het gateway-endpoint inclusief /v1.

Kan BibiGPT samenvatten met GLM-, DeepSeek-, Kimi- of Claude-modellen?

Ja. Het geconfigureerde model-ID wordt als platte string doorgegeven aan het endpoint, dus elk catalogus-ID werkt: glm-5.2 en kimi-k2.6 voor Chinese content, claude-haiku-4-5-20251001 of gemini-3.5-flash voor globale content, allemaal op één sleutel.

Wat gebeurt er als OPENAI_COMPATIBLE_API_KEY niet is ingesteld?

De app valt terug op OPENAI_API_KEY. Dat is prima wanneer beide naar dezelfde service wijzen, en verwarrend wanneer dat niet zo is; zet bij gebruik van een gateway de compatible-voorvoegsel-sleutel expliciet.

Kunnen gebruikers hun eigen gatewaysleutels meebrengen op een gedeelde instantie?

Ja. Sleutels per verzoek overschrijven de omgeving, en OPENAI_COMPATIBLE_KEY_PREFIXES bepaalt welke sleutelvoorvoegsels de interface accepteert, dus een gedeelde deployment kan door gebruikers ingevoerde gatewaysleutels aannemen.

Waarom kosten lange video's meer dan de samenvattingslengte suggereert?

Omdat het transcript de input is. Een uur spraak is een groot aantal inputtokens, opgedeeld in meerdere aanroepen, terwijl de outputsamenvatting klein is. Inputtokenprijs en langecontextafhandeling drijven de kosten, en het gebruikslogboek toont het per video.

Gelden deze variabelen voor de gehoste bibigpt.co-service?

Nee. De gehoste service beheert zijn eigen modellen server-side. De omgevingsvariabelen OPENAI_COMPATIBLE_* configureren de open-source BibiGPT v1 die je zelf deployt.