{
  "text": "大家想像一個情境\n現在是凌晨一點\n然後你為了解一個系統 bug\n已經坐在電腦前\n除錯了十幾分鐘\n哇 凌晨一點\n這聽起來就是我們工程師的\n日常噩夢\n真的超級痛苦\n然後你剛剛把一份\n就是大概 2000 行左右的\nJSON 錯誤報告\n還有三個核心程式碼\n檔案的片段\n全部貼給你的 AI 助手\n嗯 這資訊量真的很龐大\n對 然後你好不容易\n真的是好不容易\n引導他找到了問題點\n你就下指令說\n太好了 就針對剛剛那個\noff 檔案生成修復程式碼\n結果你猜怎麼著\n該不會是忘記了吧\n沒錯 他回傳了一段\n完全不相關的邏輯\n甚至連檔名都拼錯\n也就是說 他的上下文記憶\n就在最關鍵的這一刻\n徹底爆滿崩潰了\n這種時候真的會讓人\n想直接砸螢幕\n其實這就是開發界常說的\n所謂的上下文視窗危機\n對 Context Window 危機\n沒錯 當歷史資訊量太大\n傳統的 AI 系統\n為了解決這個問題\n通常會在背後\n偷偷做一件事\n就是把前面的對話\n進行摘要\n但講到傳統的摘要法\n那根本就像是\n我們清理冰箱的時候\n把所有剩菜\n隔夜飯全部倒進果汁機裡\n然後打成一鍋\n完全看不出原貌的綜合果汁\n這個比喻非常精準\n體積確實是變小了\n沒錯 對\n可是如果我現在需要\n找裡面的一根蔥\n抱歉 完全找不到\n在程式碼的環境裡\n少掉的那根蔥\n可能就是一個至關重要的 API 參數\n確實 這會讓整個後續的除錯\n完全失準\n而且比綜合果汁更糟的是\n這杯果汁還會讓 AI 產生幻覺\n讓它去憑空捏造那些\n被摘要吃掉的細節\n哇 那真的是越忙越忙\n所以我們在本次深入探討中\n要來解析一個全新的開源專案\n這是一個 Cloud Code 的擴充套件\n兼 NPM 模組\n叫做 Fast-Jev-Compaction\n這個套件的策略非常極端\n它主打的是逐字保留\n以及得分刪除法\n也就是說 它不打果汁了\n它是把你確定已經過期的食材\n整包連同包裝袋\n直接丟進垃圾桶\n而留下來的每一顆蘋果\n都是百分之百原封不動\n非常新鮮的\n沒錯 這就是它的核心理念\n所以今天的任務\n我們就是要來拆解這套機制的底層邏輯\n比如它能省下多少 Token\n如果是很短的對話\n會不會反而增加成本\n還有對我們台灣的中小企業來說\n這到底能不能真正落地\n這些實務問題都非常關鍵\n那我們先從它的保鮮機制談起好了\n我注意到來源資料裡提到\n它會把每一筆工具呼叫\n就是 Tool Use 跟它的結果 Tool Result\n成對地綁定在一起\n對 這是它運作的最基礎基石\n因為在 Cloud Code 這種\n會瘋狂呼叫終端機\n或者是讀取檔案的環境中\n工具的操作跟回傳結果\n是絕對不能脫鉤的\n了解 那它怎麼決定誰該留下來\n系統有一個叫做\nPreserve Recent Messages 的設定\n預設值是 6\n意思是最新發生的前 6 筆對話訊息\n會被加上精選的保護罩\n精選\n所以這 6 筆是絕對安全的\n絕對不碰\n它保證你當下正在處理的邏輯\n不會被刪掉\n但挑戰來了\n如果要請 Jev 這個模型\n來幫我們評估那些\n沒被勾選的舊資料該不該刪\n我們得把整個長篇大論的歷史記錄\n傳送給它對吧\n沒錯 這就是一個潛在的瓶頸\nJev 本身的上下文上限\n是 32K 個 Token\n如果在傳送評估的路上就先爆了\n那這個壓縮工具\n不就毫無意義了嗎\n所以開發者為了解決這個問題\n設定了一個 Max State Tokens 的上限\n預設是 25,000\n25,000 留了一點緩衝空間\n對 而且為了在不拖慢系統速度的前提下\n估算這 25,000 個 Token\n它放棄了傳統那種\n精確但很笨重的分詞器\n不用 Tokenizer\n那它怎麼算\n它直接用字元來進行粗略的估算\n等一下 用字元算\n這在英文環境或許說得通\n大約 6 個英文字母算一個詞\n數字算半個 Token\n標點符號算一個\n這是一種為了效能妥協的做法\n沒錯 這是一種啟發式演算法\n可是這在我們台灣的實務應用上\n根本是個隱形地雷吧\n你想想看 如果使用者的 Prompt\n或者那個巨大的 JSON 報表裡\n塞滿了繁體中文呢\n哇 這裡真的講到重點了\n在大多數大型語言模型裡\n一個繁體中文字可能就會消耗 2 到 3 個 Token\n如果系統還傻傻地以為\n6 個中文字才等於 1 個 Token\n這絕對會嚴重低估真實的 Token 數量\n這個實務觀察真的非常敏銳\n這個開源專案目前的設計思維\n確實帶有強烈的英語系\n跟程式碼本位色彩\n對 最後送給 Jev 的時候\n肯定會直接撞破 32K 的上限\n導致 API 報錯\n這也是為什麼它把安全水位設在 25,000\n留了足足 7K 的緩衝\n但對於大量處理中文文本的團隊來說\n技術主管在導入時\n絕對需要注意這個資源估算的比例\n了解 要特別小心\n不過撇除中文字元的問題\n當它發現資源數真的超過了 25,000 的限制\n我看到資料說它的處理手法\n叫做多階段處理\n對 Stage Based Fitting\n它的做法相當精妙\n讓我推演一下\n假設我有一個 5000 行的系統日誌\n它總不可能直接放棄壓縮吧\n它一定是從那些最肥大的參數開刀\n完全正確\n第一階段 它會把所有沒被勾選的\n舊工具輸入參數\n硬生生壓縮到 1000 個字元\n所以它把中間挖空了嗎\n沒錯 它只保留開頭跟結尾\n把中間龐大的資料直接捨棄\n所以它保留了工具曾經被執行過的形狀\n但捨棄了內容\n那如果挖空到 1000 字元\n算一算還是超過 25,000 呢\n那它就會變得更殘酷一點\n進入第二階段\n把限制縮減到 200 個字元\n200 字元真的很少了\n如果再不行 就砍到極限的 60 個字\n到最後如果還是塞不進去\n那些很久以前的舊訊息\n會被徹底折疊成一句簡單的短語\n像是一句註解那樣嗎\n對 例如省略 N 個字元\n就這樣一步一步削肉剔骨\n直到整包資料的估算值\n能安全塞進 25,000 的限制裡\n再送給 Jev 去做最後的決策\n哇 這種在極限狀態下的多階段處理邏輯\n對我們工程師來說\n真的是一個很棒的價值提升\n怎麼說\n就是在系統設計時\n為了追求極致的效能跟穩定\n其實你不一定需要追求百分之百\n精確的 Token 計算\n用簡單的資源估算\n搭配多層次的安全防線\n實務上不僅運作更快\n容錯率也更高\n工程思維的精髓\n就是用最小的算力成本\n換取最大的系統穩定度\n但講到成本\n這就衍生出另一個很現實的問題了\n什麼問題\n如果今天我這個除錯任務其實很簡單\n我只跟 AI 來回對話了三四次\n上下文根本還很空\n為了清理那一點點的歷史記錄\n我還要特地把資料打包\n傳送一個 API 請求給 Jev 去做評分\n這反而多花了一筆 API 費用\n甚至增加了網路延遲對吧\n沒錯 這樣感覺很不划算\n其實這個外掛並沒有那麼死板\n在系統內部\n它設定了一個參數叫做 Reduction Ratio\n也就是壓縮比例\n哦 所以它會先算帳\n對 當 Jev 評估完畢\n準備動刀刪除之前\n系統會先預估一下\n如果預計能砍掉的內容比例小於 0.25\n也就是說 Jev 認為能刪掉的廢話不到四分之一\n系統就會判斷說\n這套壓縮根本不划算\n馬上停損\n就是這樣\n它會直接退回原本的完整對話\n或者 Fallback 回去使用\nCloud Code 內建的裁減機制\n它不會為了展現自己會壓縮\n而硬去執行無效的操作\n懂得及時停損是很聰明的設計\n但如果我們把目光放遠一點\n考慮到企業長期的技術選型\n我們最怕的其實是被單一廠商綁架\nVendor Lock-in\n這確實是企業導入新技術時最大的顧慮\n對啊 今天這個套件是為 Jev 模型設計的\n如果我不想把資料打給 TypeSafe 的 API\n或者我們公司已經買了大量的\nOpenAI 或 Anthropic 的額度\n這套機制還有用武之地嗎\n來源文件雖然沒有明說\n它原生內建了所有主流模型\n但它刻意留下了一道非常寬廣的後門\n開發者可以自行實作一個\n名為 Jev Asker 的介面\nJev Asker\n意思是只要我符合這個介面的標準\n我背後要接誰都可以\n沒錯 只要你能寫出一個 Ask 的方法\n你就可以自行撰寫底層的傳輸邏輯\n而且這個專案是作為 NPM 模組發布的\n所以它可以直接裝在專案裡\n對 它還大方地匯出了像是\nCompact Messages\nCollect Tool Calls 這些核心函式\n這些就像是樂高積木一樣\n這對於技術主管來說\n真的是一盒定心丸\n這種模組化暴露出核心介面的設計\n意味著我們甚至可以把這套刪除法的演算法\n抽離出來 改寫整合到公司內部的私有 AI 系統中\n這樣技術綁架的風險就趨近於零了\n既然機制這麼彈性\n那我們就得來檢驗它的心臟了\n它到底是怎麼給出那個所謂的刪除得分的\n它的評分機制是這樣\nJev 會針對每一個沒被勾選的工具呼叫\n問兩個非常刁鑽的問題\n哪兩個問題\n第一 這個呼叫的記錄本身該留下來嗎\n知道它曾經被執行過\n對接下來的任務還重要嗎\n嗯 這是評估動作本身\n那第二個呢\n第二 這個執行的結果該原封不動保留嗎\n還是其實可以刪掉\n大不了讓 AI 發現缺資料時重新跑一次\n哦 所以它把動作跟結果分開來評估\n那幾個分數是多少\n系統依賴一個預設為 0.5 的 keep threshold\n也就是保留門檻\n大於 0.5 就保留嗎\n對 如果 Jev 給出保留結果的機率大於 0.5\n那就整組完好無缺地留下\n那如果結果不重要 但動作很重要呢\n如果保留結果的機率不高\n但保留動作記錄的機率大於 0.5\n它就會把那份龐大的結果\n截斷到前 300 個字元\n並加上一行註解\n告訴 AI 這裡曾經發生過什麼\n了解 那如果兩個機率都低於 0.5 呢\n那就是整組直接超度\n完全刪除\n超度 這形容很貼切\n邏輯聽起來很縝密啦\n但我們都知道 機率不代表絕對\n萬一 Jev 今天就是判斷失誤\n把一個超級關鍵的記錄給刪了\n導致模型徹底忘記了\n剛剛讀過的檔名\n這時候補救機制是什麼\n開發者在畫面上其實不會瞎子摸象\n你會看到一個 Toast 提示\n明確告訴你保留了幾筆訊息\n但如果真的誤刪了關鍵資訊怎麼辦\n文件也坦承這項技術有它的局限\n如果真的刪錯了\n其實補救方式非常直覺\n因為你是在具有代理能力的環境裡\nAI 如果發現自己缺少某個參數\n它可以隨時再次執行該工具\n大不了就是讓 AI 再花個幾秒鐘\n重新讀一次檔案\n這成本還算可以接受\n除此之外 為了確保系統不會因為 API 連線失敗\n而整組崩潰\n作者在寫單元測試的時候\n特別實作了一個不聯網的 Fake Jev\n不聯網的假 Jev\n這有什麼好處\n這確保了在真實情境中\n萬一 Jev 回傳了破損的 JSON\n或是網路直接斷線\n系統能百分之百順暢地執行優雅降級\n優雅降級\n也就是無縫切換回\nCloud Code 原本內建的裁減機制對吧\n完全正確\n有降級機制確實讓人安心\n但說到聯網打 API\n我們就必須面對企業導入時最大的心魔了\n那就是資安\n沒錯 這真的是重中之重\n任何會把資料往外送的外掛\n在公司內部都會面臨嚴格的審查\n對 這部分資料裡有提到什麼防護機制嗎\n這是今天最核心\n最需要劃重點的資安警告\n這個套件在運作時 你需要填寫 API Key\n而且它會將你那份完整的對話記錄\n包含所有的工具輸入參數\n毫無保留地傳送到 TypeSafe 的伺服器\n等一下 毫無保留\n也就是說 如果我的程式碼裡夾帶了 AWS 的機密金鑰\n或者我們公司核心產品還沒公開的商業邏輯\n這些都會變成純文字\n直接送到別人的伺服器上\n毫不設防\n完全會\n來源文件完全沒有提到\n任何內建的自動過濾或清理敏感資訊的機制\n哇 這太危險了吧\n作者反而在 README 裡非常用力地警告大家\n絕對不要把金鑰提交到原始碼中\n這等於是在暗示\n資料的對外傳輸是完全透明且具有風險的\n這件事對台灣的中小企業\n資安公司或是企業內部團隊來說\n太關鍵了\n非常關鍵\n我們常常看到工程師為了解決眼前的\nContext 爆滿痛點\n上網隨手就裝了一個開源工具\n這裡的實務提醒是\n如果你的專案牽涉到任何商業機密\n絕對不能在沒有自建防線的情況下直接套用\n沒錯 這也呼應了前面提到的\nJev Asker 介面\n如果企業真的要導入\n技術團隊必須自己寫一個中介層\n在把資料送出去給 Jev 評分之前\n先在本地端把敏感資訊過濾掉\n企業的底線是不能妥協的\n但其實即使資安這關過了\n技術團隊還要面對另一個深淵\n那就是部署的摩擦力\n部署的坑真的很多\n技術再好 如果無法順暢地部署到\n每一位工程師的電腦上\n或者沒辦法放進 CI/CD 的流程裡\n那也是白搭\n我看到文件特別提到\n這個機制依賴 Cloud Code 的 Function Hooks 功能\n對 麻煩就在於\n這個功能目前還處於早期測試階段\n所以它不是 NPM 安裝完\n就能無腦啟動的\n遠比那複雜\n你必須在環境變數\n或者是本機的設定檔裡\n強制宣告一個全域變數來開啟這個功能\n哦 要手動去開 Feature Flag\n對 這代表團隊裡的每一個使用環境\n包括每位新進員工的筆電\n或是雲端的 CI/CD 伺服器\n都必須先經歷這個手動開啟的步驟\n否則外掛根本不會動\n哇 這對 DevOps 團隊來說\n絕對是個大坑啊\n推廣新工具時\n只要多一個手動設定步驟\n採用率就會掉一半\n確實會增加初期的推廣成本\n不過談到推廣跟說服\n我注意到作者做了一件讓我非常驚艷的事情\n他為了展示這套抽象的得分刪除法技術\n特地寫了一個 macOS 原生的 Swift UI App\n只為了錄製一段展示影片\n這在開源推廣上真的非常聰明\n對啊 為什麼他不直接錄個\n無聊的終端機畫面就好\n還要特地寫個 App\n這個 App 其實從頭到尾\n都沒有呼叫任何真實的 API\n它裡面顯示的對話跟決策\n全都是用腳本預先寫實的\n它純粹就是為了視覺化演出而生的\n視覺化演出\n它具體演出的是什麼效果\n當你在畫面上看到一長串\n密密麻麻的歷史記錄\n系統判定哪些舊的呼叫是不需要的廢話時\n那些文字會直接在畫面上變成紅色\n然後動態地折疊消失\n哇 變成紅色然後消失\n這種視覺衝擊力太強了吧\n對一個沒時間看長篇技術文件的技術主管\n或非技術老闆來說\n這幾秒鐘的動態裁剪\n能讓他們瞬間看懂這個技術的核心價值\n這裡有一個超棒的實務應用價值\n如果我們是工程師\n準備向老闆提案導入\n這種可以幫公司省 API 費用的新架構\n嗯 你要怎麼說服他\n與其貼出一堆冷冰冰的 Lockdown\n或是 Token 節省數據\n不如學學這種視覺化展示核心邏輯的手法\n老闆一看紅字消失 馬上就知道\n哦 垃圾被清掉了\n有用的東西還在\n而且我們省錢了\n沒錯 能把深奧的底層邏輯\n轉化為直覺的視覺\n有時候比寫出這段程式碼還要困難\n這絕對是提升競爭力的好方法\n聊到這裡我們最後來宏觀地檢視一下產業趨勢\n面對上下文爆滿\n目前業界有遮蔽法\n有直接砍掉舊對話的滑動視窗\n還有傳統的摘要法\nGMV 帶來的這種得分刪除\n未來真的會成為主流嗎\n它還有什麼無法跨越的曲線\n滑動視窗雖然簡單粗暴\n但大家都意識到它會無可避免地\n遺失早期設定的系統約束條件\nGMV 確實在精確度上開創了一個新流派\n但它目前有一個非常硬傷的缺陷\n什麼缺陷\n在最終輸出實際保留下來的歷史記錄裡\n純文字訊息\n也就是人類跟 AI 講的話\n永遠不會被移除或縮減\n等等 也就是說如果使用者自己打字\n貼了幾萬字的會議記錄\n甚至是一堆無意義的廢話\n這個外掛其實拿它一點辦法都沒有\n一點辦法都沒有\n純文字只會在傳給 GMV 評估的那個狀態中\n被縮減\n但最終真實保留在上下文裡的記錄\n人類打的純文字會被百分之百完整保留\n所以它只管工具呼叫的記錄\n對 GMV 的權限僅限於決定\n要不要刪除工具呼叫\n跟工具回傳結果\n這個誤區非常重要\n這意味著企業在評估導入時\n絕對不能抱持著說\n哦 我裝了這個就能無腦壓縮所有人類對話\n這是一個錯誤期待\n沒錯 它是一把極端特化的手術刀\n它最佳的發揮舞台是那種\n多代理人瘋狂反覆執行工具\n在背後產生大量 JSON 報表與錯誤日誌的自動化任務\n只有在這種情境下\n大量的無效系統痕跡才可以被精準抹除\n但如果是人類純聊天\n它的節省效果其實微乎其微\n對 這點在導入前一定要評估清楚\n所以真的是要把刀用在刀口上\n針對自動化與工具密集的任務去應用\n才能最大化節省 Token 的投資報酬率\n今天的解析真的非常精彩\n從果汁機的殘酷比喻\n到多階段處理的精妙\n還有繁體中文的潛在風險\n甚至資安防護跟視覺化展示\n這讓我們不禁反思\n在未來 AI 越變越強的時代\n我們真的需要讓 AI 記住所有的摸索與錯誤過程嗎\n還是其實只要讓它記住關鍵的結論與原始資料就足夠了\n今天最後的實務提醒是\n看到新的開源工具\n大家不要只看表面上宣稱省了多少 Token\n一定要往底層看它的資料流向\n有沒有資安過濾機制\n能不能真正安全地落地到你們公司的規範中\n沒錯 安全永遠是第一考量\n喜歡我們的深入分析討論嗎\n記得轉發給有需要的親朋好友\n並且幫我們按讚訂閱開啟小鈴鐺\n更多相關資訊連結\n請參考影片下方的資訊欄\n最後感謝您的收聽\n祝您順心 我們下集再會\n拜拜",
  "language": "zh",
  "duration": 1300.0,
  "segments": [
    {
      "id": 0,
      "start": 0.0,
      "end": 1.6,
      "text": "大家想像一個情境",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 1,
      "start": 1.6,
      "end": 3.64,
      "text": "現在是凌晨一點",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 2,
      "start": 3.64,
      "end": 6.28,
      "text": "然後你為了解一個系統 bug",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 3,
      "start": 6.28,
      "end": 8.0,
      "text": "已經坐在電腦前",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 4,
      "start": 8.0,
      "end": 9.88,
      "text": "除錯了十幾分鐘",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 5,
      "start": 9.88,
      "end": 11.32,
      "text": "哇 凌晨一點",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 6,
      "start": 11.32,
      "end": 13.52,
      "text": "這聽起來就是我們工程師的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 7,
      "start": 13.52,
      "end": 14.84,
      "text": "日常噩夢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 8,
      "start": 14.84,
      "end": 16.72,
      "text": "真的超級痛苦",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 9,
      "start": 16.72,
      "end": 18.96,
      "text": "然後你剛剛把一份",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 10,
      "start": 18.96,
      "end": 21.28,
      "text": "就是大概 2000 行左右的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 11,
      "start": 21.28,
      "end": 22.56,
      "text": "JSON 錯誤報告",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 12,
      "start": 22.56,
      "end": 24.92,
      "text": "還有三個核心程式碼",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 13,
      "start": 24.92,
      "end": 26.12,
      "text": "檔案的片段",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 14,
      "start": 26.12,
      "end": 28.44,
      "text": "全部貼給你的 AI 助手",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 15,
      "start": 28.44,
      "end": 31.16,
      "text": "嗯 這資訊量真的很龐大",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 16,
      "start": 31.16,
      "end": 32.88,
      "text": "對 然後你好不容易",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 17,
      "start": 32.88,
      "end": 34.36,
      "text": "真的是好不容易",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 18,
      "start": 34.36,
      "end": 36.32,
      "text": "引導他找到了問題點",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 19,
      "start": 36.32,
      "end": 37.68,
      "text": "你就下指令說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 20,
      "start": 37.68,
      "end": 40.16,
      "text": "太好了 就針對剛剛那個",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 21,
      "start": 40.16,
      "end": 42.44,
      "text": "off 檔案生成修復程式碼",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 22,
      "start": 42.44,
      "end": 43.88,
      "text": "結果你猜怎麼著",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 23,
      "start": 43.88,
      "end": 45.44,
      "text": "該不會是忘記了吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 24,
      "start": 45.44,
      "end": 47.2,
      "text": "沒錯 他回傳了一段",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 25,
      "start": 47.2,
      "end": 49.36,
      "text": "完全不相關的邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 26,
      "start": 49.36,
      "end": 51.52,
      "text": "甚至連檔名都拼錯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 27,
      "start": 51.52,
      "end": 54.68,
      "text": "也就是說 他的上下文記憶",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 28,
      "start": 54.68,
      "end": 56.6,
      "text": "就在最關鍵的這一刻",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 29,
      "start": 56.6,
      "end": 58.28,
      "text": "徹底爆滿崩潰了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 30,
      "start": 58.28,
      "end": 59.72,
      "text": "這種時候真的會讓人",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 31,
      "start": 59.72,
      "end": 60.8,
      "text": "想直接砸螢幕",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 32,
      "start": 60.8,
      "end": 64.12,
      "text": "其實這就是開發界常說的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 33,
      "start": 64.12,
      "end": 66.88,
      "text": "所謂的上下文視窗危機",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 34,
      "start": 66.88,
      "end": 68.96,
      "text": "對 Context Window 危機",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 35,
      "start": 68.96,
      "end": 71.68,
      "text": "沒錯 當歷史資訊量太大",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 36,
      "start": 71.68,
      "end": 73.32,
      "text": "傳統的 AI 系統",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 37,
      "start": 73.32,
      "end": 74.6,
      "text": "為了解決這個問題",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 38,
      "start": 74.6,
      "end": 76.0,
      "text": "通常會在背後",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 39,
      "start": 76.0,
      "end": 77.12,
      "text": "偷偷做一件事",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 40,
      "start": 77.12,
      "end": 79.16,
      "text": "就是把前面的對話",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 41,
      "start": 79.16,
      "end": 80.24,
      "text": "進行摘要",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 42,
      "start": 80.24,
      "end": 82.36,
      "text": "但講到傳統的摘要法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 43,
      "start": 82.36,
      "end": 83.88,
      "text": "那根本就像是",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 44,
      "start": 83.88,
      "end": 86.36,
      "text": "我們清理冰箱的時候",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 45,
      "start": 86.36,
      "end": 87.88,
      "text": "把所有剩菜",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 46,
      "start": 87.88,
      "end": 90.6,
      "text": "隔夜飯全部倒進果汁機裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 47,
      "start": 90.6,
      "end": 91.76,
      "text": "然後打成一鍋",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 48,
      "start": 91.76,
      "end": 94.52,
      "text": "完全看不出原貌的綜合果汁",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 49,
      "start": 94.52,
      "end": 96.04,
      "text": "這個比喻非常精準",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 50,
      "start": 96.04,
      "end": 98.08,
      "text": "體積確實是變小了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 51,
      "start": 98.08,
      "end": 98.92,
      "text": "沒錯 對",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 52,
      "start": 98.92,
      "end": 100.32,
      "text": "可是如果我現在需要",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 53,
      "start": 100.32,
      "end": 101.76,
      "text": "找裡面的一根蔥",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 54,
      "start": 101.76,
      "end": 103.56,
      "text": "抱歉 完全找不到",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 55,
      "start": 103.56,
      "end": 105.44,
      "text": "在程式碼的環境裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 56,
      "start": 105.44,
      "end": 107.0,
      "text": "少掉的那根蔥",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 57,
      "start": 107.0,
      "end": 109.88,
      "text": "可能就是一個至關重要的 API 參數",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 58,
      "start": 109.88,
      "end": 112.76,
      "text": "確實 這會讓整個後續的除錯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 59,
      "start": 112.76,
      "end": 113.44,
      "text": "完全失準",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 60,
      "start": 113.44,
      "end": 116.08,
      "text": "而且比綜合果汁更糟的是",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 61,
      "start": 116.08,
      "end": 118.64,
      "text": "這杯果汁還會讓 AI 產生幻覺",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 62,
      "start": 118.64,
      "end": 120.64,
      "text": "讓它去憑空捏造那些",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 63,
      "start": 120.64,
      "end": 122.32,
      "text": "被摘要吃掉的細節",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 64,
      "start": 122.32,
      "end": 124.44,
      "text": "哇 那真的是越忙越忙",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 65,
      "start": 124.44,
      "end": 126.96,
      "text": "所以我們在本次深入探討中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 66,
      "start": 126.96,
      "end": 130.08,
      "text": "要來解析一個全新的開源專案",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 67,
      "start": 130.08,
      "end": 133.0,
      "text": "這是一個 Cloud Code 的擴充套件",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 68,
      "start": 133.0,
      "end": 134.28,
      "text": "兼 NPM 模組",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 69,
      "start": 134.28,
      "end": 138.28,
      "text": "叫做 Fast-Jev-Compaction",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 70,
      "start": 138.28,
      "end": 140.4,
      "text": "這個套件的策略非常極端",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 71,
      "start": 140.4,
      "end": 142.64,
      "text": "它主打的是逐字保留",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 72,
      "start": 142.64,
      "end": 144.68,
      "text": "以及得分刪除法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 73,
      "start": 144.68,
      "end": 147.08,
      "text": "也就是說 它不打果汁了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 74,
      "start": 147.08,
      "end": 150.0,
      "text": "它是把你確定已經過期的食材",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 75,
      "start": 150.0,
      "end": 151.88,
      "text": "整包連同包裝袋",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 76,
      "start": 151.88,
      "end": 153.4,
      "text": "直接丟進垃圾桶",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 77,
      "start": 153.4,
      "end": 155.64,
      "text": "而留下來的每一顆蘋果",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 78,
      "start": 155.64,
      "end": 157.36,
      "text": "都是百分之百原封不動",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 79,
      "start": 157.36,
      "end": 158.52,
      "text": "非常新鮮的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 80,
      "start": 158.52,
      "end": 160.72,
      "text": "沒錯 這就是它的核心理念",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 81,
      "start": 160.72,
      "end": 162.28,
      "text": "所以今天的任務",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 82,
      "start": 162.28,
      "end": 165.28,
      "text": "我們就是要來拆解這套機制的底層邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 83,
      "start": 165.28,
      "end": 168.36,
      "text": "比如它能省下多少 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 84,
      "start": 168.36,
      "end": 169.56,
      "text": "如果是很短的對話",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 85,
      "start": 169.56,
      "end": 171.12,
      "text": "會不會反而增加成本",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 86,
      "start": 171.12,
      "end": 173.68,
      "text": "還有對我們台灣的中小企業來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 87,
      "start": 173.68,
      "end": 175.96,
      "text": "這到底能不能真正落地",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 88,
      "start": 175.96,
      "end": 178.96,
      "text": "這些實務問題都非常關鍵",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 89,
      "start": 178.96,
      "end": 182.32,
      "text": "那我們先從它的保鮮機制談起好了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 90,
      "start": 182.32,
      "end": 184.28,
      "text": "我注意到來源資料裡提到",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 91,
      "start": 184.28,
      "end": 186.88,
      "text": "它會把每一筆工具呼叫",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 92,
      "start": 186.88,
      "end": 189.72,
      "text": "就是 Tool Use 跟它的結果 Tool Result",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 93,
      "start": 189.72,
      "end": 191.32,
      "text": "成對地綁定在一起",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 94,
      "start": 191.32,
      "end": 194.4,
      "text": "對 這是它運作的最基礎基石",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 95,
      "start": 194.4,
      "end": 196.12,
      "text": "因為在 Cloud Code 這種",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 96,
      "start": 196.12,
      "end": 197.88,
      "text": "會瘋狂呼叫終端機",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 97,
      "start": 197.88,
      "end": 200.04,
      "text": "或者是讀取檔案的環境中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 98,
      "start": 200.04,
      "end": 202.16,
      "text": "工具的操作跟回傳結果",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 99,
      "start": 202.16,
      "end": 203.68,
      "text": "是絕對不能脫鉤的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 100,
      "start": 203.68,
      "end": 206.8,
      "text": "了解 那它怎麼決定誰該留下來",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 101,
      "start": 206.8,
      "end": 208.12,
      "text": "系統有一個叫做",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 102,
      "start": 208.12,
      "end": 210.44,
      "text": "Preserve Recent Messages 的設定",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 103,
      "start": 210.44,
      "end": 211.72,
      "text": "預設值是 6",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 104,
      "start": 211.72,
      "end": 215.24,
      "text": "意思是最新發生的前 6 筆對話訊息",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 105,
      "start": 215.24,
      "end": 217.44,
      "text": "會被加上精選的保護罩",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 106,
      "start": 217.44,
      "end": 218.2,
      "text": "精選",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 107,
      "start": 218.2,
      "end": 220.36,
      "text": "所以這 6 筆是絕對安全的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 108,
      "start": 220.36,
      "end": 221.4,
      "text": "絕對不碰",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 109,
      "start": 221.4,
      "end": 224.16,
      "text": "它保證你當下正在處理的邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 110,
      "start": 224.16,
      "end": 225.28,
      "text": "不會被刪掉",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 111,
      "start": 225.28,
      "end": 226.32,
      "text": "但挑戰來了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 112,
      "start": 226.32,
      "end": 228.48,
      "text": "如果要請 Jev 這個模型",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 113,
      "start": 228.48,
      "end": 229.84,
      "text": "來幫我們評估那些",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 114,
      "start": 229.84,
      "end": 233.32,
      "text": "沒被勾選的舊資料該不該刪",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 115,
      "start": 233.32,
      "end": 235.8,
      "text": "我們得把整個長篇大論的歷史記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 116,
      "start": 235.8,
      "end": 236.84,
      "text": "傳送給它對吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 117,
      "start": 236.84,
      "end": 239.56,
      "text": "沒錯 這就是一個潛在的瓶頸",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 118,
      "start": 239.56,
      "end": 241.4,
      "text": "Jev 本身的上下文上限",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 119,
      "start": 241.4,
      "end": 243.48,
      "text": "是 32K 個 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 120,
      "start": 243.48,
      "end": 246.0,
      "text": "如果在傳送評估的路上就先爆了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 121,
      "start": 246.0,
      "end": 247.48,
      "text": "那這個壓縮工具",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 122,
      "start": 247.48,
      "end": 248.72,
      "text": "不就毫無意義了嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 123,
      "start": 248.72,
      "end": 251.2,
      "text": "所以開發者為了解決這個問題",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 124,
      "start": 251.2,
      "end": 254.36,
      "text": "設定了一個 Max State Tokens 的上限",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 125,
      "start": 254.36,
      "end": 256.12,
      "text": "預設是 25,000",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 126,
      "start": 256.12,
      "end": 258.04,
      "text": "25,000 留了一點緩衝空間",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 127,
      "start": 258.04,
      "end": 261.92,
      "text": "對 而且為了在不拖慢系統速度的前提下",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 128,
      "start": 261.92,
      "end": 263.84,
      "text": "估算這 25,000 個 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 129,
      "start": 263.84,
      "end": 265.88,
      "text": "它放棄了傳統那種",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 130,
      "start": 265.88,
      "end": 268.24,
      "text": "精確但很笨重的分詞器",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 131,
      "start": 268.24,
      "end": 269.6,
      "text": "不用 Tokenizer",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 132,
      "start": 269.6,
      "end": 270.68,
      "text": "那它怎麼算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 133,
      "start": 270.68,
      "end": 273.84,
      "text": "它直接用字元來進行粗略的估算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 134,
      "start": 273.84,
      "end": 275.6,
      "text": "等一下 用字元算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 135,
      "start": 275.6,
      "end": 277.76,
      "text": "這在英文環境或許說得通",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 136,
      "start": 277.76,
      "end": 279.88,
      "text": "大約 6 個英文字母算一個詞",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 137,
      "start": 279.88,
      "end": 281.36,
      "text": "數字算半個 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 138,
      "start": 281.36,
      "end": 282.72,
      "text": "標點符號算一個",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 139,
      "start": 282.72,
      "end": 285.32,
      "text": "這是一種為了效能妥協的做法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 140,
      "start": 285.32,
      "end": 288.2,
      "text": "沒錯 這是一種啟發式演算法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 141,
      "start": 288.2,
      "end": 290.52,
      "text": "可是這在我們台灣的實務應用上",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 142,
      "start": 290.52,
      "end": 292.28,
      "text": "根本是個隱形地雷吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 143,
      "start": 292.28,
      "end": 294.68,
      "text": "你想想看 如果使用者的 Prompt",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 144,
      "start": 294.68,
      "end": 296.88,
      "text": "或者那個巨大的 JSON 報表裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 145,
      "start": 296.88,
      "end": 298.36,
      "text": "塞滿了繁體中文呢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 146,
      "start": 298.36,
      "end": 300.48,
      "text": "哇 這裡真的講到重點了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 147,
      "start": 300.48,
      "end": 302.72,
      "text": "在大多數大型語言模型裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 148,
      "start": 302.72,
      "end": 306.32,
      "text": "一個繁體中文字可能就會消耗 2 到 3 個 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 149,
      "start": 306.32,
      "end": 308.44,
      "text": "如果系統還傻傻地以為",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 150,
      "start": 308.44,
      "end": 310.52,
      "text": "6 個中文字才等於 1 個 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 151,
      "start": 310.52,
      "end": 313.84,
      "text": "這絕對會嚴重低估真實的 Token 數量",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 152,
      "start": 313.84,
      "end": 316.44,
      "text": "這個實務觀察真的非常敏銳",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 153,
      "start": 316.44,
      "end": 319.4,
      "text": "這個開源專案目前的設計思維",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 154,
      "start": 319.4,
      "end": 321.96,
      "text": "確實帶有強烈的英語系",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 155,
      "start": 321.96,
      "end": 323.6,
      "text": "跟程式碼本位色彩",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 156,
      "start": 323.6,
      "end": 325.88,
      "text": "對 最後送給 Jev 的時候",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 157,
      "start": 325.88,
      "end": 329.04,
      "text": "肯定會直接撞破 32K 的上限",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 158,
      "start": 329.04,
      "end": 330.44,
      "text": "導致 API 報錯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 159,
      "start": 330.44,
      "end": 334.08,
      "text": "這也是為什麼它把安全水位設在 25,000",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 160,
      "start": 334.08,
      "end": 336.4,
      "text": "留了足足 7K 的緩衝",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 161,
      "start": 336.4,
      "end": 340.28,
      "text": "但對於大量處理中文文本的團隊來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 162,
      "start": 340.28,
      "end": 342.12,
      "text": "技術主管在導入時",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 163,
      "start": 342.12,
      "end": 344.92,
      "text": "絕對需要注意這個資源估算的比例",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 164,
      "start": 344.92,
      "end": 347.0,
      "text": "了解 要特別小心",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 165,
      "start": 347.0,
      "end": 349.32,
      "text": "不過撇除中文字元的問題",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 166,
      "start": 349.32,
      "end": 353.36,
      "text": "當它發現資源數真的超過了 25,000 的限制",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 167,
      "start": 353.36,
      "end": 355.44,
      "text": "我看到資料說它的處理手法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 168,
      "start": 355.44,
      "end": 357.08,
      "text": "叫做多階段處理",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 169,
      "start": 357.08,
      "end": 358.76,
      "text": "對 Stage Based Fitting",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 170,
      "start": 358.76,
      "end": 360.6,
      "text": "它的做法相當精妙",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 171,
      "start": 360.6,
      "end": 361.96,
      "text": "讓我推演一下",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 172,
      "start": 361.96,
      "end": 364.88,
      "text": "假設我有一個 5000 行的系統日誌",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 173,
      "start": 364.88,
      "end": 367.24,
      "text": "它總不可能直接放棄壓縮吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 174,
      "start": 367.24,
      "end": 370.24,
      "text": "它一定是從那些最肥大的參數開刀",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 175,
      "start": 370.24,
      "end": 371.2,
      "text": "完全正確",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 176,
      "start": 371.2,
      "end": 374.32,
      "text": "第一階段 它會把所有沒被勾選的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 177,
      "start": 374.32,
      "end": 375.84,
      "text": "舊工具輸入參數",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 178,
      "start": 375.84,
      "end": 379.2,
      "text": "硬生生壓縮到 1000 個字元",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 179,
      "start": 379.2,
      "end": 381.08,
      "text": "所以它把中間挖空了嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 180,
      "start": 381.08,
      "end": 383.44,
      "text": "沒錯 它只保留開頭跟結尾",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 181,
      "start": 383.44,
      "end": 386.12,
      "text": "把中間龐大的資料直接捨棄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 182,
      "start": 386.12,
      "end": 389.84,
      "text": "所以它保留了工具曾經被執行過的形狀",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 183,
      "start": 389.84,
      "end": 391.0,
      "text": "但捨棄了內容",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 184,
      "start": 391.0,
      "end": 393.16,
      "text": "那如果挖空到 1000 字元",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 185,
      "start": 393.16,
      "end": 395.4,
      "text": "算一算還是超過 25,000 呢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 186,
      "start": 395.4,
      "end": 396.92,
      "text": "那它就會變得更殘酷一點",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 187,
      "start": 396.92,
      "end": 398.32,
      "text": "進入第二階段",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 188,
      "start": 398.32,
      "end": 400.28,
      "text": "把限制縮減到 200 個字元",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 189,
      "start": 400.28,
      "end": 402.76,
      "text": "200 字元真的很少了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 190,
      "start": 402.76,
      "end": 405.56,
      "text": "如果再不行 就砍到極限的 60 個字",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 191,
      "start": 405.56,
      "end": 408.16,
      "text": "到最後如果還是塞不進去",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 192,
      "start": 408.16,
      "end": 410.16,
      "text": "那些很久以前的舊訊息",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 193,
      "start": 410.16,
      "end": 413.08,
      "text": "會被徹底折疊成一句簡單的短語",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 194,
      "start": 413.08,
      "end": 414.76,
      "text": "像是一句註解那樣嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 195,
      "start": 414.76,
      "end": 417.16,
      "text": "對 例如省略 N 個字元",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 196,
      "start": 417.16,
      "end": 419.48,
      "text": "就這樣一步一步削肉剔骨",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 197,
      "start": 419.48,
      "end": 421.44,
      "text": "直到整包資料的估算值",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 198,
      "start": 421.44,
      "end": 423.96,
      "text": "能安全塞進 25,000 的限制裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 199,
      "start": 423.96,
      "end": 426.4,
      "text": "再送給 Jev 去做最後的決策",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 200,
      "start": 426.4,
      "end": 430.2,
      "text": "哇 這種在極限狀態下的多階段處理邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 201,
      "start": 430.2,
      "end": 431.64,
      "text": "對我們工程師來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 202,
      "start": 431.64,
      "end": 433.84,
      "text": "真的是一個很棒的價值提升",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 203,
      "start": 433.84,
      "end": 434.4,
      "text": "怎麼說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 204,
      "start": 434.4,
      "end": 436.2,
      "text": "就是在系統設計時",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 205,
      "start": 436.2,
      "end": 438.72,
      "text": "為了追求極致的效能跟穩定",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 206,
      "start": 438.72,
      "end": 441.08,
      "text": "其實你不一定需要追求百分之百",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 207,
      "start": 441.08,
      "end": 442.32,
      "text": "精確的 Token 計算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 208,
      "start": 442.32,
      "end": 444.28,
      "text": "用簡單的資源估算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 209,
      "start": 444.28,
      "end": 446.12,
      "text": "搭配多層次的安全防線",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 210,
      "start": 446.12,
      "end": 448.12,
      "text": "實務上不僅運作更快",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 211,
      "start": 448.12,
      "end": 449.56,
      "text": "容錯率也更高",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 212,
      "start": 449.56,
      "end": 451.4,
      "text": "工程思維的精髓",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 213,
      "start": 451.4,
      "end": 454.08,
      "text": "就是用最小的算力成本",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 214,
      "start": 454.08,
      "end": 456.52,
      "text": "換取最大的系統穩定度",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 215,
      "start": 456.52,
      "end": 457.92,
      "text": "但講到成本",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 216,
      "start": 457.92,
      "end": 461.08,
      "text": "這就衍生出另一個很現實的問題了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 217,
      "start": 461.08,
      "end": 461.84,
      "text": "什麼問題",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 218,
      "start": 461.84,
      "end": 465.36,
      "text": "如果今天我這個除錯任務其實很簡單",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 219,
      "start": 465.36,
      "end": 468.24,
      "text": "我只跟 AI 來回對話了三四次",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 220,
      "start": 468.24,
      "end": 470.0,
      "text": "上下文根本還很空",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 221,
      "start": 470.0,
      "end": 472.64,
      "text": "為了清理那一點點的歷史記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 222,
      "start": 472.64,
      "end": 474.96,
      "text": "我還要特地把資料打包",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 223,
      "start": 474.96,
      "end": 478.76,
      "text": "傳送一個 API 請求給 Jev 去做評分",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 224,
      "start": 478.76,
      "end": 481.52,
      "text": "這反而多花了一筆 API 費用",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 225,
      "start": 481.52,
      "end": 482.92,
      "text": "甚至增加了網路延遲對吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 226,
      "start": 482.92,
      "end": 485.08,
      "text": "沒錯 這樣感覺很不划算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 227,
      "start": 485.08,
      "end": 487.0,
      "text": "其實這個外掛並沒有那麼死板",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 228,
      "start": 487.0,
      "end": 488.24,
      "text": "在系統內部",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 229,
      "start": 488.24,
      "end": 491.04,
      "text": "它設定了一個參數叫做 Reduction Ratio",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 230,
      "start": 491.04,
      "end": 492.76,
      "text": "也就是壓縮比例",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 231,
      "start": 492.76,
      "end": 494.88,
      "text": "哦 所以它會先算帳",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 232,
      "start": 494.88,
      "end": 497.32,
      "text": "對 當 Jev 評估完畢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 233,
      "start": 497.32,
      "end": 498.92,
      "text": "準備動刀刪除之前",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 234,
      "start": 498.92,
      "end": 500.6,
      "text": "系統會先預估一下",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 235,
      "start": 500.6,
      "end": 504.36,
      "text": "如果預計能砍掉的內容比例小於 0.25",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 236,
      "start": 504.36,
      "end": 508.92,
      "text": "也就是說 Jev 認為能刪掉的廢話不到四分之一",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 237,
      "start": 508.92,
      "end": 510.24,
      "text": "系統就會判斷說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 238,
      "start": 510.24,
      "end": 512.04,
      "text": "這套壓縮根本不划算",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 239,
      "start": 512.04,
      "end": 512.8,
      "text": "馬上停損",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 240,
      "start": 512.8,
      "end": 513.56,
      "text": "就是這樣",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 241,
      "start": 513.56,
      "end": 516.32,
      "text": "它會直接退回原本的完整對話",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 242,
      "start": 516.32,
      "end": 518.44,
      "text": "或者 Fallback 回去使用",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 243,
      "start": 518.44,
      "end": 520.6,
      "text": "Cloud Code 內建的裁減機制",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 244,
      "start": 520.6,
      "end": 523.12,
      "text": "它不會為了展現自己會壓縮",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 245,
      "start": 523.12,
      "end": 525.44,
      "text": "而硬去執行無效的操作",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 246,
      "start": 525.44,
      "end": 528.24,
      "text": "懂得及時停損是很聰明的設計",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 247,
      "start": 528.24,
      "end": 530.52,
      "text": "但如果我們把目光放遠一點",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 248,
      "start": 530.52,
      "end": 533.24,
      "text": "考慮到企業長期的技術選型",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 249,
      "start": 533.24,
      "end": 536.44,
      "text": "我們最怕的其實是被單一廠商綁架",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 250,
      "start": 536.44,
      "end": 537.56,
      "text": "Vendor Lock-in",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 251,
      "start": 537.56,
      "end": 540.92,
      "text": "這確實是企業導入新技術時最大的顧慮",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 252,
      "start": 540.92,
      "end": 544.4,
      "text": "對啊 今天這個套件是為 Jev 模型設計的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 253,
      "start": 544.4,
      "end": 547.72,
      "text": "如果我不想把資料打給 TypeSafe 的 API",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 254,
      "start": 547.72,
      "end": 550.2,
      "text": "或者我們公司已經買了大量的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 255,
      "start": 550.2,
      "end": 552.2,
      "text": "OpenAI 或 Anthropic 的額度",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 256,
      "start": 552.2,
      "end": 554.32,
      "text": "這套機制還有用武之地嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 257,
      "start": 554.32,
      "end": 555.92,
      "text": "來源文件雖然沒有明說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 258,
      "start": 555.92,
      "end": 558.16,
      "text": "它原生內建了所有主流模型",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 259,
      "start": 558.16,
      "end": 561.24,
      "text": "但它刻意留下了一道非常寬廣的後門",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 260,
      "start": 561.24,
      "end": 563.56,
      "text": "開發者可以自行實作一個",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 261,
      "start": 563.56,
      "end": 565.52,
      "text": "名為 Jev Asker 的介面",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 262,
      "start": 565.52,
      "end": 566.8,
      "text": "Jev Asker",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 263,
      "start": 566.8,
      "end": 569.76,
      "text": "意思是只要我符合這個介面的標準",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 264,
      "start": 569.76,
      "end": 571.76,
      "text": "我背後要接誰都可以",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 265,
      "start": 571.76,
      "end": 574.92,
      "text": "沒錯 只要你能寫出一個 Ask 的方法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 266,
      "start": 574.92,
      "end": 577.68,
      "text": "你就可以自行撰寫底層的傳輸邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 267,
      "start": 577.68,
      "end": 580.96,
      "text": "而且這個專案是作為 NPM 模組發布的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 268,
      "start": 580.96,
      "end": 582.92,
      "text": "所以它可以直接裝在專案裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 269,
      "start": 582.92,
      "end": 585.48,
      "text": "對 它還大方地匯出了像是",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 270,
      "start": 585.48,
      "end": 586.84,
      "text": "Compact Messages",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 271,
      "start": 586.84,
      "end": 589.72,
      "text": "Collect Tool Calls 這些核心函式",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 272,
      "start": 589.72,
      "end": 591.48,
      "text": "這些就像是樂高積木一樣",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 273,
      "start": 591.48,
      "end": 593.4,
      "text": "這對於技術主管來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 274,
      "start": 593.4,
      "end": 595.0,
      "text": "真的是一盒定心丸",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 275,
      "start": 595.0,
      "end": 598.64,
      "text": "這種模組化暴露出核心介面的設計",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 276,
      "start": 598.64,
      "end": 602.88,
      "text": "意味著我們甚至可以把這套刪除法的演算法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 277,
      "start": 602.88,
      "end": 607.4,
      "text": "抽離出來 改寫整合到公司內部的私有 AI 系統中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 278,
      "start": 607.4,
      "end": 610.2,
      "text": "這樣技術綁架的風險就趨近於零了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 279,
      "start": 610.2,
      "end": 611.76,
      "text": "既然機制這麼彈性",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 280,
      "start": 611.76,
      "end": 614.2,
      "text": "那我們就得來檢驗它的心臟了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 281,
      "start": 614.2,
      "end": 617.8,
      "text": "它到底是怎麼給出那個所謂的刪除得分的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 282,
      "start": 617.8,
      "end": 619.48,
      "text": "它的評分機制是這樣",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 283,
      "start": 619.48,
      "end": 623.24,
      "text": "Jev 會針對每一個沒被勾選的工具呼叫",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 284,
      "start": 623.24,
      "end": 625.64,
      "text": "問兩個非常刁鑽的問題",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 285,
      "start": 625.64,
      "end": 626.84,
      "text": "哪兩個問題",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 286,
      "start": 626.84,
      "end": 630.6,
      "text": "第一 這個呼叫的記錄本身該留下來嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 287,
      "start": 630.6,
      "end": 632.16,
      "text": "知道它曾經被執行過",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 288,
      "start": 632.16,
      "end": 634.28,
      "text": "對接下來的任務還重要嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 289,
      "start": 634.28,
      "end": 636.8,
      "text": "嗯 這是評估動作本身",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 290,
      "start": 636.8,
      "end": 637.84,
      "text": "那第二個呢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 291,
      "start": 637.84,
      "end": 641.88,
      "text": "第二 這個執行的結果該原封不動保留嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 292,
      "start": 641.88,
      "end": 643.48,
      "text": "還是其實可以刪掉",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 293,
      "start": 643.48,
      "end": 646.72,
      "text": "大不了讓 AI 發現缺資料時重新跑一次",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 294,
      "start": 646.72,
      "end": 650.72,
      "text": "哦 所以它把動作跟結果分開來評估",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 295,
      "start": 650.72,
      "end": 652.56,
      "text": "那幾個分數是多少",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 296,
      "start": 652.56,
      "end": 656.36,
      "text": "系統依賴一個預設為 0.5 的 keep threshold",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 297,
      "start": 656.36,
      "end": 657.88,
      "text": "也就是保留門檻",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 298,
      "start": 657.88,
      "end": 659.68,
      "text": "大於 0.5 就保留嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 299,
      "start": 659.68,
      "end": 663.8,
      "text": "對 如果 Jev 給出保留結果的機率大於 0.5",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 300,
      "start": 663.8,
      "end": 665.88,
      "text": "那就整組完好無缺地留下",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 301,
      "start": 665.88,
      "end": 668.96,
      "text": "那如果結果不重要 但動作很重要呢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 302,
      "start": 668.96,
      "end": 670.8,
      "text": "如果保留結果的機率不高",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 303,
      "start": 670.8,
      "end": 673.56,
      "text": "但保留動作記錄的機率大於 0.5",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 304,
      "start": 673.56,
      "end": 675.56,
      "text": "它就會把那份龐大的結果",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 305,
      "start": 675.56,
      "end": 677.24,
      "text": "截斷到前 300 個字元",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 306,
      "start": 677.24,
      "end": 678.84,
      "text": "並加上一行註解",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 307,
      "start": 678.84,
      "end": 681.04,
      "text": "告訴 AI 這裡曾經發生過什麼",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 308,
      "start": 681.04,
      "end": 684.56,
      "text": "了解 那如果兩個機率都低於 0.5 呢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 309,
      "start": 684.56,
      "end": 686.52,
      "text": "那就是整組直接超度",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 310,
      "start": 686.52,
      "end": 687.52,
      "text": "完全刪除",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 311,
      "start": 687.52,
      "end": 690.28,
      "text": "超度 這形容很貼切",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 312,
      "start": 690.28,
      "end": 692.52,
      "text": "邏輯聽起來很縝密啦",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 313,
      "start": 692.52,
      "end": 695.6,
      "text": "但我們都知道 機率不代表絕對",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 314,
      "start": 695.6,
      "end": 698.6,
      "text": "萬一 Jev 今天就是判斷失誤",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 315,
      "start": 698.6,
      "end": 701.28,
      "text": "把一個超級關鍵的記錄給刪了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 316,
      "start": 701.28,
      "end": 703.44,
      "text": "導致模型徹底忘記了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 317,
      "start": 703.44,
      "end": 704.24,
      "text": "剛剛讀過的檔名",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 318,
      "start": 704.24,
      "end": 706.16,
      "text": "這時候補救機制是什麼",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 319,
      "start": 706.16,
      "end": 708.92,
      "text": "開發者在畫面上其實不會瞎子摸象",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 320,
      "start": 708.92,
      "end": 710.84,
      "text": "你會看到一個 Toast 提示",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 321,
      "start": 710.84,
      "end": 713.4,
      "text": "明確告訴你保留了幾筆訊息",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 322,
      "start": 713.4,
      "end": 716.16,
      "text": "但如果真的誤刪了關鍵資訊怎麼辦",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 323,
      "start": 716.16,
      "end": 718.92,
      "text": "文件也坦承這項技術有它的局限",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 324,
      "start": 718.92,
      "end": 720.44,
      "text": "如果真的刪錯了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 325,
      "start": 720.44,
      "end": 722.4,
      "text": "其實補救方式非常直覺",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 326,
      "start": 722.4,
      "end": 724.96,
      "text": "因為你是在具有代理能力的環境裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 327,
      "start": 724.96,
      "end": 727.76,
      "text": "AI 如果發現自己缺少某個參數",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 328,
      "start": 727.76,
      "end": 730.0,
      "text": "它可以隨時再次執行該工具",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 329,
      "start": 730.0,
      "end": 732.64,
      "text": "大不了就是讓 AI 再花個幾秒鐘",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 330,
      "start": 732.64,
      "end": 734.32,
      "text": "重新讀一次檔案",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 331,
      "start": 734.32,
      "end": 735.96,
      "text": "這成本還算可以接受",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 332,
      "start": 735.96,
      "end": 740.44,
      "text": "除此之外 為了確保系統不會因為 API 連線失敗",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 333,
      "start": 740.44,
      "end": 741.32,
      "text": "而整組崩潰",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 334,
      "start": 741.32,
      "end": 743.48,
      "text": "作者在寫單元測試的時候",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 335,
      "start": 743.48,
      "end": 746.08,
      "text": "特別實作了一個不聯網的 Fake Jev",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 336,
      "start": 746.08,
      "end": 748.12,
      "text": "不聯網的假 Jev",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 337,
      "start": 748.12,
      "end": 749.8,
      "text": "這有什麼好處",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 338,
      "start": 749.8,
      "end": 751.84,
      "text": "這確保了在真實情境中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 339,
      "start": 751.84,
      "end": 754.44,
      "text": "萬一 Jev 回傳了破損的 JSON",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 340,
      "start": 754.44,
      "end": 756.32,
      "text": "或是網路直接斷線",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 341,
      "start": 756.32,
      "end": 760.16,
      "text": "系統能百分之百順暢地執行優雅降級",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 342,
      "start": 760.16,
      "end": 761.64,
      "text": "優雅降級",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 343,
      "start": 761.64,
      "end": 763.48,
      "text": "也就是無縫切換回",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 344,
      "start": 763.48,
      "end": 765.84,
      "text": "Cloud Code 原本內建的裁減機制對吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 345,
      "start": 765.84,
      "end": 766.8,
      "text": "完全正確",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 346,
      "start": 766.8,
      "end": 769.32,
      "text": "有降級機制確實讓人安心",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 347,
      "start": 769.32,
      "end": 771.92,
      "text": "但說到聯網打 API",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 348,
      "start": 771.92,
      "end": 775.44,
      "text": "我們就必須面對企業導入時最大的心魔了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 349,
      "start": 775.44,
      "end": 777.04,
      "text": "那就是資安",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 350,
      "start": 777.04,
      "end": 779.4,
      "text": "沒錯 這真的是重中之重",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 351,
      "start": 779.4,
      "end": 782.2,
      "text": "任何會把資料往外送的外掛",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 352,
      "start": 782.2,
      "end": 784.92,
      "text": "在公司內部都會面臨嚴格的審查",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 353,
      "start": 784.92,
      "end": 788.68,
      "text": "對 這部分資料裡有提到什麼防護機制嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 354,
      "start": 788.68,
      "end": 790.08,
      "text": "這是今天最核心",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 355,
      "start": 790.08,
      "end": 792.36,
      "text": "最需要劃重點的資安警告",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 356,
      "start": 792.36,
      "end": 796.32,
      "text": "這個套件在運作時 你需要填寫 API Key",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 357,
      "start": 796.32,
      "end": 799.32,
      "text": "而且它會將你那份完整的對話記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 358,
      "start": 799.32,
      "end": 801.6,
      "text": "包含所有的工具輸入參數",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 359,
      "start": 801.6,
      "end": 804.68,
      "text": "毫無保留地傳送到 TypeSafe 的伺服器",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 360,
      "start": 804.68,
      "end": 806.52,
      "text": "等一下 毫無保留",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 361,
      "start": 806.52,
      "end": 811.84,
      "text": "也就是說 如果我的程式碼裡夾帶了 AWS 的機密金鑰",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 362,
      "start": 811.84,
      "end": 815.44,
      "text": "或者我們公司核心產品還沒公開的商業邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 363,
      "start": 815.44,
      "end": 818.0,
      "text": "這些都會變成純文字",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 364,
      "start": 818.0,
      "end": 820.12,
      "text": "直接送到別人的伺服器上",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 365,
      "start": 820.12,
      "end": 820.92,
      "text": "毫不設防",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 366,
      "start": 820.92,
      "end": 821.72,
      "text": "完全會",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 367,
      "start": 821.72,
      "end": 823.96,
      "text": "來源文件完全沒有提到",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 368,
      "start": 823.96,
      "end": 827.44,
      "text": "任何內建的自動過濾或清理敏感資訊的機制",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 369,
      "start": 827.44,
      "end": 829.2,
      "text": "哇 這太危險了吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 370,
      "start": 829.2,
      "end": 832.28,
      "text": "作者反而在 README 裡非常用力地警告大家",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 371,
      "start": 832.28,
      "end": 835.08,
      "text": "絕對不要把金鑰提交到原始碼中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 372,
      "start": 835.08,
      "end": 836.4,
      "text": "這等於是在暗示",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 373,
      "start": 836.4,
      "end": 840.24,
      "text": "資料的對外傳輸是完全透明且具有風險的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 374,
      "start": 840.24,
      "end": 842.56,
      "text": "這件事對台灣的中小企業",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 375,
      "start": 842.56,
      "end": 845.4,
      "text": "資安公司或是企業內部團隊來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 376,
      "start": 845.4,
      "end": 846.32,
      "text": "太關鍵了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 377,
      "start": 846.32,
      "end": 847.12,
      "text": "非常關鍵",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 378,
      "start": 847.12,
      "end": 850.32,
      "text": "我們常常看到工程師為了解決眼前的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 379,
      "start": 850.32,
      "end": 851.8,
      "text": "Context 爆滿痛點",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 380,
      "start": 851.8,
      "end": 854.4,
      "text": "上網隨手就裝了一個開源工具",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 381,
      "start": 854.4,
      "end": 856.24,
      "text": "這裡的實務提醒是",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 382,
      "start": 856.24,
      "end": 859.24,
      "text": "如果你的專案牽涉到任何商業機密",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 383,
      "start": 859.24,
      "end": 863.24,
      "text": "絕對不能在沒有自建防線的情況下直接套用",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 384,
      "start": 863.24,
      "end": 865.64,
      "text": "沒錯 這也呼應了前面提到的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 385,
      "start": 865.64,
      "end": 866.76,
      "text": "Jev Asker 介面",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 386,
      "start": 866.76,
      "end": 868.96,
      "text": "如果企業真的要導入",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 387,
      "start": 868.96,
      "end": 871.56,
      "text": "技術團隊必須自己寫一個中介層",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 388,
      "start": 871.56,
      "end": 874.24,
      "text": "在把資料送出去給 Jev 評分之前",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 389,
      "start": 874.24,
      "end": 877.04,
      "text": "先在本地端把敏感資訊過濾掉",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 390,
      "start": 877.04,
      "end": 879.48,
      "text": "企業的底線是不能妥協的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 391,
      "start": 879.48,
      "end": 881.72,
      "text": "但其實即使資安這關過了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 392,
      "start": 881.72,
      "end": 884.32,
      "text": "技術團隊還要面對另一個深淵",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 393,
      "start": 884.32,
      "end": 886.48,
      "text": "那就是部署的摩擦力",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 394,
      "start": 886.48,
      "end": 887.92,
      "text": "部署的坑真的很多",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 395,
      "start": 887.92,
      "end": 891.12,
      "text": "技術再好 如果無法順暢地部署到",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 396,
      "start": 891.12,
      "end": 892.88,
      "text": "每一位工程師的電腦上",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 397,
      "start": 892.88,
      "end": 895.88,
      "text": "或者沒辦法放進 CI/CD 的流程裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 398,
      "start": 895.88,
      "end": 896.88,
      "text": "那也是白搭",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 399,
      "start": 896.88,
      "end": 899.04,
      "text": "我看到文件特別提到",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 400,
      "start": 899.04,
      "end": 902.4,
      "text": "這個機制依賴 Cloud Code 的 Function Hooks 功能",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 401,
      "start": 902.4,
      "end": 903.84,
      "text": "對 麻煩就在於",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 402,
      "start": 903.84,
      "end": 906.28,
      "text": "這個功能目前還處於早期測試階段",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 403,
      "start": 906.28,
      "end": 908.08,
      "text": "所以它不是 NPM 安裝完",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 404,
      "start": 908.08,
      "end": 909.92,
      "text": "就能無腦啟動的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 405,
      "start": 909.92,
      "end": 911.24,
      "text": "遠比那複雜",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 406,
      "start": 911.24,
      "end": 912.56,
      "text": "你必須在環境變數",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 407,
      "start": 912.56,
      "end": 914.52,
      "text": "或者是本機的設定檔裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 408,
      "start": 914.52,
      "end": 917.8,
      "text": "強制宣告一個全域變數來開啟這個功能",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 409,
      "start": 917.8,
      "end": 920.24,
      "text": "哦 要手動去開 Feature Flag",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 410,
      "start": 920.24,
      "end": 922.76,
      "text": "對 這代表團隊裡的每一個使用環境",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 411,
      "start": 922.76,
      "end": 924.96,
      "text": "包括每位新進員工的筆電",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 412,
      "start": 924.96,
      "end": 927.2,
      "text": "或是雲端的 CI/CD 伺服器",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 413,
      "start": 927.2,
      "end": 930.24,
      "text": "都必須先經歷這個手動開啟的步驟",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 414,
      "start": 930.24,
      "end": 931.84,
      "text": "否則外掛根本不會動",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 415,
      "start": 931.84,
      "end": 934.4,
      "text": "哇 這對 DevOps 團隊來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 416,
      "start": 934.4,
      "end": 935.72,
      "text": "絕對是個大坑啊",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 417,
      "start": 935.72,
      "end": 937.6,
      "text": "推廣新工具時",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 418,
      "start": 937.6,
      "end": 939.84,
      "text": "只要多一個手動設定步驟",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 419,
      "start": 939.84,
      "end": 941.48,
      "text": "採用率就會掉一半",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 420,
      "start": 941.48,
      "end": 943.52,
      "text": "確實會增加初期的推廣成本",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 421,
      "start": 943.52,
      "end": 945.96,
      "text": "不過談到推廣跟說服",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 422,
      "start": 945.96,
      "end": 949.36,
      "text": "我注意到作者做了一件讓我非常驚艷的事情",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 423,
      "start": 949.36,
      "end": 953.6,
      "text": "他為了展示這套抽象的得分刪除法技術",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 424,
      "start": 953.6,
      "end": 957.36,
      "text": "特地寫了一個 macOS 原生的 Swift UI App",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 425,
      "start": 957.36,
      "end": 959.6,
      "text": "只為了錄製一段展示影片",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 426,
      "start": 959.6,
      "end": 961.84,
      "text": "這在開源推廣上真的非常聰明",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 427,
      "start": 961.84,
      "end": 963.76,
      "text": "對啊 為什麼他不直接錄個",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 428,
      "start": 963.76,
      "end": 965.68,
      "text": "無聊的終端機畫面就好",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 429,
      "start": 965.68,
      "end": 967.2,
      "text": "還要特地寫個 App",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 430,
      "start": 967.2,
      "end": 968.84,
      "text": "這個 App 其實從頭到尾",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 431,
      "start": 968.84,
      "end": 970.44,
      "text": "都沒有呼叫任何真實的 API",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 432,
      "start": 970.44,
      "end": 972.4,
      "text": "它裡面顯示的對話跟決策",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 433,
      "start": 972.4,
      "end": 974.6,
      "text": "全都是用腳本預先寫實的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 434,
      "start": 974.6,
      "end": 977.36,
      "text": "它純粹就是為了視覺化演出而生的",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 435,
      "start": 977.36,
      "end": 978.64,
      "text": "視覺化演出",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 436,
      "start": 978.64,
      "end": 980.64,
      "text": "它具體演出的是什麼效果",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 437,
      "start": 980.64,
      "end": 982.36,
      "text": "當你在畫面上看到一長串",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 438,
      "start": 982.36,
      "end": 983.56,
      "text": "密密麻麻的歷史記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 439,
      "start": 983.56,
      "end": 986.88,
      "text": "系統判定哪些舊的呼叫是不需要的廢話時",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 440,
      "start": 986.88,
      "end": 989.64,
      "text": "那些文字會直接在畫面上變成紅色",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 441,
      "start": 989.64,
      "end": 991.8,
      "text": "然後動態地折疊消失",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 442,
      "start": 991.8,
      "end": 994.4,
      "text": "哇 變成紅色然後消失",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 443,
      "start": 994.4,
      "end": 996.76,
      "text": "這種視覺衝擊力太強了吧",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 444,
      "start": 996.76,
      "end": 999.6,
      "text": "對一個沒時間看長篇技術文件的技術主管",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 445,
      "start": 999.6,
      "end": 1000.96,
      "text": "或非技術老闆來說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 446,
      "start": 1000.96,
      "end": 1002.6,
      "text": "這幾秒鐘的動態裁剪",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 447,
      "start": 1002.6,
      "end": 1005.68,
      "text": "能讓他們瞬間看懂這個技術的核心價值",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 448,
      "start": 1005.68,
      "end": 1008.4,
      "text": "這裡有一個超棒的實務應用價值",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 449,
      "start": 1008.4,
      "end": 1010.36,
      "text": "如果我們是工程師",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 450,
      "start": 1010.36,
      "end": 1012.04,
      "text": "準備向老闆提案導入",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 451,
      "start": 1012.04,
      "end": 1015.28,
      "text": "這種可以幫公司省 API 費用的新架構",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 452,
      "start": 1015.28,
      "end": 1016.68,
      "text": "嗯 你要怎麼說服他",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 453,
      "start": 1016.68,
      "end": 1019.36,
      "text": "與其貼出一堆冷冰冰的 Lockdown",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 454,
      "start": 1019.36,
      "end": 1021.2,
      "text": "或是 Token 節省數據",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 455,
      "start": 1021.2,
      "end": 1025.4,
      "text": "不如學學這種視覺化展示核心邏輯的手法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 456,
      "start": 1025.4,
      "end": 1028.44,
      "text": "老闆一看紅字消失 馬上就知道",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 457,
      "start": 1028.44,
      "end": 1029.92,
      "text": "哦 垃圾被清掉了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 458,
      "start": 1029.92,
      "end": 1031.56,
      "text": "有用的東西還在",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 459,
      "start": 1031.56,
      "end": 1033.0,
      "text": "而且我們省錢了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 460,
      "start": 1033.0,
      "end": 1035.8,
      "text": "沒錯 能把深奧的底層邏輯",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 461,
      "start": 1035.8,
      "end": 1037.6,
      "text": "轉化為直覺的視覺",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 462,
      "start": 1037.6,
      "end": 1040.72,
      "text": "有時候比寫出這段程式碼還要困難",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 463,
      "start": 1040.72,
      "end": 1043.56,
      "text": "這絕對是提升競爭力的好方法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 464,
      "start": 1043.56,
      "end": 1048.64,
      "text": "聊到這裡我們最後來宏觀地檢視一下產業趨勢",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 465,
      "start": 1048.64,
      "end": 1050.08,
      "text": "面對上下文爆滿",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 466,
      "start": 1050.08,
      "end": 1052.12,
      "text": "目前業界有遮蔽法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 467,
      "start": 1052.12,
      "end": 1055.4,
      "text": "有直接砍掉舊對話的滑動視窗",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 468,
      "start": 1055.4,
      "end": 1057.32,
      "text": "還有傳統的摘要法",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 469,
      "start": 1057.32,
      "end": 1060.2,
      "text": "GMV 帶來的這種得分刪除",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 470,
      "start": 1060.2,
      "end": 1062.16,
      "text": "未來真的會成為主流嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 471,
      "start": 1062.16,
      "end": 1064.76,
      "text": "它還有什麼無法跨越的曲線",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 472,
      "start": 1064.76,
      "end": 1067.04,
      "text": "滑動視窗雖然簡單粗暴",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 473,
      "start": 1067.04,
      "end": 1070.2,
      "text": "但大家都意識到它會無可避免地",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 474,
      "start": 1070.2,
      "end": 1072.88,
      "text": "遺失早期設定的系統約束條件",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 475,
      "start": 1072.88,
      "end": 1076.76,
      "text": "GMV 確實在精確度上開創了一個新流派",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 476,
      "start": 1076.76,
      "end": 1080.24,
      "text": "但它目前有一個非常硬傷的缺陷",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 477,
      "start": 1080.24,
      "end": 1081.4,
      "text": "什麼缺陷",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 478,
      "start": 1081.4,
      "end": 1084.96,
      "text": "在最終輸出實際保留下來的歷史記錄裡",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 479,
      "start": 1084.96,
      "end": 1086.44,
      "text": "純文字訊息",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 480,
      "start": 1086.44,
      "end": 1088.64,
      "text": "也就是人類跟 AI 講的話",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 481,
      "start": 1088.64,
      "end": 1090.8,
      "text": "永遠不會被移除或縮減",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 482,
      "start": 1090.8,
      "end": 1094.16,
      "text": "等等 也就是說如果使用者自己打字",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 483,
      "start": 1094.16,
      "end": 1096.0,
      "text": "貼了幾萬字的會議記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 484,
      "start": 1096.0,
      "end": 1098.12,
      "text": "甚至是一堆無意義的廢話",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 485,
      "start": 1098.12,
      "end": 1101.16,
      "text": "這個外掛其實拿它一點辦法都沒有",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 486,
      "start": 1101.16,
      "end": 1102.12,
      "text": "一點辦法都沒有",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 487,
      "start": 1102.12,
      "end": 1106.52,
      "text": "純文字只會在傳給 GMV 評估的那個狀態中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 488,
      "start": 1106.52,
      "end": 1107.12,
      "text": "被縮減",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 489,
      "start": 1107.12,
      "end": 1110.24,
      "text": "但最終真實保留在上下文裡的記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 490,
      "start": 1110.24,
      "end": 1113.72,
      "text": "人類打的純文字會被百分之百完整保留",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 491,
      "start": 1113.72,
      "end": 1116.68,
      "text": "所以它只管工具呼叫的記錄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 492,
      "start": 1116.68,
      "end": 1119.44,
      "text": "對 GMV 的權限僅限於決定",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 493,
      "start": 1119.44,
      "end": 1121.24,
      "text": "要不要刪除工具呼叫",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 494,
      "start": 1121.24,
      "end": 1122.48,
      "text": "跟工具回傳結果",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 495,
      "start": 1122.48,
      "end": 1124.4,
      "text": "這個誤區非常重要",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 496,
      "start": 1124.4,
      "end": 1127.28,
      "text": "這意味著企業在評估導入時",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 497,
      "start": 1127.28,
      "end": 1129.28,
      "text": "絕對不能抱持著說",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 498,
      "start": 1129.28,
      "end": 1132.44,
      "text": "哦 我裝了這個就能無腦壓縮所有人類對話",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 499,
      "start": 1132.44,
      "end": 1133.96,
      "text": "這是一個錯誤期待",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 500,
      "start": 1133.96,
      "end": 1136.72,
      "text": "沒錯 它是一把極端特化的手術刀",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 501,
      "start": 1136.72,
      "end": 1139.12,
      "text": "它最佳的發揮舞台是那種",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 502,
      "start": 1139.12,
      "end": 1141.44,
      "text": "多代理人瘋狂反覆執行工具",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 503,
      "start": 1141.44,
      "end": 1145.96,
      "text": "在背後產生大量 JSON 報表與錯誤日誌的自動化任務",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 504,
      "start": 1145.96,
      "end": 1147.6,
      "text": "只有在這種情境下",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 505,
      "start": 1147.6,
      "end": 1151.16,
      "text": "大量的無效系統痕跡才可以被精準抹除",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 506,
      "start": 1151.16,
      "end": 1153.32,
      "text": "但如果是人類純聊天",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 507,
      "start": 1153.32,
      "end": 1155.96,
      "text": "它的節省效果其實微乎其微",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 508,
      "start": 1155.96,
      "end": 1158.84,
      "text": "對 這點在導入前一定要評估清楚",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 509,
      "start": 1158.84,
      "end": 1162.0,
      "text": "所以真的是要把刀用在刀口上",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 510,
      "start": 1162.0,
      "end": 1165.84,
      "text": "針對自動化與工具密集的任務去應用",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 511,
      "start": 1165.84,
      "end": 1169.28,
      "text": "才能最大化節省 Token 的投資報酬率",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 512,
      "start": 1169.28,
      "end": 1172.64,
      "text": "今天的解析真的非常精彩",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 513,
      "start": 1172.64,
      "end": 1174.48,
      "text": "從果汁機的殘酷比喻",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 514,
      "start": 1174.48,
      "end": 1176.84,
      "text": "到多階段處理的精妙",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 515,
      "start": 1176.84,
      "end": 1179.28,
      "text": "還有繁體中文的潛在風險",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 516,
      "start": 1179.28,
      "end": 1182.36,
      "text": "甚至資安防護跟視覺化展示",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 517,
      "start": 1182.36,
      "end": 1184.4,
      "text": "這讓我們不禁反思",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 518,
      "start": 1184.4,
      "end": 1186.72,
      "text": "在未來 AI 越變越強的時代",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 519,
      "start": 1186.72,
      "end": 1191.16,
      "text": "我們真的需要讓 AI 記住所有的摸索與錯誤過程嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 520,
      "start": 1191.16,
      "end": 1196.76,
      "text": "還是其實只要讓它記住關鍵的結論與原始資料就足夠了",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 521,
      "start": 1196.76,
      "end": 1198.68,
      "text": "今天最後的實務提醒是",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 522,
      "start": 1198.68,
      "end": 1200.64,
      "text": "看到新的開源工具",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 523,
      "start": 1200.64,
      "end": 1204.2,
      "text": "大家不要只看表面上宣稱省了多少 Token",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 524,
      "start": 1204.2,
      "end": 1207.08,
      "text": "一定要往底層看它的資料流向",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 525,
      "start": 1207.08,
      "end": 1208.96,
      "text": "有沒有資安過濾機制",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 526,
      "start": 1208.96,
      "end": 1212.68,
      "text": "能不能真正安全地落地到你們公司的規範中",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 527,
      "start": 1212.68,
      "end": 1215.76,
      "text": "沒錯 安全永遠是第一考量",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 528,
      "start": 1215.76,
      "end": 1218.24,
      "text": "喜歡我們的深入分析討論嗎",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 529,
      "start": 1218.24,
      "end": 1221.0,
      "text": "記得轉發給有需要的親朋好友",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 530,
      "start": 1221.0,
      "end": 1224.24,
      "text": "並且幫我們按讚訂閱開啟小鈴鐺",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 531,
      "start": 1224.24,
      "end": 1226.32,
      "text": "更多相關資訊連結",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 532,
      "start": 1226.32,
      "end": 1228.44,
      "text": "請參考影片下方的資訊欄",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 533,
      "start": 1228.44,
      "end": 1229.92,
      "text": "最後感謝您的收聽",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 534,
      "start": 1229.92,
      "end": 1232.04,
      "text": "祝您順心 我們下集再會",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    },
    {
      "id": 535,
      "start": 1232.04,
      "end": 1233.08,
      "text": "拜拜",
      "source": "video_source_subtitle",
      "authority": "video_source_subtitle"
    }
  ],
  "transcript_selection": {
    "schema": "videonote.transcript_selection.v1",
    "status": "SELECTED",
    "requested_language": "zh",
    "duration": 1300.0,
    "reference_path": "/Users/sagawa/AI_WORK/video_notes/url/20261001_085043__2000_行_JSON_也不怕_Fast-Jev_把_AI_記憶爆倉_變成精準斷捨離/reference_subtitle.vtt",
    "reference_kind": "manual",
    "reference_language": "zh-TW",
    "selected_source": "video_source_subtitle",
    "source_caption_kind": "manual",
    "source_caption_processing": "verbatim_direct",
    "youtube_overlap_clamps": [],
    "general_high_confidence_repairs": [],
    "decision_reason": "complete_source_subtitle_fast_path_no_whisper",
    "whisper_rejected": false,
    "source_profile": {
      "segment_count": 536,
      "duration_coverage": 0.948523
    }
  }
}