DIALØGUE:由零開始Build一個AI Podcast Generator(學到超多嘢)
我build咗一個AI podcast generator,俾你喺內容生成之前先shape佢——因為我已經厭倦咗AI喺我返工途中淨係讀Wikipedia俾我聽。
起點:點解要Build一個Podcast Generator?
好喇,係咁嘅——我好鍾意podcast。作為一個花太多時間塞車嘅人(hello,各位通勤族!),我一直都好好奇:如果我可以generate一個關於任何我有興趣嘅topic嘅podcast呢?唔係一個悶嘅AI voice讀Wikipedia,而係AI hosts之間嘅engaging對話。
加上,老實講,喺build咗幾個細project同寫咗我嘅coding journey之後,我想tackle一啲更大嘅嘢。一啲會push我去學新技術嘅嘢,而且可能會為其他人創造一啲有用嘅嘢。:P
咩係DIALØGUE?
DIALØGUE係一個早期階段嘅應用(alpha phase),用AI generate專業podcast。你俾佢一個topic——由「Fed decisions and market impact in 2025」到「Understanding quantum computing for beginners」——佢就會create一個完整嘅20分鐘以上嘅podcast,有多個AI voice進行真正嘅對話。
以下係佢同淨係叫ChatGPT讀一篇文章俾你聽嘅分別:
- Interactive outline review:呢個係game-changer——喺任何research或寫作開始之前,你可以review proposed outline同按你想要嘅方式shape佢
- Research-based content:用search engine research事實同最新資訊
- Natural dialogue:Claude Sonnet 4寫conversational scripts
- Multiple voices:高質素嘅neural voices,有唔同嘅host個性
成個過程由topic到完成嘅audio file大概10分鐘。對於一啲人類需要幾個鐘頭或者幾日先做到嘅嘢,唔錯㗎喇!
Tech Stack:一個Serverless冒險(不斷演化)
好喇,講吓技術細節(我最鍾意嘅部分!)。以下係DIALØGUE背後嘅技術:
Frontend
- Next.js 15 + React 19:因為我想用最新最好嘅
- TypeScript:被runtime errors burn過太多次之後
- Tailwind CSS:對於唔係design wizard嘅人嚟講styling容易好多
- Supabase JS Client:用嚟做auth同real-time updates(呢個係game-changer)
Backend(現時 - GCP)
- Cloud Run:10+個containerized Python microservices,有automatic scaling
- Cloud Workflows:Orchestrate pre-feedback(outline)同post-feedback(generation)workflows
- Cloud Storage:Audio file storage,有CDN delivery
- API Gateway:單一entry point,有CORS同authentication
- Supabase:PostgreSQL database,有Row Level Security同Edge Functions
*Note:Originally build喺AWS Lambda/Step Functions上,但2025年7月migrate到GCP,audio generation成本減少咗92%。*
AI Services
- Claude 4.0 Sonnet:Script generation,temperature設為0確保JSON reliability(直接用Anthropic API)
- Perplexity AI:為每個segment做research同fact-checking
- OpenAI TTS:高質素neural voices做natural conversation
- Content Moderation:Anthropic嘅built-in safety checks
主要功能同User Journey
以下係從user角度嚟睇佢點運作:
1. 輸入一個topic:簡單嘅text input,冇花巧嘢
2. AI generate一個outline:大約1分鐘——你會見到proposed structure同segments
3. Review同shape你嘅podcast:呢度係DIALØGUE真正shine嘅地方!你可以:
- 改變focus(「Make it more beginner-friendly」)
- 加入遺漏嘅context(「Include the recent 2025 developments」)
- 移除或修改segments(「Skip the technical jargon in segment 3」)
- 如果AI誤解咗你嘅intent,可以完全改方向
4. Generate完整podcast:當你approve咗outline,generation大約需要6-10分鐘
5. Download同enjoy:MP3 file準備好俾你通勤聽
背後,佢做緊更多嘢:
- 將topic拆分成segments
- 等你approve先做resource-intensive operations(唔使浪費credits喺唔想要嘅內容上!)
- 用specific queries research每個segment
- 喺兩個AI host之間寫natural dialogue
- 優雅咁handle errors(如果出錯會refund credits)
- Real-time progress updates等你知發生緊咩
好嘅、有挑戰嘅、同「Oh No」嘅時刻
好嘅
- Outline review功能:用戶鍾意可以喺generation開始之前shape佢哋嘅podcast。好似同你嘅AI producer傾偈咁!
- 10倍performance改善,由轉用直接Supabase queries(450ms → 45ms)
- 即時user signup:用atomic Edge Functions修好咗3分鐘delay bug(依家 < 500ms)
- 自動credit refunds,喺generation失敗時透過database triggers
- Real-time updates真係work(多謝Supabase!)
- 92%成本減少,喺audio generation方面,migrate到GCP之後
- 乾淨嘅database-first architecture,移除咗Lambda legacy code之後
有挑戰嘅(依家解決咗!)
- AWS Lambda layer地獄:Import errors、250MB size limits(透過GCP migration解決)
- JWT security migration:由HS256升級到P-256,同時保持backward compatibility
- AI temperature設定:Claude喺0.7嘅時候30%嘅時間generate invalid JSON(用temperature 0修好)
- WebSocket memory leaks:React components每個鐘leak 50MB(用RealtimeManager修好)
- Database race conditions:新用戶等咗3分鐘因為replication lag(用atomic operations修好)
- Credit system複雜度:由dual credits簡化為single type
「Oh No」嘅時刻
- 嗰次我唔小心將critical workflow data儲喺錯嘅地方
- 當我發現神秘嘅browser errors係來自我自己嘅code耗盡resources
- 喺routine audit中發現security vulnerabilities(全部已修好!)
我學到咩(劇透:好多)
呢個project push咗我去到comfort zone之外好遠,學到好多:
1. User control至關重要:Outline review功能唔喺我嘅原始設計入面,但佢成為咗最重要嘅功能。俾用戶喺generation開始前shape content,慳時間、慳credits、減frustration
2. 由簡單開始,需要時先migrate:我哋由AWS Lambda開始但撞到複雜度嘅牆——migrate到Cloud Run解決咗所有問題
3. Direct database queries可以更快:我嘅10倍performance改善係來自拋棄不必要嘅API layers
4. AI成本會累積:為single podcast run多個AI services需要小心嘅成本管理
5. User experience好重要:加progress indicators同time estimates make a huge difference
6. Security永遠唔會「完成」:Regular audits揭示咗我永遠唔會想到嘅問題
7. Infrastructure as Code有gotchas:SAM嘅quirks教識我好多(好似SSMParameterReadPolicy加多咗slash!)
8. Cloud migrations可以出奇地快:有AI pair programming,我哋一日就由AWS migrate到GCP!
目前狀態同未來計劃
DIALØGUE依家live咗!喺alpha phase,新用戶有2個免費credits。
價錢方面——老實講,我花咗太多時間喺度苦惱。每個podcast都需要真金白銀generate(Claude API calls做script、Perplexity做research、OpenAI做voice synthesis——加埋真係唔少)。最後我定咗大概cover我成本加少少margin嘅credit packs:Starter $4.99有4個podcasts、Pro $9.99有9個、Bulk $19.99有18個。隨住我了解更多actual usage patterns,可能會調整,但暫時覺得公平。而且如果因為技術原因generation失敗,credits會自動refund——我唔會因為我嘅bug收你錢 :P
想試吓?
我好想你試吓!去podcast.chandlernguyen.com同create你第一個AI podcast。頭2個係免費嘅,你冇嘢可以輸。
事先警告:佢仲喺alpha,所以可能會break。但hey,呢個都係fun嘅一部分,對唔對?如果你遇到問題,app入面有feedback功能(只限logged-in用戶——因為有啲spam問題所以加咗呢個限制)。
最後諗法
Build DIALØGUE係我tackle過最有挑戰同最有回報嘅project之一。佢結合咗我學緊嘅所有嘢——由AWS Lambda functions到React components到AI prompt engineering——仲帶嚟咗一個意想不到嘅cloud migration journey。
最出乎意料嘅發現?我之前提到嘅outline review步驟。最初我以為用戶只係想input一個topic就get一個podcast。但喺testing中,我意識到俾用戶控制方向、喺main generation process開始之前,make all the difference。佢將工具由一個黑箱變成一個collaborative AI assistant。同一個insight——人類creative direction加上AI execution——後來喺我build DIALØGUE嘅native iOS app而唔識Swift嘅時候成為咗核心lesson。
佢完美嗎?唔係。佢有用嗎?我覺得係!至少,佢係一個incredible嘅學習旅程,而我好excited睇吓佢之後會點發展。
你會create一個關於咩嘅podcast?我真心好奇——send message俾我或者自己試吓。誰知道呢,有shape同guide content嘅能力,你嘅AI-generated podcast可能正正係你想搵嘅嘢。:P
祝好,
Chandler
**想要技術deep-dive?**跟住成個journey:
- Build DIALØGUE嘅engineering lessons:我由advertising到engineering嘅旅程,同埋點解complexity係敵人
- 一個AI Parameter改動令我每月多付$54:AWS → GCP migration期間一個temperature設定點樣造成重大低效





