會議錄影是一項未獲充分利用的知識資產。這些錄影難以搜尋,重看又費時,而且分散於各團隊的共用硬碟,令寶貴洞見往往被忽略。
在一場為期一天的黑客松中,三人團隊開發了 Callombia。這個內部平台會自動為通話錄影轉錄、加上標籤、摘要及剪輯,再收錄到可供全球辦公室搜尋、類似 YouTube 的程式碼庫。
整套解決方案均以 Codex 建構,採用由 OpenAI 嵌入向量及餘弦相似度支援的語意搜尋,即使未使用完全相同的關鍵字,也能找出相關片段,並加入 RAG 聊天機械人及通知系統。
過往需時數星期的工作,如今只用七小時便完成,顯示利用 Codex 等編程智能代理進行 AI 原生開發,可大幅縮短產品開發週期,並讓內部黑客松創造真正的商業價值。
如果你和我一樣,大概很少有時間(或耐性)重聽會議錄音。這往往是因為要在雜亂無章的團隊共用硬碟中搜尋、跳過乏善可陳的閒聊,還要一邊傳送電郵和訊息,一邊嘗試真正專心聆聽。
但事情也許不必如此?也許我們可以建構某種工具,徹底改變會議錄影的使用方式?這正是我們最近黑客松項目的構思起點。
短短一天內,我們工程、交付及營運團隊的 50 名成員,處理了多項來自公司各部門的問題,包括擴展招聘營運、簡化工作說明書(SoW)的建立流程、了解項目狀況、即時生成原型,以及從會議錄影中發掘洞見。
在這場以 Codex 為基礎的黑客松中,我們開發了 Callombia。Callombia 就像公司的 YouTube,能將每次通話化為持續更新、可供搜尋的資產。每次通話都會自動轉錄、加上標籤和摘要,再按主題剪輯成片段,並收錄到按頻道(客戶)和主題(AI 專業領域)分類的程式碼庫。這讓倫敦、愛丁堡、新加坡及澳洲的任何團隊成員,都能即時查看自己關注的通話片段。
熟悉且符合品牌形象的用戶介面,讓探索內容變得直觀;語意搜尋(當然還有 RAG AI 聊天機械人)則協助大家準確找到所需內容。加入通知系統後,同事亦可訂閱特定主題,並在有相關新片段發佈時收到通知。
不過,Callombia 最令人驚喜的並非產品本身,也不是贏得黑客松的 2,000 英鎊獎金(順帶炫耀一下),而是我們僅憑兩名工程師和一名交付主管,便在七小時內完成這一切。一年前,這是不可能做到的。編程智能代理的進步大幅加快了端到端產品開發流程,而這場黑客松亦成為理想的試驗場,讓我們了解其能力參差不齊的前沿界線。那麼,我們如何運用 Codex?
我們沒有一開始便寫下大量需求,而是先以提示詞分享團隊對問題範疇及 Callombia 願景的共同看法。我們刻意不作具體描述,讓模型自行發揮並作創意思考:
經過 10 分鐘來回討論後,我們啟用規劃模式,以收窄需求範圍,並為開發的技術部分提供依據。規劃模式就像在回答那位煩人的朋友提出的問題——他已經(好心地)仔細考慮過每一種可能情況。在議定影片數量、採用語意還是關鍵字搜尋,以及所用架構等事項後,它便建立了一個 Markdown 檔案,成為項目後續開發的基礎。


制定計劃後,下一步就是建構讓 Callombia 真正運作的核心組件。這意味著要建立一套流程,將通話錄影轉化為可供搜尋的資產:
匯入影片及轉錄文字;
將內容分割成有意義的片段;
加入摘要和標籤以豐富內容;
透過前端可調用的 API 提供內容。
Ed 較專注於將原始錄影及轉錄資料整理成可用格式,Nico 則較專注於建立檢索層,讓這些片段可被搜尋。借助 Codex,二人建立資料模型、擷取指令碼及後端基礎管道的速度,都遠高於人手處理。這讓我們得到的遠不只是一段附於影片的轉錄文字。我們得到的是一個個重點片段:Tesco 部分、策略更新、招聘討論,以及通話中真正有人想看的特定 90 秒。
這個檢索層尤其令人感興趣。我們希望用戶輸入「財務表現」、「Tesco 路線圖」或「對話評估」等內容後,即使通話中從未說過完全相同的字詞,也能找到最相關的片段。為此,我們建立了包含時間戳記、摘要、轉錄文字及中繼資料的內容分段。在明確架構和 Codex 的大力協助下,我們把主題、摘要及轉錄文字合併成單一輸入,並使用 OpenAI 的 text-embedding-3-small 模型,為每個分段生成嵌入向量。我們把這些嵌入向量儲存在資料庫,並以餘弦相似度將用戶查詢與每個分段比較,從而建立語意檢索層,而非單純的關鍵字搜尋。
這種方法的準確度極高,亦令產品在黑客松示範中呈現出「神奇」的效果。與此同時,我們知道如果影片數量持續增加,這種方法無法永遠擴展,因為將每次查詢與所有分段比較,最終成本會變得過高。順理成章的下一步,是引入分層可導航小世界(Hierarchical Navigable Small World)等更高效的檢索策略,以減少比較次數,並在語料庫擴大時維持低延遲。這項功能開始運作後,Callombia 感覺不再像媒體庫,而更像一套知識系統。
正如所有優秀的黑客松項目,這部分亦需要反覆改進:最初的分段界線過於粗疏,部分時間戳記需要收窄,一些標籤過於籠統,而轉錄文字與錄影檔案也不一定能整齊對應。但價值也正是在這個過程中展現。Codex 讓我們快速改進系統,毋須困於設定及重做工作。到最後,我們建立了一個可支援影片片段、內容摘錄及真正實用的語意搜尋功能的後端。至此,Callombia 開始像真正的產品,而不再只是一個黑客松示範項目。
Ed 和 Nico 建構匯入及智能層的同時,我則負責前端。利用我們的全端範本,我完全毋須編寫程式碼,便迅速建立網站的初始版本。要求它在我的瀏覽器中開啟本機網站後,我會以簡單列點方式提供意見,反覆調整設計,直至符合我的構想。
經過約一小時的來回調整,我便得到一個相當滿意的版本,而我根本沒有任何用戶介面或設計經驗。最終產品固然並不完美,但作為初始版本已相當不俗,足以讓人了解這項產品。


為確保當天結束時能交出成果,我們把工作分配給各人。顯然,經過數小時半獨立工作後,各人的本機分支都出現了大量衝突。
我們沒有花費根本沒有的時間,逐一仔細檢查和解決衝突,而是決定讓 Codex 自行處理各個程式碼庫並修正衝突。現階段我們不會建議將這種做法用於企業級軟件開發,但看到它在低風險環境中如此有效,實在令人驚嘆,而且也為我們節省了許多小時。
黑客松的最後一項工作,是為評審錄製 Callombia 的示範影片。我們的直覺是開啟 Loom 錄影,但想到這或許能真正考驗 Codex,而且稍為超出其目前能力範圍。所以……我們寫了一個提示詞,提供 Callombia 網站的連結,再附上我在 OpenAI 開發者平台錄製的聲音,然後讓它完成其餘工作。
第一次嘗試已非常出色——它寫好了示範稿、錄製螢幕、加入我的旁白,基本上完全符合要求。我們唯一未能立即滿意的是旁白與示範錄影的同步,因此要求它:「強制要求:旁白必須與示範畫面顯示的內容完全同步。兩者曾出現錯位(例如聊天頁面)。最後必須再三檢查旁白與螢幕錄製示範的同步情況,並以任何可行方法使兩者吻合。」
為回應這項要求,Codex 把旁白和錄影分拆成多個較短部分,幾乎完美地完成任務,正好趕及下午 5 時 30 分,一起以啤酒和薄餅慶祝。
我們知道 Callombia 解決了大多數企業都面對的問題。在一家快速擴張的公司內,要出席每一次通話並不容易,但這些通話中分享的智慧精華卻極具價值。現在只需將它投入正式環境。
然而,這次經驗亦帶來一項更重要的 AI 原生啟示:投入工程及產品專業知識,合力解決共同問題,能夠帶來莫大裨益。我們跳出日常工作循環,在半競爭的環境下跨團隊合作,最終得出多項只需稍作調整便可投入正式環境的解決方案。定期進行這類活動,便可確保內部運作與我們為客戶建構的解決方案同樣流暢高效。