个人网站备案范围网站域名过期不续费

张小明 2026/1/14 14:15:53
个人网站备案范围,网站域名过期不续费,做网站的资料修改,wordpress主体公园01. DocumentTransformer 组件在 LangChain 中#xff0c;使用 文档加载器 加载得到的文档一般来说存在着几个问题#xff1a;原始文档太大、原始文档的数据格式不符合需求#xff08;需要英文但是只有中文#xff09;、原始文档的信息没有经过提炼等问题。如果将这类数据直…01. DocumentTransformer 组件在 LangChain 中使用 文档加载器 加载得到的文档一般来说存在着几个问题原始文档太大、原始文档的数据格式不符合需求需要英文但是只有中文、原始文档的信息没有经过提炼等问题。如果将这类数据直接转换成向量并存储到数据库中会导致在执行相似性搜索和 RAG 的过程中错误率大大提升。所以在 LLM 应用开发中在加载完数据后一般会执行多一步 转换 的过程即将加载得到的 文档列表 进行转换得到符合需求的 文档列表。转换涵盖的操作就非常多例如文档切割、文档属性提取、文档翻译、HTML 转文本、重排、元数据标记等都属于转换。聊天机器人架构/运行流程 如下所示在 LangChain 中针对文档的转换也统一封装了一个基类 BaseDocumentTransformer所有涉及到文档的转换的类均是该类的子类将大块文档切割成 chunk 分块的文档分割器也是 BaseDocumentTransformer 的子类实现。BaseDocumentTransformer 基类封装了两个方法transform_documents()抽象方法传递文档列表返回转换后的文档列表。atransform_documents()转换文档列表函数的异步实现如果没有实现则会委托 transform_documents() 函数实现。在 LangChain 中文档转换组件分成了两类文档分割器(使用频率高)、文档处理转换器(使用频率低老版本写法)。并且目前 LangChain 团队已经将 文档分割器 这个高频使用的部分单独拆分成一个 Python 包哪怕不使用 LangChain 框架本身进行开发也可以使用其文本分割包快速分割数据在使用前必须执行以下命令安装pip install -qU langchain-text-splitters对于文本分割器来说除了继承 BaseDocumentTransformer还单独设置了文本分割器基类 TextSplitter从而去实现更加丰富的功能BaseDocumentTransformer 衍生出来的类图02. 字符分割器基础使用技巧在文档分割器中最简单的分割器就是——字符串分割器这个组件会基于给定的字符串进行分割默认为 \n\n并且在分割时会尽可能保证数据的连续性。分割出来每一块的长度是通过字符数来衡量的使用起来也非常简单实例化 CharacterTextSplitter 需传递多个参数信息如下separator分隔符默认为 \n\n。is_separator_regex是否正则表达式默认为 False。chunk_size每块文档的内容大小默认为 4000。chunk_overlap块与块之间重叠的内容大小默认为 200。length_function计算文本长度的函数默认为 len。keep_separator是否将分隔符保留到分割的块中默认为 False。add_start_index是否添加开始索引默认为 False如果是的话会在元数据中添加该切块的起点。strip_whitespace是否删除文档头尾的空白默认为 True。如果想将文档切割为不超过 500 字符并且每块之间文本重叠 50 个字符可以使用 CharacterTextSplitter 来实现代码如下from langchain_community.document_loaders import UnstructuredMarkdownLoaderfrom langchain_text_splitters import CharacterTextSplitter# 1.构建Markdown文档加载器并获取文档列表loader UnstructuredMarkdownLoader(./项目API文档.md)documents loader.load()# 2.构建分割器text_splitter CharacterTextSplitter(separator\n\n,chunk_size500,chunk_overlap50,add_start_indexTrue,)# 3.分割文档列表chunks text_splitter.split_documents(documents)# 4.输出信息for chunk in chunks:print(f块内容大小:{len(chunk.page_content)},元数据:{chunk.metadata})输出内容Created a chunk of size 771, which is longer than the specified 500Created a chunk of size 980, which is longer than the specified 500Created a chunk of size 542, which is longer than the specified 500Created a chunk of size 835, which is longer than the specified 500块内容大小:251,元数据:{source: ./项目API文档.md, start_index: 0}块内容大小:451,元数据:{source: ./项目API文档.md, start_index: 246}块内容大小:771,元数据:{source: ./项目API文档.md, start_index: 699}块内容大小:435,元数据:{source: ./项目API文档.md, start_index: 1472}块内容大小:497,元数据:{source: ./项目API文档.md, start_index: 1859}块内容大小:237,元数据:{source: ./项目API文档.md, start_index: 2359}块内容大小:980,元数据:{source: ./项目API文档.md, start_index: 2598}块内容大小:438,元数据:{source: ./项目API文档.md, start_index: 3580}块内容大小:293,元数据:{source: ./项目API文档.md, start_index: 4013}块内容大小:498,元数据:{source: ./项目API文档.md, start_index: 4261}块内容大小:463,元数据:{source: ./项目API文档.md, start_index: 4712}块内容大小:438,元数据:{source: ./项目API文档.md, start_index: 5129}块内容大小:542,元数据:{source: ./项目API文档.md, start_index: 5569}块内容大小:464,元数据:{source: ./项目API文档.md, start_index: 6113}块内容大小:835,元数据:{source: ./项目API文档.md, start_index: 6579}块内容大小:489,元数据:{source: ./项目API文档.md, start_index: 7416}使用 CharacterTextSplitter 进行分割时虽然传递了 chunk_size 为 500但是仍然没法确保分割出来的文档一直保持在这个范围内这是因为在底层 CharacterTextSplitter 是先按照分割符号拆分整个文档然后循环遍历拆分得到的列表将每个列表逐个相加直到最接近 chunk_size 窗口大小时则完成一个 Document 的组装。但是如果基于分割符号得到的文本本身长度已经超过了 chunk_size则会直接进行警告并且将对应的文本单独变成一个块。核心代码如下# langchain_text_splitters/character-CharacterTextSplitter::split_textdef split_text(self, text: str) - List[str]:Split incoming text and return chunks.# First we naively split the large input into a bunch of smaller ones.separator (self._separator if self._is_separator_regex else re.escape(self._separator))splits _split_text_with_regex(text, separator, self._keep_separator)_separator if self._keep_separator else self._separatorreturn self._merge_splits(splits, _separator)def _split_text_with_regex(text: str, separator: str, keep_separator: bool) - List[str]:# Now that we have the separator, split the textif separator:if keep_separator:# The parentheses in the pattern keep the delimiters in the result._splits re.split(f({separator}), text)splits [_splits[i] _splits[i 1] for i in range(1, len(_splits), 2)]if len(_splits) % 2 0:splits _splits[-1:]splits [_splits[0]] splitselse:splits re.split(separator, text)else:splits list(text)return [s for s in splits if s ! ]
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站推广的技巧网站报价内容

ComfyUI插件管理终极指南:从安装冲突到高效工作流 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 你是否曾经在ComfyUI中安装插件时遇到依赖冲突?或者因为插件更新失败而影响整个AI绘图工作流&…

张小明 2026/1/10 14:42:42 网站建设

网站建设课程设计的引言手工做衣服网站有哪些

DG-Lab郊狼控制器:颠覆性实时游戏互动惩罚系统 【免费下载链接】DG-Lab-Coyote-Game-Hub 郊狼游戏控制器——战败惩罚 项目地址: https://gitcode.com/gh_mirrors/dg/DG-Lab-Coyote-Game-Hub 在游戏直播行业竞争日益激烈的今天,如何创造独特的观众…

张小明 2026/1/10 14:42:43 网站建设

北京市住房城乡建设部网站建设旅游网网站软件

PyTorch-CUDA-v2.9镜像能否运行NeRF?三维重建训练指南 在虚拟现实、数字孪生和自动驾驶等领域,我们正见证一场由神经辐射场(Neural Radiance Fields, NeRF)引发的三维重建革命。这项技术仅凭一组多视角二维图像,就能生…

张小明 2026/1/10 14:45:09 网站建设

做网站导航多大字号附近做网站的公司

Ventoy革命性启动盘制作:一劳永逸的多系统启动解决方案 【免费下载链接】Ventoy 一种新的可启动USB解决方案。 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 还在为每个系统镜像都要重新制作启动盘而烦恼吗?Ventoy这款创新性的启动工…

张小明 2026/1/10 14:42:45 网站建设

崇州网站制作建设网站可以赚钱吗

第一章:Open-AutoGLM 桌面代理的核心概念与架构Open-AutoGLM 是一款开源的桌面智能代理系统,旨在通过本地化大语言模型(LLM)能力,实现对用户操作的理解、规划与自动化执行。该系统结合自然语言理解、任务调度与桌面环境…

张小明 2026/1/10 14:42:45 网站建设

海阔天空网站建设中国建筑材料网

matlab频散曲线源代码 在进行求解之前,可以先在算法中输入材料的属性,比如材料的名称、杨氏模量、密度、泊松比。 今天咱们来扒拉扒拉Matlab里搞频散曲线的代码实现。频散曲线这玩意儿说白了就是波速随频率变化的曲线,搞声学材料或者地震波研…

张小明 2026/1/13 0:21:56 网站建设