BibiGPT-এর video summary একটা কাস্টম OpenAI-compatible API-তে চালান।

Updated 2026-07-30

Self-hosted BibiGPT তার environment থেকে OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY, এবং OPENAI_COMPATIBLE_MODEL পড়ে। base URL-কে https://api.apisrouter.com/v1-এ point করুন এবং প্রতিটা Bilibili, YouTube, বা podcast summary gateway দিয়ে চলে, Chinese এবং global model এক key-এর পিছনে।

দ্রুত উত্তর: তিনটা environment variable।

BibiGPT-এর example environment file সরাসরি surface documents করে: OPENAI_COMPATIBLE_BASE_URL endpoint সেট করে (default https://api.openai.com/v1), OPENAI_COMPATIBLE_API_KEY key ধরে রাখে (unset থাকলে OPENAI_API_KEY-তে fallback করে), এবং OPENAI_COMPATIBLE_MODEL summary-র জন্য default model বেছে নেয়। base URL-কে https://api.apisrouter.com/v1-এ সেট করুন, key variable-এ একটা gateway key দিন, এবং model হিসেবে যেকোনো catalog id বেছে নিন। base URL ব্যবহারের সময় validate হয়: এটা অবশ্যই http:// বা https:// দিয়ে শুরু হতে হবে, এবং trailing slash strip হয়ে যায়, তাই উপরের /v1 form ঠিক সঠিক। এর নিচে app এই value থেকে একটা Vercel AI SDK openai-compatible provider বানায় এবং configured id দিয়ে chatModel কল করে, যে কারণে endpoint যে model-ই serve করুক না কেন কোনো code change ছাড়াই কাজ করে।

# 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 endpoint-এ কী পাঠায়।

BibiGPT (GitHub-এ JimmyLv, open-source v1-এর জন্য প্রায় 6K star) audio এবং video-র জন্য একটা one-click AI summarizer: একটা Bilibili বা YouTube link, একটা podcast, একটা meeting recording, বা একটা local file paste করুন, আর এটা transcript fetch করে, condense করে, এবং content-এর সাথে chat করতে দেয়। এটা Bilibili summary-র জন্য BiliGPT হিসেবে শুরু হয়েছিল এবং একটা hosted successor সহ একটা bilingual tool-এ বেড়ে উঠেছে; এখানে বর্ণিত environment configuration self-hosted open-source version-এর জন্য প্রযোজ্য। Workload transcript-shaped: লম্বা input, ছোট output। এক ঘণ্টার speech মানে অনেক transcript, যা app summarize করার আগে model-sized টুকরায় chunk করে, তাই একটা video মানে হতে পারে বেশ কয়েকটা chat-completions call যাদের input token তারা যে summary বানায় তার চেয়ে অনেক বেশি। তাই per-input-token price-ই পুরো economics, এবং long-context model লম্বা lecture ও podcast-এর জন্য chunking কমায়। Provider construction একটা সংবেদনশীল cascade-এ value resolve করে: একটা per-request key (নিজস্ব key আনতে দেওয়া instance-এর জন্য) OPENAI_COMPATIBLE_API_KEY-এর চেয়ে জেতে, যা OPENAI_API_KEY-এর চেয়ে জেতে; base URL এবং model-এর জন্যও একই প্রযোজ্য। এমনকি user-entered key যাদের prefix sk- না তা accept করার জন্য একটা OPENAI_COMPATIBLE_KEY_PREFIXES variable-ও আছে, যা গুরুত্বপূর্ণ যখন আপনার user-দের key OpenAI-র বদলে একটা gateway থেকে আসে।

একটা self-hosted instance-এর জন্য সম্পূর্ণ সেটআপ।

BibiGPT একটা Next.js app, তাই আপনি যেভাবেই deploy করুন না কেন environment ভ্রমণ করে: locally একটা .env file, Vercel-এ project environment variable, বা Docker-এ container env। তিনটা variable সেট করুন, redeploy বা restart করুন, এবং summary gateway দিয়ে route হবে। Model variable হলো default, কোনো কঠোর সীমা না। Request-এর সাথে একটা per-video config আসে যার model field, present থাকলে, OPENAI_COMPATIBLE_MODEL override করে, তাই একটা instance একটা volume id-তে default করতে পারে যখন নির্দিষ্ট flow একটা stronger id request করে। আপনি অন্যদের জন্য instance চালালে এবং তাদের নিজের key paste করতে দিলে, OPENAI_COMPATIBLE_KEY_PREFIXES-এ আপনার gateway-র key prefix include করুন যাতে form সেগুলো accept করে।

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-

পূর্ব ও পশ্চিমের জন্য summarization model বেছে নেওয়া।

তুলনাটা honestly চালানো সহজ: একই video, দুইটা model id, transcript-এর বিরুদ্ধে দুই summary পড়ুন। per-key usage log real content-এ প্রতিটা candidate-কে price করে, এবং transcript workload-এর জন্য পার্থক্য input-token column-এই সাথে সাথে দেখা যায়।

  • Chinese content BibiGPT-এর ঘরের মাঠ: Bilibili lecture, Douyin clip, Chinese podcast। glm-5.2, deepseek-v4-flash, এবং kimi-k2.6 natively Chinese transcript-এ strong এবং বাকি সবকিছুর মতোই একই endpoint-এর পিছনে বসে।
  • English এবং mixed content (YouTube, global podcast) claude-haiku-4-5-20251001 এবং gemini-3.5-flash-এ ভালো করে, দুটোই লম্বা noisy transcript-এ comfortable।
  • এই বিভাজনই একটা gateway-এর জন্য practical China-plus-global argument: এক endpoint, এক key, এবং per-video model override দুটো content source-এর জন্য একটা vendor বাধ্য করার বদলে সঠিক family বেছে নেয়।
  • লম্বা lecture long context থেকে লাভবান হয়। কম chunk মানে কম call এবং একটা বেশি coherent summary; আপনার সবচেয়ে লম্বা content-এর বিরুদ্ধে standardize করার আগে একটা long-context id test করুন।
  • Volume instance (একটা team যারা যা দেখে সব summarize করে) deepseek-v4-flash-কে default করা উচিত এবং selectively escalate করা উচিত; input-heavy shape fast-tier pricing-কে compound করে।

ব্যবহার অনুযায়ী পেমেন্ট · অফিশিয়াল মূল্যের নিচে

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-specific failure mode।

Fallback chain আপনাকে অবাক করতে পারে। OPENAI_COMPATIBLE_API_KEY খালি হলে, app নীরবে OPENAI_API_KEY-তে fallback করে। দুটো ভিন্ন service point করা পর্যন্ত এটা সুবিধাজনক: একটা gateway base URL একটা OpenAI key সহ এমন authentication error তৈরি করে যা gateway সমস্যার মতো দেখায়। Routing পাল্টালে, compatible-prefixed জোড়া একসাথে সেট করুন এবং অন্য কোথাও point করা কোনো stale OPENAI_API_KEY রাখবেন না, বা নিশ্চিত করুন সেটা একই gateway key ধরে রাখে। base URL validator scheme ছাড়া value reject করে, তাই একটা bare host দ্রুত একটা clear error দিয়ে fail করে; https:// এবং /v1 path include করুন। Trailing slash normalized হয়ে যায়, তাই দুই form-ই সেখানে কাজ করে। Model id endpoint-এর /v1/models listing-এর বিরুদ্ধে exact string; OPENAI_COMPATIBLE_MODEL-এ একটা typo প্রথম summary-কে model-not-found দিয়ে fail করে। Per-video override-ও মনে রাখুন: একটা flow পুরনো model ব্যবহার চালিয়ে গেলে, কিছু একটা request config-এ explicit model pass করছে। Transcript fetching আলাদা plumbing। Subtitle বা audio fetch করা না গেলে একটা video যদি কোনো summary না দেয়, সেটা content pipeline (platform API, subtitle availability), LLM endpoint না। এই guide-এর env var শুধু summarization call move করে। এবং লক্ষ্য করুন hosted bibigpt.co service তার নিজস্ব model manage করে; এই variable আপনি নিজে deploy করা open-source v1 configure করে।

কারা একটা gateway দিয়ে BibiGPT route করে।

  • Bilibili এবং YouTube দুটোই summarize করা Bilingual viewer, প্রতি language-এ এক vendor-এর বদলে এক key-এর পিছনে Chinese-strong id-কে global id-র সাথে জোড়া লাগিয়ে।
  • China-adjacent setup-এর Self-hoster যেখানে একটা single OpenAI-compatible endpoint যা GLM, DeepSeek, এবং Kimi-ও serve করে multi-vendor billing সমস্যা সম্পূর্ণ সরিয়ে দেয়।
  • Meeting এবং lecture-এর জন্য একটা shared summarizer চালানো Team, প্রতি key-তে usage metering করে এবং volume-tier id default করে।
  • ভারী podcast শ্রোতা, যেখানে সপ্তাহে ঘণ্টার পর ঘণ্টা transcript input-token pricing-কে পুরো cost story বানায়।
  • Developer যাদের কোনো নির্দিষ্ট vendor-এর billing-এ access নেই। কোনো card requirement ছাড়া Top-up based access per-provider sign-up dependency সরিয়ে দেয়।

Endpoint verify করুন এবং প্রথম summary debug করুন।

আপনার key যেসব model address করতে পারে তা list করুন এবং OPENAI_COMPATIBLE_MODEL-এর id তাদের মধ্যে আছে কিনা confirm করুন; সেই একক check বেশিরভাগ প্রথম-run failure প্রতিরোধ করে। তারপর ছোট কিছু summarize করুন। একটা authentication error মানে resolved key base URL-এর সাথে মেলে না, এবং fallback chain দেখে, ধরে নেওয়ার আগে print করুন আসলে কোন variable key সাপ্লাই করেছে। Model-not-found একটা id typo। Startup-এ একটা scheme error মানে base URL-এ https:// নেই। একটা healthy endpoint সত্ত্বেও কখনো শুরু না হওয়া একটা summary মানে transcript fetch কোনো LLM call-এর আগেই upstream-এ fail করছে। Summary flow শুরু হলে, APIsRouter console per-request model, token count, এবং spend দেখায়। Transcript summarization হলো সবচেয়ে clear input-heavy workload, এবং এক সপ্তাহের usage data আপনাকে প্রতিটা model-এ content-এর প্রতি ঘণ্টার real cost বলে দেয়, যা optimize করার মতো সংখ্যা।

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

সাধারণ প্রশ্ন

BibiGPT কি একটা কাস্টম OpenAI-compatible base URL সাপোর্ট করে?

হ্যাঁ। Self-hosted v1 তার example environment file-এ OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY, এবং OPENAI_COMPATIBLE_MODEL documents করে, এবং সেগুলো থেকে তার AI SDK provider বানায়। base URL-কে /v1 সহ gateway endpoint-এ সেট করুন।

BibiGPT কি GLM, DeepSeek, Kimi, বা Claude model দিয়ে summarize করতে পারে?

হ্যাঁ। Configured model id একটা plain string হিসেবে endpoint-এ pass হয়, তাই যেকোনো catalog id কাজ করে: Chinese content-এর জন্য glm-5.2 এবং kimi-k2.6, global content-এর জন্য claude-haiku-4-5-20251001 বা gemini-3.5-flash, সবই এক key-তে।

OPENAI_COMPATIBLE_API_KEY সেট না করলে কী হয়?

App OPENAI_API_KEY-তে fallback করে। দুটোই একই service point করলে ঠিক আছে, এবং না করলে বিভ্রান্তিকর; একটা gateway ব্যবহার করার সময়, compatible-prefixed key explicitly সেট করুন।

একটা shared instance-এ কি user-রা তাদের নিজের gateway key আনতে পারে?

হ্যাঁ। Per-request key environment override করে, এবং OPENAI_COMPATIBLE_KEY_PREFIXES নিয়ন্ত্রণ করে interface কোন key prefix accept করে, তাই একটা shared deployment user-entered gateway key নিতে পারে।

লম্বা video summary length যা ইঙ্গিত করে তার চেয়ে বেশি কেন খরচ করে?

কারণ transcript-ই input। এক ঘণ্টার speech মানে অনেক input token, বেশ কয়েকটা call-এ chunked, যখন summary output ছোট। Input-token price এবং long-context handling cost চালায়, এবং usage log প্রতি video-তে সেটা দেখায়।

এই variable কি hosted bibigpt.co service-এও প্রযোজ্য?

না। Hosted service server-side নিজস্ব model manage করে। OPENAI_COMPATIBLE_* environment variable আপনি নিজে deploy করা open-source BibiGPT v1 configure করে।