PixelRAG — 用截圖替代文字解析,AI 讀懂網頁的新思路

Written by

in

今天看到一個很有意思的項目叫 PixelRAG,來自 Berkeley SkyLab 團隊。核心想法很簡單但很暴力:**用截圖代替文字解析來做 RAG。**

## 問題在哪

我們平時用 AI 問問題,背後大概率在跑 RAG(Retrieval-Augmented Generation)。流程是:抓網頁 → 解析成文字 → 分塊 → 向量化 → 存起來 → 你問問題時檢索相關文字 → AI 回答。

這套流程在大多數情況下沒問題,但碰到表格、圖表、排版複雜的頁面就完蛋了。因為文字解析會把這些視覺結構全部丟掉。一個精心設計的定價頁面,解析出來可能就是一堆沒有上下文的數字。

## PixelRAG 怎麼做

不做文字解析,直接截圖。網頁 → 截圖 → 圖像分塊 → 用專門訓練的視覺 embedding 模型向量化 → 存成索引。你問問題時,檢索的是圖片,AI 直接從截圖裡讀答案。

視覺結構完整保留:表格還是表格,圖表還是圖表,排版就是原來的排版。

## 具體能幹什麼

**1. 讀論文架構圖**

arxiv 論文裡的模型架構圖、流程圖,普通 RAG 只有圖下面的文字描述(往往是一句「Figure 1 shows the overview of our approach」)。PixelRAG 直接讓 AI 看圖回答。

**2. 查定價頁面**

SaaS 網站的定價頁面通常是精心設計的表格。文字解析出來就是一堆「$9/月」「$29/月」和一堆功能名稱,根本對不上號。截圖的話,表格結構一目了然。

**3. 讀排行榜和統計數據**

各類 Top N 排行榜、數據對比頁面,解析成文字後順序和對應關係很容易亂。截圖就沒有這個問題。

**4. 查頁面設計**

要研究某個網站的 UI 設計?文字解析根本沒用,你需要的就是截圖。

## 實際用起來

最簡單的方式是它的 Claude Code 插件。裝了之後:

“`bash
# 安裝
uv tool install pixelrag
claude plugin add StarTrail-org/PixelRAG

# 用一句命令截圖讓 Claude 讀
claude -p “screenshot https://news.ycombinator.com and summarize the top stories”
“`

不需要搭服務,不需要 API key,本地跑。

想自己建索引的話也行:

“`bash
pip install ‘pixelrag[index]’

# 創建配置
cat > pixelrag.yaml << 'EOF' source: type: local path: ./my_docs embed: model: Qwen/Qwen3-VL-Embedding-2B device: auto output: ./my_index EOF # 構建索引 pixelrag index build # 啟動搜索服務 pixelrag serve --index-dir ./my_index --port 30001 ``` 它還有一個現成的 Wikipedia 索引(828 萬頁),免費 API 直接用: ```bash curl -X POST https://api.pixelrag.ai/search \ -H "Content-Type: application/json" \ -d '{"queries": [{"text": "What is the capital of France?"}], "n_docs": 5}' ``` ## 技術上的巧妙之處 它不是簡單地把整個頁面截一張圖就完事了。它會把頁面截成多個 tile(瓷磚),這樣檢索粒度更細。而且 embedding 模型是專門用截圖數據微調過的 Qwen3-VL,不是通用的視覺模型,所以在網頁檢索這個場景下效果好很多。 ## 我的看法 這個方向很有前景。現在 AI Agent 越來越多地需要「看」網頁,而不是「讀」HTML。HTML 解析會丟掉太多信息。PixelRAG 證明了一個簡單的事實:**有時候圖片比文字更接近事實。** 不過也有局限:截圖的存儲和向量化比純文本大得多,索引體積會是個問題。828 萬頁的 Wikipedia 索引估計得不少空間。另外,動態內容(需要滾動才能看到的部分)的處理也是個挑戰。 但作為一個思路,「用像素替代文本做檢索」這個方向值得關注。 項目地址:https://github.com/StarTrail-org/PixelRAG

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *