WEBVTT
Kind: captions
Language: zh-TW

00:00:10.044 --> 00:00:13.244
今天我們要深度解析 GitHub 上的一個熱門專案：

00:00:13.244 --> 00:00:15.924
ragflow，一個頂尖的開源 RAG 引擎。

00:00:15.924 --> 00:00:18.484
它旨在解決 RAG 應用最棘手的

00:00:18.484 --> 00:00:20.484
「垃圾進、垃圾出」問題，

00:00:20.484 --> 00:00:22.164
透過深度文件理解，

00:00:22.164 --> 00:00:25.924
為大型語言模型打造真正高品質的上下文。

00:00:26.064 --> 00:00:29.644
大型語言模型為什麼有時候會一本正經地胡說八道？

00:00:29.644 --> 00:00:33.244
很多人第一個反應，就是怪模型本身不夠聰明。

00:00:33.244 --> 00:00:37.544
但如果問題的根源，其實是我們餵給它的資料品質呢？

00:00:37.544 --> 00:00:39.784
一個叫做 RAGFlow 的開源專案，

00:00:39.784 --> 00:00:41.784
正試圖從源頭解決這個問題。

00:00:41.784 --> 00:00:43.783
它不是又一個開發框架，

00:00:43.783 --> 00:00:45.783
而是一套完整的 RAG 引擎，

00:00:45.783 --> 00:00:50.924
它獨特的設計，可能會改變大家打造企業級 AI 應用的方法。

00:00:50.924 --> 00:00:53.664
這個專案在 GitHub 上累積了超過八萬顆星，

00:00:53.664 --> 00:00:55.164
它到底厲害在哪裡？

00:00:55.324 --> 00:00:58.964
RAGFlow 是由 infiniflow 團隊開發的一個開源專案，

00:00:58.964 --> 00:01:01.363
全名是檢索增強生成引擎，

00:01:01.363 --> 00:01:02.863
也就是 RAG engine。

00:01:02.863 --> 00:01:04.503
它的核心目標很明確：

00:01:04.503 --> 00:01:06.944
要為大型語言模型 LLM

00:01:06.944 --> 00:01:08.944
提供一個非常可靠的上下文，

00:01:08.944 --> 00:01:11.104
來解決模型回答時沒有根據、

00:01:11.104 --> 00:01:13.104
甚至產生幻覺的老問題。

00:01:13.104 --> 00:01:15.644
這個專案在 GitHub 上有多受歡迎呢？

00:01:15.644 --> 00:01:18.683
它已經累積了八萬八千三百七十七顆星，

00:01:18.683 --> 00:01:21.483
光是今天一天就增加了四百七十三顆，

00:01:21.483 --> 00:01:23.224
Fork 數量也突破了一萬。

00:01:23.244 --> 00:01:25.983
這代表開發者社群對它有非常高的期待。

00:01:25.983 --> 00:01:27.683
RAGFlow 的特別之處，在於

00:01:27.683 --> 00:01:31.364
它把先進的 RAG 技術跟 Agent 的能力結合在一起，

00:01:31.364 --> 00:01:33.663
目標是為各種規模的企業，

00:01:33.663 --> 00:01:36.004
打造一套順暢的 AI 工作流程。

00:01:36.004 --> 00:01:38.364
現在要開發大型語言模型應用，

00:01:38.364 --> 00:01:40.564
最主流的做法就是 RAG，

00:01:40.564 --> 00:01:43.144
也就是檢索、增強、生成。

00:01:43.144 --> 00:01:44.703
這個流程聽起來很簡單：

00:01:44.703 --> 00:01:47.203
先從自己的資料庫裡找出相關文件，

00:01:47.203 --> 00:01:49.044
再把這些文件跟用戶的問題，

00:01:49.044 --> 00:01:51.384
一起丟給語言模型去產生答案。

00:01:51.403 --> 00:01:53.144
聽起來很美好，對吧？

00:01:53.144 --> 00:01:54.403
但真正的痛點，

00:01:54.403 --> 00:01:56.983
其實在最一開始的「知識提取」。

00:01:56.983 --> 00:01:59.943
企業的真實文件可不是乾淨的純文字。

00:01:59.943 --> 00:02:02.023
裡面充滿了掃描的 PDF、

00:02:02.023 --> 00:02:03.123
複雜的表格、

00:02:03.123 --> 00:02:04.523
還有多欄位的報告。

00:02:04.523 --> 00:02:06.064
傳統的 RAG 流程，

00:02:06.064 --> 00:02:09.263
常常很粗暴地把這些文件切成一段段的文字，

00:02:09.263 --> 00:02:12.724
結果就是，文件裡重要的版面結構和語意關聯，

00:02:12.724 --> 00:02:13.964
全部都遺失了。

00:02:13.964 --> 00:02:15.364
這就造成了所謂的

00:02:15.964 --> 00:02:18.064
「垃圾進，垃圾出」。

00:02:18.064 --> 00:02:20.403
這也是為什麼語言模型常常回答得不好、

00:02:20.424 --> 00:02:22.564
引用錯誤，甚至胡說八道。

00:02:22.564 --> 00:02:24.064
而 RAGFlow 要解決的，

00:02:24.064 --> 00:02:25.364
就是這個最前端，

00:02:25.364 --> 00:02:27.504
但也最關鍵的資料品質問題。

00:02:27.504 --> 00:02:28.903
RAGFlow 的技術核心，

00:02:28.903 --> 00:02:30.303
可以濃縮成一句話：

00:02:30.303 --> 00:02:32.343
「Quality in, quality out」，

00:02:32.343 --> 00:02:34.243
也就是高品質的輸入，

00:02:34.243 --> 00:02:35.843
才會有高品質的輸出。

00:02:35.843 --> 00:02:37.343
它的第一個技術亮點，

00:02:37.343 --> 00:02:40.743
是一個叫做 `DeepDoc` 的深度文件理解模組。

00:02:40.743 --> 00:02:43.424
你可以把它想像成一位數位文件鑑識專家。

00:02:43.424 --> 00:02:44.724
它不只是讀文字，

00:02:44.724 --> 00:02:47.724
它還會去分析 PDF 或 Word 文件的版面，

00:02:47.724 --> 00:02:49.823
可以很精準地把表格抽出來、

00:02:49.944 --> 00:02:51.084
辨識圖片內容、

00:02:51.084 --> 00:02:53.784
還能看懂標題和段落之間的層級關係。

00:02:54.243 --> 00:02:56.743
這種智慧化的切塊 chunking 方式，

00:02:56.743 --> 00:02:59.664
確保了餵給模型的上下文，是高品質

00:02:59.664 --> 00:03:01.064
而且結構完整的。

00:03:01.064 --> 00:03:04.123
這就從根本上提升了檢索的準確度。

00:03:04.123 --> 00:03:05.424
再來，RAGFlow

00:03:05.424 --> 00:03:07.924
把 RAG 跟 Agent 的工作流程結合在一起。

00:03:07.924 --> 00:03:09.823
這代表它不只會回答問題，

00:03:09.823 --> 00:03:12.263
還能自動執行多個步驟的複雜任務。

00:03:12.263 --> 00:03:13.203
更厲害的是，

00:03:13.203 --> 00:03:18.103
它為此設計了一個基於 `gVisor` 技術的程式碼執行沙箱 sandbox。

00:03:18.103 --> 00:03:18.903
sandbox

00:03:18.924 --> 00:03:20.024
這代表什麼意思？

00:03:20.024 --> 00:03:25.064
這代表 Agent 可以安全地執行由 LLM 生成的 Python 程式碼，

00:03:25.064 --> 00:03:26.564
來完成複雜的分析任務。

00:03:26.564 --> 00:03:29.064
同時，又有一道堅固的防火牆保護，

00:03:29.064 --> 00:03:31.403
不怕惡意程式碼攻擊主機系統。

00:03:31.403 --> 00:03:35.343
這個設計，對於企業級的 AI 自動化應用來說，

00:03:35.343 --> 00:03:37.343
提供了非常關鍵的安全保障。

00:03:37.343 --> 00:03:39.743
最後，來看看它的整體架構。

00:03:39.743 --> 00:03:42.743
RAGFlow 採用了基於 Docker 的容器化部署，

00:03:42.743 --> 00:03:46.644
把後端服務、資料庫和文件引擎都模組化了。

00:03:46.664 --> 00:03:48.763
它還讓開發者可以在 Elasticsearch，

00:03:48.763 --> 00:03:52.203
或是他們自己研發的 Infinity 向量資料庫之間自由選擇。

00:03:52.203 --> 00:03:55.403
這代表它同時兼顧了部署的方便性和架構的彈性。

00:03:55.403 --> 00:03:57.403
RAGFlow 的應用場景非常明確，

00:03:57.403 --> 00:03:58.804
主要就是針對那些

00:03:58.804 --> 00:04:02.084
需要處理大量非結構化文件的企業和開發者。

00:04:02.084 --> 00:04:02.843
舉個例子，

00:04:02.843 --> 00:04:07.144
一間金融機構可以用它來處理幾千份掃描的年度報告 PDF。

00:04:07.144 --> 00:04:09.584
然後建立一個內部的知識問答系統，

00:04:09.584 --> 00:04:11.683
不只可以精準回答財務數據，

00:04:11.683 --> 00:04:13.924
還能追溯到報告的原文頁數。

00:04:13.924 --> 00:04:15.123
對於開發者來說，

00:04:15.144 --> 00:04:17.444
可以把 RAGFlow 當作後端引擎，

00:04:17.444 --> 00:04:18.843
很快地為自己的 App，

00:04:18.843 --> 00:04:21.983
加上讀取私有資料的進階問答功能，

00:04:21.983 --> 00:04:25.043
不用再自己從頭蓋一個複雜的資料處理流程。

00:04:25.043 --> 00:04:26.483
而對數據分析師來說，

00:04:26.483 --> 00:04:29.524
它的 Agent 功能可以建立自動化工作流程，

00:04:29.524 --> 00:04:33.924
從海量文件中自動提取、分析並總結特定資訊。

00:04:33.924 --> 00:04:35.924
不過，這麼強大的功能，

00:04:35.924 --> 00:04:37.763
也代表它有一定的入門門檻。

00:04:37.763 --> 00:04:40.963
使用者需要對 Docker 和 Docker Compose 有基本的認識，

00:04:40.963 --> 00:04:44.963
才能順利在自己的環境完成 Self-Hosting 的部署。

00:04:45.044 --> 00:04:48.643
社群對 RAGFlow 的評價，可以說是非常兩極。

00:04:48.643 --> 00:04:51.044
一方面，正面的評價非常多，

00:04:51.044 --> 00:04:53.604
大家最稱讚的就是它的 DeepDoc 模組，

00:04:53.604 --> 00:04:56.004
處理複雜文件的能力真的太強了。

00:04:56.004 --> 00:04:57.444
很多技術評測都認為，

00:04:57.444 --> 00:04:59.843
它在處理真實世界的商業文件，

00:04:59.843 --> 00:05:01.843
像是掃描 PDF 或財報時，

00:05:01.843 --> 00:05:04.403
效果遠遠勝過其他的開源方案。

00:05:04.403 --> 00:05:07.764
加上它提供了一套包含前端介面的完整產品，

00:05:07.764 --> 00:05:10.004
讓企業導入的門檻大幅降低，

00:05:10.004 --> 00:05:13.284
甚至被譽為是「最佳自架設 RAG 產品」。

00:05:13.363 --> 00:05:15.923
然而，負面的聲音也同樣存在。

00:05:15.923 --> 00:05:19.923
疑慮主要集中在它比較高的部署成本和資源消耗。

00:05:19.923 --> 00:05:22.243
跟那些輕量的函式庫比起來，

00:05:22.243 --> 00:05:24.004
RAGFlow 的多容器架構，

00:05:24.004 --> 00:05:26.484
對個人開發者來說，確實有點重。

00:05:26.484 --> 00:05:27.764
也有些開發者認為，

00:05:27.764 --> 00:05:30.004
它的流程設計，在彈性上，

00:05:30.004 --> 00:05:32.803
還是比不上 LangChain 或 拉馬Index 這些框架。

00:05:32.803 --> 00:05:35.044
如果我們從一個更宏觀的角度來看，

00:05:35.044 --> 00:05:36.884
RAGFlow 的出現，其實代表了，

00:05:36.884 --> 00:05:39.444
RAG 領域一個很重要的思維轉變，

00:05:39.444 --> 00:05:41.604
那就是，大家優化的重心，

00:05:41.683 --> 00:05:43.843
開始從後端的提示工程，

00:05:43.843 --> 00:05:45.123
prompt engineering，

00:05:45.123 --> 00:05:46.963
轉移到前端的資料擷取

00:05:46.963 --> 00:05:47.843
ingestion。

00:05:47.843 --> 00:05:49.923
它揭示了一個很樸素的真理：

00:05:49.923 --> 00:05:51.604
高品質的 AI 輸出，

00:05:51.604 --> 00:05:54.083
源頭就是高品質的資料輸入。

00:05:54.083 --> 00:05:56.403
不過，這種對品質的極致追求，

00:05:56.403 --> 00:05:58.243
也帶來了潛在的風險。

00:05:58.243 --> 00:06:00.004
它複雜的微服務架構，

00:06:00.004 --> 00:06:01.444
提高了維運的門檻，

00:06:01.444 --> 00:06:03.444
對硬體資源的要求也比較高。

00:06:03.444 --> 00:06:06.164
而且，雖然它用了 gVisor 這種先進技術，

00:06:06.164 --> 00:06:09.204
但任何允許遠端執行程式碼的功能，

00:06:09.204 --> 00:06:12.803
本質上都是一個需要持續留意的安全攻擊面。

00:06:12.803 --> 00:06:14.803
所以，RAGFlow 的真正價值，

00:06:14.803 --> 00:06:17.683
並不是要取代像 LangChain 這類靈活的函式庫。

00:06:17.683 --> 00:06:21.284
它的定位，是為那些需要處理真實世界

00:06:21.284 --> 00:06:22.884
messy data 的企業，

00:06:22.884 --> 00:06:24.724
提供一個功能強大、

00:06:24.724 --> 00:06:25.764
安全可靠，

00:06:25.764 --> 00:06:27.444
而且開箱即用的，

00:06:27.444 --> 00:06:28.963
全端 RAG 平台。

00:06:28.963 --> 00:06:29.843
總結來說，

00:06:29.843 --> 00:06:31.523
RAGFlow 是一個專為解決

00:06:31.523 --> 00:06:33.683
真實世界文件混亂問題而生的「生產級」RAG 引擎。

00:06:33.683 --> 00:06:35.284
生產級 RAG 引擎。

00:06:35.284 --> 00:06:36.484
它最大的價值，

00:06:36.484 --> 00:06:38.884
就是透過深度的文件理解技術，

00:06:38.884 --> 00:06:41.444
從源頭就提升了輸入資料的品質，

00:06:41.444 --> 00:06:44.083
進而確保大型語言模型輸出的結果，

00:06:44.083 --> 00:06:46.243
既可靠又能追溯來源。

00:06:46.243 --> 00:06:49.363
所以，如果你正在開發的 AI 應用，

00:06:49.363 --> 00:06:51.923
需要處理大量複雜的 PDF、

00:06:51.923 --> 00:06:53.683
掃描文件或報告，

00:06:53.683 --> 00:06:56.803
而且你非常重視答案的準確度和可信度，

00:06:56.803 --> 00:06:57.843
那麼 RAGFlow，

00:06:57.843 --> 00:06:59.843
絕對是一個值得你密切關注的專案。

