Cloudflare推出AutoRAG:一個完全托管的檢索增強生成(RAG)管道
AutoRAG 是什么
AutoRAG 是一個完全托管的 RAG 管道,由 Cloudflare 提供支持。RAG 是一種通過從用戶自己的數據中檢索信息并將其提供給大型語言模型(LLM),以生成更準確、更貼合實際的響應的方法。
傳統 RAG 管道的痛點
構建 RAG 管道需要將多個工具和服務拼湊在一起,如數據存儲、向量數據庫、嵌入模型、LLM 等,并且隨著數據變化,需要手動重新索引和重新生成嵌入以保持系統的相關性和性能。AutoRAG 的出現旨在消除這種復雜性,只需幾次點擊即可提供從數據攝取、自動分塊和嵌入,到在 Cloudflare 的 Vectorize 數據庫中存儲向量、執行語義檢索以及使用 Workers ai 生成高質量響應的端到端完全托管的 RAG 管道。AutoRAG 還會在后臺持續監控數據源并進行索引,無需手動努力即可保持 AI 的更新。
使用 RAG 的原因
LLM 的局限性 :像 Meta 的 Llama 3.3 這樣的 LLM 雖然強大,但它們的知識僅限于訓練時所接觸的內容,對于新的、專有的或特定領域的信息往往難以給出準確答案。提供相關系統提示信息雖然有幫助,但會增加輸入大小且受上下文窗口限制。模型微調成本高昂,還需要持續重新訓練以保持更新。
RAG 的優勢 :RAG 可以在查詢時從數據源檢索相關信息,將其與用戶的輸入查詢結合起來,然后一起輸入到 LLM 中以生成基于用戶數據的響應。這使得 RAG 非常適合用于 AI 驅動的支持機器人、內部知識助手、跨文檔的語義搜索等用例,這些場景中的真實信息源始終在不斷變化。
AutoRAG 的工作原理
索引過程 :這是一個在后臺運行的異步過程,從創建 AutoRAG 開始自動運行,并在每次之前的作業完成后循環重新處理新文件或已更新的文件。在索引過程中,內容被轉換成針對語義搜索優化的向量。
文件攝取 :AutoRAG 直接從數據源讀取文件,目前支持與 Cloudflare R2 集成,可以在 R2 中存儲 PDF、圖片、文本、HTML、CSV 等多種格式的文檔以供處理。
Markdown 轉換 :使用 Workers AI 的 Markdown 轉換來將所有文件轉換為結構化的 Markdown 格式,確保不同文件類型之間的一致性。對于圖片,使用 Workers AI 進行目標檢測,然后進行視覺到語言的轉換,將圖片轉換為 Markdown 文本。
分塊 :提取的文本被分割成更小的塊,以提高檢索的粒度。
嵌入 :使用 Workers AI 的嵌入模型將每個塊嵌入,將內容轉換為向量。
向量存儲 :將得到的向量以及元數據(如源位置和文件名)存儲在 Cloudflare 的 Vectorize 數據庫中,該數據庫是在你的賬戶上創建的。
查詢過程 :這是一個同步過程,當用戶發送搜索請求時被觸發。
接收來自 AutoRAG API 的查詢 :當你向 AutoRAG 的 AI 搜索或搜索端點發送請求時,查詢工作流程開始。
查詢重寫(可選) :AutoRAG 提供使用 Workers AI 的 LLM 之一重寫輸入查詢的選項,通過將原始查詢轉換為更有效的搜索查詢來提高檢索質量。
嵌入查詢 :將重寫后的(或原始的)查詢通過與嵌入數據時使用的相同嵌入模型轉換為向量,以便將其與已向量化的數據進行比較,以找到最相關的匹配項。
在 Vectorize 中進行向量搜索 :將查詢向量與 AutoRAG 關聯的 Vectorize 數據庫中存儲的向量進行搜索。
檢索元數據 + 內容 :Vectorize 返回最相關的塊及其元數據,并從 R2 桶中檢索原始內容。這些內容被傳遞給文本生成模型。
響應生成 :使用 Workers AI 的文本生成模型,根據檢索到的內容和原始用戶的查詢生成響應。
AutoRAG使用教程
使用 Browser Rendering API :如果內容不在 R2 桶中,而是還在網頁上或需要通過前端 UI 動態呈現,可以使用 Browser Rendering API 爬取自己的網站以獲取為 RAG 提供信息的內容。Browser Rendering REST API 現在已全面可用,提供用于常見瀏覽器操作的端點,包括提取 HTML 內容、捕獲屏幕截圖和生成 PDF 等。此外,即將推出爬取端點,使網站內容獲取取變得更加方便。
步驟 1:創建 Worker 以抓取網頁并上傳到 R2
創建名為 browser-r2-worker 的新 Worker 項目,并選擇相應的選項進行設置。
安裝 @cloudflare/puppeteer,以便控制瀏覽器渲染實例。
創建名為 html-bucket 的新 R2 桶。
在 Wrangler 配置文件中添加相應的配置,以便 Worker 可以使用瀏覽器渲染和新 R2 桶。
替換 src/index.ts 中的內容,編寫用于抓取網頁并將其存儲到 R2 桶中的腳本代碼。
部署 Worker 到 Cloudflare 賬戶。
使用 cURL 請求測試 Worker,將網頁的 HTML 文件抓取并上傳到 html-bucket 桶中。
步驟 2:創建 AutoRAG 并監控索引
在 Cloudflare 儀表板中,導航到 AI > AutoRAG。
選擇創建 AutoRAG 并完成設置過程,包括選擇包含知識庫的 R2 桶、嵌入模型、LLM、AI 網關,命名 AutoRAG 以及選擇或創建服務 API 令牌。
創建 AutoRAG 后,它將自動在你的賬戶中創建一個 Vectorize 數據庫并開始索引數據。你可以在 AutoRAG 的概述頁面中查看索引作業的進度。
步驟 3:測試并添加到應用程序中
索引完成后,就可以開始向 AutoRAG 提問了。可以在 AutoRAG 實例的 Playground 選項卡中提問,例如 “什么是 AutoRAG?”。
如果對 Playground 中的結果滿意,就可以將 AutoRAG 直接集成到正在構建的應用程序中。如果使用 Worker 構建應用程序,則可以通過 AI 綁定直接調用 AutoRAG。
在開放測試階段,AutoRAG 是免費的。索引、檢索和增強的計算操作在此階段不會產生額外費用。
官方詳細介紹:https://blog.cloudflare.com/introducing-autorag-on-cloudflare/