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