【AI】Jina Reader 将URL内容转为Markdown的工具

Jina AI 是一个专注于非结构化数据处理的开源神经搜索框架,它提供了一套完整的工具和框架来简化搜索引擎和推荐系统等应用程序的开发。
Jina 支持视频、图像、文本等多种类型的数据,并允许快速索引和查询。Jina 的核心理念是实现模块化和可插拔式的搜索系统,使得开发者可以专注于业务逻辑而不必从头开始构建底层搜索功能。

Jina Reader

Jina Reader 是 Jina AI 提供的一个 API,它能够将任何 URL 转换为适合大型语言模型(LLM)的标记符格式,优化 LLM 的输出结果,提高性能和资源效率。Jina Reader 使用无头浏览器获取 HTML,然后使用 Mozilla 的可读性软件包等工具来提取网页的主要内容,并使用 regex 和 Turndown 库将清理后的 HTML 转换为 markdown。这个工具解决了 LLM 与网络信息接地时遇到的常见挑战,为提取和处理在线内容提供了一种高效的简洁解决方案。

使用Jina Reader读取URL

使用Jina Reader的第一种使用方法,就是读取 URL,将网址前面加上:https://r.jina.ai/,例如https://r.jina.ai/https://r.jina.ai/https://blog.csdn.net/toopoo/article/details/88234293
然后使用浏览器访问或者命令行使用curl等方式访问这个拼接后新网址,浏览器访问后页面如下:
在这里插入图片描述
或者

curl https://r.jina.ai/https://r.jina.ai/https://blog.csdn.net/toopoo/article/details/88234293

使用Jina Reader搜索

Jina 浏览器Web搜索应该已经关闭了,可以使用curl实现(星号要替换为你的key,请自行到Jina官网获取):
curl https://s.jina.ai/When%20was%20Jina%20AI%20founded? \ -H "Authorization: Bearer jina_******************" \ -H "X-Retain-Images: none"
搜索结果更适合LLM处理而不是人类阅读。

Jina API一览

在这里插入图片描述

Jina的其它工具

Jina Python库

pip install Jina
Jina Python库是一款开源的神经搜索库,它利用深度学习技术为各种数据类型提供高效的搜索解决方案。它特别适用于处理非结构化数据,如文本、图片、音频和视频等。

Jina的核心概念包括Flow、Executor和Document等。其中,Flow是Jina的核心组件,负责管理工作流程的各个阶段;Executor是一个可插拔的神经网络处理单元,它执行特定的预处理、处理或后处理任务;Document则是Jina处理的基本单元,代表了各种数据形式。

Jina的设计目标是简化跨多语言、多框架的深度学习应用开发,通过独立的执行单元和灵活的流式架构,让开发者可以轻松地构建和部署大规模的神经搜索应用。

Reader-LM

Jina Reader-LM 是 Jina AI 发布的两个小型语言模型:Reader-LM-0.5B 和 Reader-LM-1.5B。这些模型经过专门训练,可以将原始 HTML 转换为标记符,并且都是多语言模型,支持多达 256K 字节的上下文长度。Reader-LM 系列旨在高效地应对将开放网络中原始、嘈杂的 HTML 转换为干净的标记符格式的挑战,重点关注成本效益和性能。这些模型在 HTML 到标记符的转换这一特定任务中的表现优于许多大型模型,而体积却只有它们的几分之一。Reader-LM 专为个人和企业环境的实际应用而设计,使用 Google Colab 可以轻松测试模型,而生产环境则可以利用 Azure 和 AWS 等平台。这些模型非常适合在生产环境中自动从开放网络中提取和清理数据,通过将原始 HTML 转换为简洁的标记符,Reader-LM 实现了高效的数据处理,使下游 LLM 更容易从网络内容中总结、推理和生成见解。

Jina 中,可以使用 executors 来实现将分词转为词向量的功能。常见的词向量模型有 Word2Vec、GloVe、FastText 等,这里以使用预训练的 Word2Vec 模型为例。 首先,在 `jina/exectuors/` 目录下创建一个新的 Python 文件,例如 `word2vec.py`。然后,导入 gensim 库和 BaseExecutor 类: ```python from gensim.models import KeyedVectors from jina.executors import BaseExecutor ``` 在 `word2vec.py` 文件中,定义一个 Word2VecExecutor 类,继承自 BaseExecutor 类,用于加载预训练的 Word2Vec 模型和将分词转为词向量: ```python class Word2VecExecutor(BaseExecutor): def __init__(self, model_path='data/word2vec.bin', *args, **kwargs): super().__init__(*args, **kwargs) self.model_path = model_path self.model = KeyedVectors.load_word2vec_format(model_path, binary=True) def encode(self, data, *args, **kwargs): return self.model[data] ``` 在 `__init__` 方法中,加载预训练的 Word2Vec 模型。在 `encode` 方法中,将分词作为输入数据,使用模型将其转为词向量,并返回结果。 最后,将这个 executor 添加到 Jina 流程中。在 `jina/config.yml` 文件中添加以下代码: ```yaml executors: - name: word2vec py_modules: word2vec metas: py_modules_version: '1.0' parameters: model_path: data/word2vec.bin flows: encode: uses: word2vec ``` 这个配置文件中,定义了一个名为 `word2vec` 的 executor,并指定预训练模型的路径。在 `flows` 中,使用 `word2vec` executor 将输入数据转为词向量。 现在,使用以下代码启动 Jina: ```bash jina pod --uses config.yml --port-in 55555 --port-out 55556 ``` 在另一个终端中,可以使用以下代码测试这个 executor: ```python from jina import Client, Document client = Client(port=55555) doc = Document(text='hello world') resp = client.encode([doc], output_fn=lambda x: x[0].embedding) print(resp) ``` 这个代码会将字符串 `'hello world'` 转为词向量,并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值