您的法学硕士值得更好的投入。
读者做了两件事:
阅读:它将任何 URL 转换为LLM 友好的输入https://r.jina.ai/https://your.url
。免费提高代理和 RAG 系统的输出。
搜索:它使用https://s.jina.ai/your+query
在网络上搜索给定的查询。这使您的法学硕士能够从网络获取最新的世界知识。
查看现场演示
或者只需访问这些 URL(阅读)https://r.jina.ai/https://github.com/jina-ai/reader,(搜索)https://s.jina.ai/Who%20will%20win %202024%20US%20presidential%20election%3F 看看你自己。
请随意在生产中使用 Reader API。它是免费、稳定且可扩展的。我们正在积极维护它作为吉纳人工智能的核心产品之一。查看速率限制
2024-10-08 :推出adaptive crawler
。它可以递归地抓取网站并提取给定网页最相关的页面。
2024-07-15 : 要将s.jina.ai
的结果限制到特定域/网站,您可以在查询参数中设置例如site=jina.ai
,这将启用站内搜索。如需更多选项,请尝试我们更新的现场演示。
2024-07-01 :我们解决了自 6 月 27 日以来的 DDoS 攻击和其他流量滥用问题。我们还发现 6 月 28 日引入的一个错误可能会导致某些网站出现更高的延迟。攻击和bug已经解决;如果您在 6 月 27 日至 30 日期间经历过 r.jina.ai 的高延迟,现在应该会恢复正常。
2024-05-30 :读者现在可以从任何 URL 阅读任意 PDF!查看来自 NASA.gov 的 PDF 结果与原始结果。
2024-05-15 :我们引入了一个新的端点s.jina.ai
,它可以在网络上搜索并返回前 5 个结果,每个结果都采用 LLM 友好的格式。请在此处阅读有关此新功能的更多信息。
2024-05-08 :默认情况下,图像字幕处于关闭状态,以获得更好的延迟。要打开它,请在请求标头中设置x-with-generated-alt: true
。
2024-05-03 : 我们终于解决了 4 月 29 日以来的 DDoS 攻击。现在我们的 API 比以往更加可靠和可扩展!
2024-04-24 :您现在可以使用标头对 Reader API 进行更细粒度的控制,例如使用 HTTP 代理转发 cookie。
2024-04-15 : 阅读器现在支持图像阅读了!它为指定 URL 处的所有图像添加标题,并添加Image [idx]: [caption]
作为 alt 标记(如果它们最初缺少 alt 标记)。这使得下游法学硕士能够在推理、总结等方面与图像进行交互。请参阅此处的示例。
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
r.jina.ai
进行完整的网站抓取(Google Colab)s.jina.ai
进行网络搜索只需将https://s.jina.ai/
添加到您的搜索查询中即可。请注意,如果您在代码中使用此内容,请确保首先对您的搜索查询进行编码,例如,如果您的查询是Who will win 2024 US presidential election?
那么你的网址应该是这样的:
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
,例如:
卷曲 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com'
我们强烈建议使用代码生成器来探索 Reader API 的不同参数组合。
正如您在上面所看到的,可以使用请求标头控制 Reader API 的行为。这是支持的标头的完整列表。
您可以通过x-with-generated-alt: true
标头启用图像标题功能。
您可以要求 Reader API 通过x-set-cookie
标头转发 cookie 设置。
请注意,带有 cookie 的请求不会被缓存。
您可以通过x-respond-with
标头绕过readability
过滤,具体来说:
x-respond-with: markdown
返回 markdown而不经过reability
x-respond-with: html
返回documentElement.outerHTML
x-respond-with: text
返回document.body.innerText
x-respond-with: screenshot
返回网页截图的URL
您可以通过x-proxy-url
标头指定代理服务器。
您可以通过x-cache-tolerance
标头(以秒为单位的整数)自定义缓存容错性。
您可以通过x-no-cache: true
标头(相当于x-cache-tolerance: 0
)绕过缓存页面(生命周期 3600 秒)。
如果您已经知道目标页面的 HTML 结构,则可以指定x-target-selector
或x-wait-for-selector
来指示 Reader API 关注页面的特定部分。
通过将x-target-selector
标头设置为 CSS 选择器,Reader API 将返回匹配元素中的内容,而不是完整的 HTML。当自动内容提取无法捕获所需内容并且您可以手动选择正确的目标时,设置此标头非常有用。
通过将x-wait-for-selector
标头设置为 CSS 选择器,Reader API 将等到匹配的元素呈现后再返回内容。如果您已经指定了x-wait-for-selector
,并且您打算等待相同的元素,则可以省略此标头。
r.jina.ai
进行单页应用程序 (SPA) 抓取如今许多网站都依赖 JavaScript 框架和客户端渲染。通常称为单页应用程序 (SPA)。得益于 Puppeteer 和无头 Chrome 浏览器,Reader 本身就支持获取这些网站。然而,由于某些 SPA 开发的特定方法,可能需要采取一些额外的预防措施。
根据 Web 标准的定义,URL 中#
之后的内容不会发送到服务器。要缓解此问题,请在正文中使用带有url
参数的POST
方法。
卷曲 -X POST 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
一些 SPA,甚至一些严格来说不是 SPA 的网站,可能会在稍后动态加载主要内容之前显示预加载内容。在这种情况下,Reader 可能会捕获预加载内容而不是主要内容。为了缓解这个问题,以下是一些可能的解决方案:
x-timeout
当显式指定超时时,Reader 将不会尝试提前返回,而是等待网络空闲,直到达到超时。当目标网站最终出现网络空闲时,这非常有用。
卷曲 'https://example.com/' -H 'x-timeout: 30'
x-wait-for-selector
当显式指定 wait-for-selector 时,Reader 将等待指定 CSS 选择器的出现,直到达到超时。当您确切知道要等待哪个元素时,这非常有用。
卷曲 'https://example.com/' -H 'x-wait-for-selector: #content'
当您发现标准模式提供的结果不完整时,流模式非常有用。这是因为 Reader 会等待更长的时间,直到页面稳定呈现。使用accept-header来切换流模式:
卷曲-H“接受:文本/事件流” https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
数据以流的形式出现;每个后续块都包含更完整的信息。最后一个块应该提供最完整和最终的结果。如果您来自法学硕士,请注意,这是与法学硕士的文本生成流不同的行为。
例如,比较下面这两个curl 命令。您可以看到流式传输模式最终为您提供了完整的信息,而标准模式则不然。这是因为该特定站点上的内容加载是在页面完全加载后由某些 js 触发的,而标准模式“太快”返回页面。
curl -H 'x-no-cache:true' https://access.redhat.com/security/cve/CVE-2023-45853 curl -H“接受:text/event-stream”-H 'x-no-cache:true' https://r.jina.ai/https://access.redhat.com/security/cve/CVE-2023 -45853
注意:
-H 'x-no-cache: true'
仅用于演示目的以绕过缓存。
如果您的下游 LLM/代理系统需要立即交付内容或需要分块处理数据以交错 I/O 和 LLM 处理时间,则流模式也很有用。这允许更快的访问和更有效的数据处理:
Reader API: streamContent1 ----> streamContent2 ----> streamContent3 ---> ...
| | |
v | |
Your LLM: LLM(streamContent1) | |
v |
LLM(streamContent2) |
v
LLM(streamContent3)
请注意,就完整性而言: ... > streamContent3 > streamContent2 > streamContent1
,每个后续块都包含更完整的信息。
这还为时过早,结果并不是真正“有用”的 JSON。它仅包含三个字段url
、 title
和content
。尽管如此,您可以使用accept-header来控制输出格式:
curl -H“接受:application/json” https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
JSON 模式在s.jina.ai
中可能比r.jina.ai
更有用。对于 JSON 模式的s.jina.ai
,它以列表形式返回 5 个结果,每个结果的结构为{'title', 'content', 'url'}
。
该页面中缺少alt
标签的所有图像都可以由 VLM(视觉语言模型)自动添加标题,并格式化为!(Image [idx]: [VLM_caption])[img_URL]
。这应该为您的下游纯文本法学硕士提供足够的提示,将这些图像纳入推理、选择和总结中。使用 x-with- generated-alt 标头来切换流模式:
卷曲-H“X-With-Generate-Alt:true” https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
您将需要以下工具来运行该项目:
Node v18(Node 版本 >18 的构建失败)
Firebase CLI ( npm install -g firebase-tools
)
对于后端,请转到backend/functions
目录并安装 npm 依赖项。
git clone [email protected]:jina-ai/reader.gitcd 后端/函数 npm 安装
thinapps-shared
子模块是什么?您可能会注意到对thinapps-shared
子模块的引用,这是我们用来在产品之间共享代码的内部包。虽然它不是开源的,也不是 Reader 功能的组成部分,但它主要有助于装饰器、日志记录、秘密管理等。现在请随意忽略它。
也就是说,这是https://r.jina.ai
背后的单一代码库,因此每次我们在这里提交时,我们都会将新版本部署到https://r.jina.ai
。
请针对您遇到问题的 URL 提出问题。我们将调查并尝试修复它。
Reader 由 Jina AI 支持并在 Apache-2.0 下获得许可。