> [!NOTE] > 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 > [English](./README.en.md) · [原始项目](https://github.com/jina-ai/reader) · [上游 README](https://github.com/jina-ai/reader/blob/HEAD/README.md) > 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。 # Reader [![codecov](https://codecov.io/gh/jina-ai/reader/branch/main/graph/badge.svg)](https://codecov.io/gh/jina-ai/reader) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/jina-ai/reader) 你的 LLM 值得获得更好的输入。 Reader 提供两项能力: - **Read(读取)**:它将任意 URL 转换为适合 **LLM** 使用的输入,采用 `https://r.jina.ai/https://your.url`。无需额外成本,即可为你的智能体(agent)和 RAG 系统获得更优的输出。 - **Search(搜索)**:它使用 `https://s.jina.ai/your+query` 针对给定查询搜索网络。这使你的 LLM 能够访问来自网络的最新世界知识。 请查看[在线演示](https://jina.ai/reader#demo) 或直接访问这些 URL(**Read**)https://r.jina.ai/https://github.com/jina-ai/reader,(**Search**)https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F 亲自体验。 > 欢迎在生产环境中使用 Reader API。它免费、稳定且可扩展。我们将其作为 Jina AI 的核心产品之一积极维护。[查看速率限制](https://jina.ai/reader#pricing) image image > 本仓库是 `https://r.jina.ai` 与 `https://s.jina.ai` 背后代码库的开源分支。它以无状态或 bucket 缓存模式运行;此处不包含基于 MongoDB 的 SaaS 存储层。 ## 更新 - **2026-04** — 已将开源分支与 SaaS 代码重新同步。基于 MongoDB 的存储层已剥离;oss 分支开箱即可以无状态模式运行,并可通过 `docker compose` 可选启用 MinIO/S3 兼容的 bucket 缓存。参见[本地开发](#local-development)。 - **2025-12** — 存储层解耦,并支持二进制文件上传。PDF 及 MS Office 文档(Word、Excel、PowerPoint)现可直接通过 `file` 请求体字段 POST 上传——无需事先托管。参见 [cookbooks.md](./cookbooks.md#pdf-ms-office-and-raw-html-uploads)。 - **2025-03** — 重大重构:Reader 不再是 Firebase 应用。SaaS 已从 Firestore + Cloud Functions 迁移至搭载 MongoDB Atlas 的 Cloud Run 镜像,移除了与平台耦合的部分,并打通了上文所述的本地 Docker 路径。 - **2024-05** — `s.jina.ai` 上线,将 Reader 从 URL→markdown 扩展至 search→markdown。同月新增 PDF 支持——任何以 `.pdf` 结尾的 URL 均使用 PDF.js 解析并返回为 markdown。 - **2024-04** — Reader 发布,`r.jina.ai` 作为 Jina AI 首个将 URL 转换为 LLM 友好输入的 SaaS API 正式上线。 ## Reader 可读取的内容 - **网页** — 通过无头 Chrome 渲染,或通过 `curl-impersonate` 轻量抓取。Reader 会智能地在两者之间选择。 - **PDF** — 任意 URL,使用 PDF.js 解析。[查看此 NASA PDF 结果](https://r.jina.ai/https://www.nasa.gov/wp-content/uploads/2023/01/55583main_vision_space_exploration2.pdf) 与[原始文件](https://www.nasa.gov/wp-content/uploads/2023/01/55583main_vision_space_exploration2.pdf). - **MS Office 文档** — Word、Excel、PowerPoint,经 LibreOffice 转换后按 HTML/PDF 处理。 - **图片** — 由视觉-语言模型(vision-language model)生成说明文字,使你的下游纯文本 LLM 获得*恰到好处*的提示以进行推理。 ## 用法 ### 使用 `r.jina.ai` 抓取单个 URL 只需在任意 URL 前添加 `https://r.jina.ai/` 前缀。例如,要将 URL `https://en.wikipedia.org/wiki/Artificial_intelligence` 转换为 LLM 友好输入,可使用以下 URL: [https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence](https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence) ### [使用 `r.jina.ai` 抓取完整网站(Google Colab)](https://colab.research.google.com/drive/1uoBy6_7BhxqpFQ45vuhgDDDGwstaCt4P#scrollTo=5LQjzJiT9ewT) ### 使用 `s.jina.ai` 进行网络搜索 只需在搜索查询前添加 `https://s.jina.ai/` 前缀。注意,若在代码中使用,请先对搜索查询进行编码,例如若查询为 `Who will win 2024 US presidential election?`,则 URL 应如下所示: [https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F](https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F) 在幕后,Reader 会搜索网络、获取前 5 条结果、访问每个 URL,并对其应用 `r.jina.ai`。这与许多智能体/RAG 框架中的 `web search function-calling` 不同——后者通常只返回搜索引擎 API 提供的标题、URL 和描述。若要对某条结果做更深入阅读,你必须自行从该 URL 抓取内容。使用 Reader 时,`http://s.jina.ai` 会自动为你从前 5 条搜索结果 URL 抓取内容(复用 `http://r.jina.ai` 背后的技术栈)。这意味着你无需自行处理浏览器渲染、拦截,或与 JavaScript 和 CSS 相关的任何问题。 ### 使用 `s.jina.ai` 进行站内搜索 只需在查询参数中指定 `site`,例如: ```bash curl 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com' ``` ### [交互式代码片段构建器](https://jina.ai/reader#apiform) 我们强烈建议使用代码构建器探索 Reader API 的不同参数组合。 image ### 使用请求头 你可以通过请求头控制 Reader API 的行为。下列列表涵盖最实用的选项——完整接口及最新默认值与校验规则,请参见 [https://r.jina.ai/docs](https://r.jina.ai/docs), 上的在线 API 文档,或 [`src/dto/crawler-options.ts`](./src/dto/crawler-options.ts) 中的权威源码。 - `x-respond-with` — 选择输出格式。 - `markdown` 返回 markdown,*不*经过 `readability` - `html` 返回 `documentElement.outerHTML` - `text` 返回 `document.body.innerText` - `screenshot` 返回网页截图的 URL - `pageshot` 类似于 `screenshot`,但会尝试截取整页而非仅视口 - `frontmatter` 返回**带 YAML frontmatter 块的 Markdown**。默认纯文本响应使用自定义的 `Title: …` / `URL Source: …` 头格式;`frontmatter` 会将其替换为 front matter 块。示例: ```bash curl -H 'X-Respond-With: frontmatter' 'https://r.jina.ai/https://example.com' ``` ```markdown --- title: "Example Domain" description: "This domain is for use in illustrative examples." url: "https://example.com/" --- ## Example Domain This domain is for use in illustrative examples in documents. ... ``` - `markdown+frontmatter` — 类似 `frontmatter`,但覆盖整页且不做可读性过滤。 - `x-engine` — 强制指定抓取引擎:`browser`(无头 Chrome)、`curl`(轻量,无 JS),或 `auto`(默认——浏览器与 curl 组合使用)。 - `x-proxy-url` — 通过你指定的代理路由流量。 - `x-cache-tolerance` — 整数秒;可接受的缓存页面陈旧程度。 - `x-no-cache: true` — 绕过缓存页面(生命周期 3600s)。等效于 `x-cache-tolerance: 0`。 - `x-target-selector` — CSS 选择器。Reader 返回匹配元素内的内容,而非整页。当自动内容提取遗漏了你所需内容时很有用。 - `x-wait-for-selector` — CSS 选择器。Reader 会等待匹配元素渲染完成后再返回。若已设置 `x-target-selector`,可省略此项以等待同一元素。 - `x-timeout` — 整数秒(最大 180)。设置后 Reader 不会提前返回;会等待网络空闲或直至超时。 - `x-max-tokens` — 整数(≥500)。裁剪响应,使其不超过该 token 数。在向固定大小的上下文窗口喂入数据时,可作为按请求的防护栏——Reader 会截断而非拒绝。 - `x-token-budget` — 整数。若结果内容将超过该 token 数则拒绝请求。当*超出*预算的输出比无输出更糟时使用(例如成本控制)。在搜索端点上会被忽略。 - `x-respond-timing` — 显式控制 Reader *何时*愿意返回。在延迟与完整性之间权衡: - `html` — 原始 HTML 一到达即返回。不执行 JS,不等待。 - `visible-content` — 可读内容可解析的瞬间即返回。仍能产出文本的最低延迟。 - `mutation-idle` — 等待 DOM 变更稳定 ≥0.2s。适合首屏懒渲染的 SPA 的良好默认值。 - `resource-idle` — 等待影响内容的资源加载完成(安静 ≥0.5s)。面向内容形态请求的默认启发式策略。 - `media-idle` — 同时等待媒体(图片、视频、字体)加载完成。可与 `screenshot` / `pageshot` / `vlm` 配合使用。 - `network-idle` — 完整 `networkidle0`。最慢,最完整。当 `x-timeout` ≥ 20 时隐含启用。 省略时,Reader 会根据 `x-respond-with`、`x-timeout` 和 `x-with-iframe` 选择其一。具体规则请参阅 [src/dto/crawler-options.ts](./src/dto/crawler-options.ts) 中的 `presumedRespondTiming`。 - `x-with-generated-alt: true` — 使用 VLM(视觉语言模型)为页面上的图片生成说明文字。 - `x-retain-images` — 控制图片如何保留在输出中: - `all`(默认)— 为每张图片保留 `![alt](url)` markdown。 - `none` — 完全丢弃图片。 - `alt` — 仅保留 alt 文本,不含 URL。节省 token;当下游 LLM 不需要图片链接时很有用。 - `x-retain-links` — 控制链接如何保留在输出中: - `all`(默认)— 保留 `[text](url)` markdown。 - `none` — 完全丢弃链接。 - `text` — 仅保留链接锚文本,丢弃 URL。最适合 embedding / 语义索引(semantic indexing)流水线,其中 URL 是噪声。 - `gpt-oss` — 以 gpt-oss 的 `【{id}†...】` 格式输出引用,并附加带编号的 URL 页脚(同时自动启用 `x-with-links-summary`)。 - `x-retain-media` — 控制 `