网站如何在百度搜索dede网站qq类源码

张小明 2026/1/12 3:55:26
网站如何在百度搜索,dede网站qq类源码,如何设计推广方案,北京做网站公司哪家好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进行投诉反馈,一经查实,立即删除!

常州找工作哪个网站好正规的网页制作

面对海量学术文献,你是否还在为手动下载论文、处理动态页面而烦恼?Katana爬虫框架正是为解决这些痛点而生,它不仅能高效爬取学术论文,还能自动化完成文献收集,是现代研究者的必备工具。 【免费下载链接】katana 下一代…

张小明 2026/1/2 17:57:40 网站建设

h5网站怎么做的吗网站条形码如何做

管理平台证书管理站点管理对于运维工程师和开发者来说,Nginx 作为高性能的 Web 服务器和反向代理工具,早已成为技术栈中的核心组件。但传统的 Nginx 配置依赖命令行操作,修改配置、查看日志、管理证书等流程繁琐且容易出错,尤其在…

张小明 2026/1/11 4:26:43 网站建设

重庆有网站公司茶文化网站制作

WinDbg 蓝屏深度解析:从硬件中断异常到驱动缺陷定位当系统崩溃时,谁在“说谎”?你有没有遇到过这样的场景?一台工业控制机突然蓝屏,重启后一切正常,但几小时后又重演。日志里只留下一行冰冷的代码&#xff…

张小明 2025/12/27 17:05:34 网站建设

家庭农场做网站凤岗做网站

LangFlow入门必看:可视化节点连接实现智能对话系统 在构建一个能理解上下文、调用工具、记住用户偏好的AI客服时,你是否曾为层层嵌套的代码结构感到头疼?明明只是想测试一个新的提示词模板,却要反复修改函数参数、重启服务、查看日…

张小明 2025/12/27 18:23:38 网站建设

中国建设银行招聘网站甘肃分行江门营销网站建设

摘要本周学习了可解释机器学习在破解AI“黑箱”中的关键作用,强调其通过局部解释和全局解释两大技术路径,揭示模型决策依据。局部方法针对单次预测提供即时理由,全局方法从整体层面剖析模型逻辑模式Abstract This weeks study focused on the…

张小明 2025/12/27 18:23:40 网站建设

最新网站查询软件开发具体工作内容

市场今年刚看到Manus这种Agent的时候很兴奋,所以他们为什么这么兴奋? Agent这东西又为什么会出现,他到底解决了哪一部分问题?其次,他到底能不能解决这些问题,在解决的过程中的困难与卡点是什么、又要如何解…

张小明 2026/1/2 11:53:15 网站建设