PixelRAG:伯克利团队颠覆传统 RAG,用截图代替文本检索! 28 天狂揽 3000+ Star!

大家好,这里是AI开源提效指南!

传统 RAG 系统有个致命缺陷:它会把网页渲染成纯文本格式,表格、图表、信息图——所有视觉结构全丢了。

伯克利 SkyLab 团队开源的PixelRAG彻底颠覆了这一范式——直接对页面截图,在像素级别进行检索。

上线不到一个月狂揽 3000+ Star,已经预索引了近 800 多万篇文章!

一句话推荐:检索的未来,是看而不是读。

适合场景:
✅ 需要理解表格/图表内容的 RAG 系统
✅ AI Agent 的网页视觉理解能力
✅ 大规模 Wikipedia 视觉搜索

PixelRAG:伯克利团队颠覆传统 RAG,用截图代替文本检索!  28 天狂揽 3000+ Star!

推荐理由:
像素级检索:直接对截图做向量检索,表格/图表/排版信息完整保留
即开即用:预索引 828 万 Wikipedia 文章,一行 curl 即可搜索
伯克利血统:来自 SkyLab/BAIR/Berkeley NLP,附带完整学术论文

✨ 核心功能

PixelRAG:伯克利团队颠覆传统 RAG,用截图代替文本检索!  28 天狂揽 3000+ Star!

功能 1:像素级截图渲染(pixelshot)

将任意网页、PDF、本地 HTML 渲染为 8192px 高的 JPEG 截图瓦片(tile),再切分为 1024px 的块(chunk)。支持 CDP 协议直接控制 Chrome,无需 Playwright 依赖。

关键优势:
✅ 无 Playwright 依赖,通过原生 WebSocket 协议控制 Chrome
✅ 支持 Turbo 加速路径(定制版 Chrome + 共享内存 + 并行 JPEG 压缩),批量吞吐翻倍
✅ 支持 URL、PDF、本地图片、HTML 文件多种输入

功能 2:视觉语义嵌入(Qwen3-VL-Embedding)

使用 LoRA 微调的 Qwen3-VL-Embedding-2B 模型,将截图块编码为向量。支持 ViT 视觉编码器 LoRA + 文本预热 + 难负样本挖掘。

关键优势:
✅ 在 SimpleQA 测试集上达到 QA Score ≈ 0.785(基础模型仅 0.715~0.730)
✅ 支持 vLLM / SGLang / 原生 transformers 多种推理后端
✅ 训练数据、LoRA 适配器全部开源

功能 3:FAISS 向量搜索引擎

基于 FAISS IVF 索引的视觉搜索引擎,支持文本查询、图片查询、文本+图片联合查询。

关键优势:
✅ 预索引 828 万 Wikipedia 文章,约 2810 万个截图块
✅ 支持 articles_only 过滤(排除 Wikipedia 元页面)
✅ 单次搜索延迟约 42ms(GPU 编码)+ FAISS 毫秒级检索

功能 4:Claude Code 插件(pixelbrowse)

pixelshot还作为 Claude Code 的插件发布,让 Claude 能「看」网页——截图后直接读取图片内容。

关键优势:
✅ 无需 MCP 服务器,一行命令安装
✅ 支持/screenshot斜杠命令
✅ 图表、表格、排版信息完整保留

📦 安装步骤

环境要求
Python >= 3.12
操作系统:Linux / macOS / Windows
渲染需要 Chrome/Chromium(pixelshot install-chrome自动下载)

安装命令

核心渲染工具(无 ML 依赖,轻量)pip install pixelrag# 完整索引构建(含 torch、transformers)pip install 'pixelrag[index]'# 搜索服务(FastAPI + FAISS)pip install 'pixelrag[serve]'# 全部安装pip install 'pixelrag[all]'

快速上手

请参考:官方 API 文档

🔧 工作原理

核心模块 1:CDP 渲染引擎

文件路径:render/src/pixelrag_render/backends/cdp.py

async def captureurl(ws, msgidref, url, tiledir, *, tileh=8192, quality=85, …):    # 1. 导航到目标 URL    await cdpsend(ws, msgidref, "Page.navigate", {"url": url})        # 2. 等待页面加载 + 字体就绪 + 布局稳定    result = await cdpsend(ws, msgidref, "Runtime.evaluate", {        "expression": readinessexpr(waitnetworkidle),        "awaitPromise": True,    })        # 3. 从顶部开始,按 tileh 高度切片截图    while y < pageheight:        cliph = min(tileh, pageheight – y)        result = await cdpsend(ws, msgidref, "Page.captureScreenshot", {            "clip": {"x": 0, "y": y, "width": viewportw, "height": cliph, "scale": 1},        })        # 保存为 JPEG 瓦片        tilepath.writebytes(base64.b64decode(result["data"]))        y += tile_h
代码解读:
通过 Chrome DevTools Protocol(CDP)原生 WebSocket 控制浏览器,无需 Playwright 依赖
使用readinessexpr()注入 JavaScript 等待页面完全加载(load 事件 + 字体就绪 + 两帧 RAF),确保 SPA 页面也正确渲染
将长页面按 8192px 高度切片为多个 JPEG 瓦片,每个瓦片附带tiles.json清单文件

核心模块 2:视觉嵌入流水线

文件路径:embed/src/pixelrag_embed/embed.py

def buildchatprompt(tokenizer, instruction=None):    # 使用 Qwen3-VL-Embedding 官方 prompt 格式    conversation = [        {"role": "system", "content": [{"type": "text", "text": instruction}]},        {"role": "user", "content": [{"type": "image"}]},    ]    return tokenizer.applychat_template(conversation, tokenize=False, …)
关键设计:
8192px 瓦片预切分为 1024px 的块(chunk),减少视觉 token 数量约 8 倍
支持 vLLM(runner="pooling")和 SGLang 两种推理后端
使用 Last-token pooling + L2 归一化生成最终向量

核心模块 3:搜索 API

文件路径:serve/src/pixelrag_serve/api.py

@app.post("/search")async def search(req: SearchRequest):    # 1. 编码查询(文本/图片/联合)    queryvectors = encodequeries(req.queries, req.instruction)        # 2. FAISS IVF 搜索(支持 nprobe 调节精度)    distances, indices = index.search(queryvectors, fetchk)        # 3. 构建结果(含文章过滤、tile 路径解析)    for j in range(fetchk):        vid = int(indices[qi, j])        hit = Hit(score=float(distances[qi, j]), article_id=aid, …)

关键算法流程

PixelRAG:伯克利团队颠覆传统 RAG,用截图代替文本检索!  28 天狂揽 3000+ Star!

🏗️ 技术架构

整体架构图

PixelRAG├── render/(截图渲染引擎)│   ├── backends/cdp.py(标准 CDP 路径)│   ├── backends/fastcdp.py(Turbo 加速路径)│   ├── backends/pdf.py(PDF 渲染)│   └── chrome.py(Chrome 二进制管理)├── embed/(向量嵌入流水线)│   ├── embed.py(GPU 嵌入,vLLM/SGLang)│   ├── embedcpu.py(CPU/MPS 嵌入)│   ├── chunk.py(瓦片切块)│   └── index.py(FAISS 索引构建)├── index/(端到端索引构建)│   ├── pipelines.py(编排流水线)│   ├── config.py(YAML 配置解析)│   └── sources/(数据源:本地/Kiwix/Web/PDF)├── serve/(搜索 API 服务)│   ├── api.py(FastAPI 搜索端点)│   └── renderondemand.py(按需渲染)├── train/(LoRA 微调,独立 uv 项目)│   ├── traincontrastors.py(对比学习训练器)│   └── model.py(模型定义)└── web/(Next.js 前端 + Agent 后端)    ├── app/(搜索页面 + 聊天页面 + API 文档)    └── agent-server.mjs(Claude Agent SDK 服务端)

数据流向图

PixelRAG:伯克利团队颠覆传统 RAG,用截图代替文本检索!  28 天狂揽 3000+ Star!

技术栈选型

| 层级 | 技术 | 选型理由 |
| — | — | — |
| 渲染引擎 | Chrome CDP(原生 WebSocket) | 无 Playwright 依赖,性能更高 |
| 视觉模型 | Qwen3-VL-Embedding-2B(LoRA) | 开源最强视觉嵌入模型 |
| 向量索引 | FAISS IVF | 十亿级检索,毫秒级延迟 |
| 搜索服务 | FastAPI + Uvicorn | 高性能异步 Python Web 框架 |
| 前端 | Next.js + Tailwind CSS | 现代 React 框架,SSR 支持 |
| 训练框架 | PyTorch + GradCache | 梯度缓存,显存与 batch size 解耦 |

📈 项目总结
范式创新:首次将 RAG 从「文本解析」提升到「像素级检索」,完整保留文档视觉结构
性能卓越:LoRA 微调 Qwen3-VL-Embedding,QA Score 从 0.715 提升至 0.785
工程完备:从渲染→嵌入→索引→搜索→前端,完整端到端流水线
即开即用:800 多万文章预索引,一行 curl 即可搜索
完全开源:训练数据、LoRA 适配器、完整源码全部 Apache-2.0 开源
生态整合:Claude Code 插件、Colab 笔记本、REST API 多入口
学术严谨:附带完整论文,W&B 训练曲线公开

🔗 参考资源

项目仓库:https://github.com/StarTrail-org/PixelRAG官方资源:- 在线演示:https://pixelrag.ai- API 文档:https://pixelrag.ai/docs- 搜索 API:https://api.pixelrag.ai- 状态监控:https://status.pixelrag.ai模型与数据:- LoRA 适配器:https://huggingface.co/Chrisyichuan/wiki-screenshot-embedding-lora- 训练数据集:https://huggingface.co/datasets/Chrisyichuan/screenshot-training-natural-filtered-v2- FAISS 索引:https://huggingface.co/StarTrail-org/pixelrag-faiss-indexes- 训练复现文档:train/README.md- 论文:assets/pixelrag-paper.pdf
* *

免责声明:本文内容仅供学习交流,所述工具/方法请遵守相关平台服务条款及法律法规。如涉及第三方服务,请以官方最新政策为准。

RAG技术前沿技术新闻资讯

腾讯WeKnora开源详解(三):检索引擎与生态集成

2026-7-17 19:53:14

RAG技术前沿技术新闻资讯

别把RAG当架构:Ontology(本体)才是Agent的业务世界

2026-7-17 22:12:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索