微信扫码
与创始人交个朋友
我要投稿
“有可能基于LLMs+SearXNG的问答式搜索会是下一代搜索引擎的发展新趋势”
后来我们也分享了一个《一个AI驱动的搜索引擎,内置SearXNG,也许是未来搜索新姿态,Star 10K!》的开源项目-Perplexica,一个基于LLMs的搜索引擎。
Perplexica的核心原理主要就是利用搜索引擎SearXNG在网络上搜索信息,然后通过机器学习算法对结果进行重新排序,并将搜索结果作为提问词的一部分交由LLMs进行分析汇总。
Perplexica作为整体的LLM搜索和展示解决方案,能够很好的应对公开互联网的信息检索。但是如果是检索企业内部知识库,实现智能问答,这个时候我们就需要采用自建RAG的方案。
目前主流的RAG大多采用向量数据库作为支撑,需要对文档进行分段、然后以向量方式存储,所以在一定程度上也无法很好地应对企业内部网页版(URL)知识数据(因为数据量大,基本都是超过上千toke,分段不太好处理)。如采用爬虫类技术获取网页数据,在数据格式和质量上还是需要进行二次处理,才能具备适合大模型(LLMs)处理要求。
所以,一些时候我们希望,能够有种办法通过URL就能获取的数据和RAG场景结合,最好就是能够对URL的内容还能进行格式化处理,而今天要介绍的工具就是专门应对这个场景的,能够将网页内容转换成适合大型语言模型(LLMs)处理的格式-Reader
? 项目信息
#Github地址https://github.com/jina-ai/reader#项目官网https://jina.ai/
读取(Read)
URL转LLM友好输入:Reader 的核心功能之一是能够将任何给定的 URL 转换成对 LLM 更友好的格式。这意味着它能够提取网页内容,并将其转化为更适合 LLM 处理的形式。例如,它可以将一个包含复杂 HTML 格式的网页转换成纯文本或结构化数据,使 LLM 能够更容易地理解和处理信息。
PDF支持:Reader 在2024年的更新中加入了对任意PDF文件的支持。这意味着现在可以通过提供一个指向PDF文件的URL来获取其内容,这对于需要处理学术论文、报告或手册等非网页内容的应用非常有用。
图片说明:对于页面中缺乏 alt 标签的图像,Reader 可以通过视觉语言模型(VLM)自动为其生成描述,并将这些描述附加到图像URL上,这样LLM就能够“理解”这些图像,并在其推理过程中考虑到图像的信息。
搜索(Search)
网络查询:除了读取功能之外,Reader 还提供了一个搜索接口,允许用户通过 s.jina.ai 加上查询词的形式来搜索互联网上的信息。这一功能使得LLM能够实时获取到最新、最相关的信息。
特定站点搜索:用户可以通过在查询参数中设置 site 属性来限制搜索结果的来源,例如 site=jina.ai 将只返回来自 jina.ai 网站的结果。这为用户提供了一个更精确的搜索方式,尤其是在需要专注于某个特定网站或领域的情况下。
其他特性
网页内容优化:它自动为缺少alt标签的图片生成描述,并以特定格式添加,帮助LLMs更好地理解和利用网页中的图像内容。
请求头定制:用户可以通过设置请求头来控制Reader的行为,例如启用图片描述、设置代理、控制缓存等。
流式传输模式:Reader支持流式传输模式,允许逐步接收页面内容,直到页面完全稳定渲染,这对于动态网页特别有用。
JSON模式:Reader可以输出JSON格式的数据,其中包含URL、标题和内容等字段,便于程序化处理。
https://jina.ai/reader/#demo
确保系统上安装了 Node.js 的 v18 版本。
安装 Firebase CLI。
npm install -g firebase-tools
克隆 Reader 项目的代码库到本地:
git clone git@github.com:jina-ai/reader.git
进入项目的 backend/functions 目录并安装 npm 依赖项:
cd backend/functionsnpm instal
https://r.jina.ai/
读取 URL 内容使用 Reader API 读取网页内容,只需在任何 URL 前加上https://r.jina.ai/。如果想获取维基百科关于人工智能的文章内容并使其适合 LLM 处理,只需访问:
https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence
返回一个格式化的文本版本,去除了原始 HTML 中的标记和脚本,更适合作为 LLM 的输入。
Reader 支持网络搜索,可以直接在网络上搜索给定的查询。这使得 LLM 可以从网络上获取最新的知识信息。例如,如果您想搜索【RAG技术原理】:
https://s.jina.ai/RAG%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86
流模式:如果需要更完整的页面内容,可以使用流模式,它允许 Reader 等待页面上的 JavaScript 执行完毕后再返回内容。可以通过设置Accept: text/event-stream头部来启用流模式。
JSON 模式:Reader 还可以返回 JSON 格式的结果,这在某些应用中可能更有用。可以通过设置Accept: application/json头部来请求 JSON 格式的输出。
请求头:可以通过添加特定的请求头来控制 Reader API 的行为,例如启用图像标题、设置代理服务器、自定义缓存策略等。
单页应用程序:对于使用 JavaScript 框架和客户端渲染的网站(SPA),Reader 原生支持这些网站的抓取。但是,对于某些 SPA,可能需要采取额外的措施,比如指定超时时间或等待特定的 CSS 选择器。
# 读取 URL 内容
curl https://r.jina.ai/https://example.com
# 进行网页搜索
curl https://s.jina.ai/some search query
# 使用流模式
curl -H "Accept: text/event-stream" https://r.jina.ai/https://example.com
# 请求 JSON 格式
curl -H "Accept: application/json" https://r.jina.ai/https://example.com
#Reader提取URL内容函数库def search_url(input):import requests # API的URLurl = 'https://r.jina.ai/'+input # 发送GET请求response = requests.get(url) # 检查请求是否成功if response.status_code == 200:# 打印API响应的内容result = response.textelse:result="查询失败"return result
def search_url(input):
import requests
# API的URL
url = 'https://s.jina.ai/'+input
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 打印API响应的内容
result = response.text
else:
result="查询失败"
return result
将函数库检索后的数据采用AI对话节点(模型最好采用Kimi这类超长文本支持,因为URL或者关键词检索后数据量比较大)返回给用户,最终整体的编排如下:
https://www.cnblogs.com/mtcnn/p/9423425.html
经过Reader+MaxKB应用处理后问答:
在详情页面也能查看到具体的调用过程:
综上所述,Reader 是一个专为提升大型语言模型处理网页内容的能力而设计的工具。本文通过 Reader 和 MaxKB 结合实践,不仅优化了RAG信息的可读性,还增强了知识库实时检索、理解和分析能力。无论是进行网络搜索、内容摘要还是实时数据监控,Reader都能是任何依赖于网络数据的AI系统的理想补充。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-23
如何提高RAG系统准确率?12大常见痛点及巧妙解!
2024-11-23
RAG 2.0性能提升:优化索引与召回机制的策略与实践
2024-11-22
RAG技术在实际应用中的挑战与解决方案
2024-11-22
从普通RAG到RAPTOR,10个最新的RAG框架
2024-11-22
如何使用 RAG 提高 LLM 成绩
2024-11-21
提升RAG性能的全攻略:优化检索增强生成系统的策略大揭秘 | 深度好文
2024-11-20
FastGraphRAG 如何做到高达 20%优化检索增强生成(RAG)性能优化
2024-11-20
为裸奔的大模型穿上"防护服":企业AI安全护栏设计指南
2024-07-18
2024-05-05
2024-07-09
2024-07-09
2024-05-19
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21