LangChain Agent v0.2.0简明教程 (中)

4. Retrieval

许多LLM需要使用特定用户的外部数据,这些数据不属于模型训练集的一部分。实现这一目标的主要方法是通过检索增强生成(RAG)。在此过程中,将检索外部数据,然后在执行生成步骤时将其传递给 LLM 。这包含几个关键模块:

在这里插入图片描述

4.1 Document loaders

Document loaders加载来自许多不同来source的文档。LangChain 提供 100 多种不同的文档加载器,并与该领域的其他主要提供商(例如 AirByte 和 Unstructed)集成。LangChain 提供了从所有类型的位置(私有 S3 存储桶、公共网站)加载所有类型文档(HTML、PDF、代码)的集成。收录了海量的第三方Document loaders。例如,有用于加载简单.txt文件的,用于加载相对结构化的markdown文件的,用于加载任何网页文本内容,甚至用于加载解析YouTube视频的脚本。(旧版本在langchain.document_loaders,新版本在langchain_community.document_loaders

使用Document loaders可以将源中的数据加载为DocumentDocument由一段文本和相关的元数据组成

TextLoader可以将任意文本文件加载为纯文本字符串元数据metadata,其中元数据包含source路径信息metadata={'source': '/home/pgao/yue/test.py'}

from langchain_community.document_loaders import TextLoader
loader = TextLoader(file_path)
print(loader.load())
# Document(page_content="xxx", metadata="xx")

JSONLoader指定的jq 架构来解析 JSON 文件(JSON Lines是一种文件格式.jsonl,其中每一行都是有效的 JSON 对象)。jq_schema可以选择加载的字段,jq_schema=‘.’加载整个json文件加载.jsonl文件时需要设置json_lines=True

from langchain_community.document_loaders import JSONLoader
from pprint import pprint

loader = JSONLoader(
    file_path='/home/pgao/yue/StyleDiff-Agent/results/dance_long/sd_prompts.json',
    jq_schema='.content',
    text_content=False)
data = loader.load()
pprint(data)

loader = JSONLoader(
    file_path='./example_data/facebook_chat_messages.jsonl',
    jq_schema='.content',
    text_content=False,
    json_lines=True)
data = loader.load()
4.2 Text Splitter

当我们加载Document到内存后,我们通常还会希望将他们尽可能的结构化 / 分块,以进行更加灵活的操作

最简单的例子是,我们很多时候都需要将一个长文档拆分成更小的块,以便放入模型的上下文窗口中;LangChain有许多内置的Document transformers(大部分都是Text Spliter,旧版本在langchain.document_loaders中,新版本在langchain.text_splitter中),可以轻松地拆分、合并、筛选和以其他方式操作文档,一些常用的Document transformers如下:

在这里插入图片描述

对于一般文本,默认推荐使用RecursiveCharacterTextSplitter文本分割器。它由字符列表参数化。它尝试按顺序分割它们,直到块足够小。默认列表是 ["\n\n", "\n", " ", ""]. 这样做的效果是尝试将所有段落(然后是句子,然后是单词)尽可能长时间地放在一起,因为这些通常看起来是语义相关性最强的文本片段,得到的text是分割好的str的list

# This is a long document we can split up.
with open("/home/pgao/yue/loveu-tgve-2023/README.md") as f:
  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: fontmin-v0.2.0-win64.zip是一个字体转换工具,它可以将TTF和OTF格式的字体文件转换成其他格式的字体文件,比如说EOT、SVG、WOFF、WOFF2等。这个工具主要用于Web前端开发,因为Web页面使用不同格式的字体文件可以提高不同浏览器的兼容性和网站的渲染速度。Fontmin-v0.2.0-win64.zip实现了优质的字体压缩和优化算法,可以把字体文件大小压缩到极限,同时不影响字体的显示效果。此外,这个工具还支持多风格、多语言的字体转换,并且可以根据用户自定义的字符集,仅提取其需要的文字部分进行转换,减小字体文件的大小。总之,fontmin-v0.2.0-win64.zip是一个非常实用的字体转换工具,可以帮助Web前端开发者在字体选择和转换方面更加灵活和高效。 ### 回答2: fontmin-v0.2.0-win64.zip 是一个字体压缩工具,可用于压缩字体文件,降低字体文件大小,减少字体加载时间,提高网页性能。这个工具适用于 Web 前端开发者和设计师,可以帮助他们优化网站字体的加载速度,提高用户的访问体验。该工具支持 TrueType 和 OpenType 字体格式,并提供了一系列的字体转换、合并和优化功能,例如子集化、映射、字符替换、字形优化等等,用户可以根据自己的需要进行设置和调整。在使用这个工具的时候,用户应该遵循一定的规范,例如选择合适的字体、合理设置字体大小和字体样式、压缩字体文件大小、减少字体文件的下载次数等等,这样才能使网页字体达到最佳的性能表现,增强网站的可用性和访问效果。总之,fontmin-v0.2.0-win64.zip 是一个非常实用的字体优化工具,可以为 Web 前端开发者和设计师带来很大的帮助,提高网站的用户体验,减少字体加载时间,优化网页性能,是一个值得推荐的工具。 ### 回答3: Fontmin-v0.2.0-win64.zip是一个字体压缩工具,可以将大型字体文件压缩成小型字体文件。这样做有助于在Web应用程序快速加载字体。字体文件使用了大量的带宽,因此压缩文件减少了网络传输时间,提高了网站速度。Fontmin-v0.2.0-win64.zip是Windows系统下的版本,它可以在64位操作系统上运行。它使用的是Node.js和npm来运行,所以用户需要安装它们才能使用Fontmin-v0.2.0-win64.zip。使用Fontmin-v0.2.0-win64.zip的好处在于压缩的字体在品质上不会有太大的损失。压缩后的字体文件的大小要小得多,但它们在页面上看起来几乎与原始文件相同。这使Web开发人员可以通过减少字体文件的大小来提高页面的性能,而不会减小字体的外观质量。总之,Fontmin-v0.2.0-win64.zip是一个非常实用的工具,能够帮助Web开发人员改善网站的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuezero_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值