RAG应用开发实战(01)-RAG应用框架和解析器

这篇具有很好参考价值的文章主要介绍了RAG应用开发实战(01)-RAG应用框架和解析器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 开源解析和拆分文档

第三方的工具去对文件解析拆分,去将我们的文件内容给提取出来,并将我们的文档内容去拆分成一个小的chunk。常见的PDF word mark down, JSON、HTML。都可以有很好的一些模块去把这些文件去进行一个东西去提取。

优势

  • 支持丰富的文档类型
  • 每种文档多样化选择
  • 与开源框架无缝集成

RAG应用开发实战(01)-RAG应用框架和解析器

但有时效果非常差,来内容跟原始的文件内容差别大。

2 PDF格式多样性

RAG应用开发实战(01)-RAG应用框架和解析器

复杂多变的文档格式,提高解析效果十分困难

3 复杂文档格式解析问题

文档内容质量将很大程度影响最终效果,文档处理过程涉及问题:

内容不完整

对文档的内容进行提取的时候,可能会发现提取出来的文档它的内容是会被截断的。跨页形式,提取出来它的上下页其实两部分内容就会被截断,导致文档内部分内容丢失,我们去解析图片或者是说双栏复杂的这种格式。它会有一部分内容的丢失。

内容错误

同一页PDF文件可能存在文本、表格、图片等混合。

PDF解析过程中,同一页它不同段落其实会也会有不同标准的一些格式。按通用格式去提取解析就遇到同页不同段落格式不标准情况。

文档格式

像常见PDF md文件,需要去支持把这些各类型的文档格式的文件都给提取。

边界场景

代码块还有单元格这些,都是我们去去解析一个复杂文档格式中会遇到一些问题。

4 PDF内容提取流程

RAG应用开发实战(01)-RAG应用框架和解析器

5 为什么解析文档后需要做知识片段拆分

Token限制

  • 绝大部分开源限制 <= 512 Tokens
  • bge_base、e5_large、m3e_base、text2vector_large_chinese、multilingnal-e5-base..

效果影响

  • 召回效果:有限向量维度下表达较多的文档信息易产生失真
  • 回答效果:召回内容中包含与问题无关信息对LLM增加干扰

成本控制

  • LLM费用:按照Token计费
  • 网络费用:按照流量计费

6 Chunk拆分对最终效果的影响

Chunk太长

信息压缩失真

Chunk太短

表达缺失上下文;匹配分数容易变高

Chunk跨主题

内容关系脱节

原文连续内容(含表格)被截断

单个Chunk信息表达不完整,或含义相反

干扰信息

如空白、HTML、XML等格式,同等长度下减少有效信息、增加干扰信息

主题和关系丢失

缺失了主题和知识点之间的关系

7 改进知识的拆分方案

RAG应用开发实战(01)-RAG应用框架和解析器

8 腾讯云向量数据库 AI****套件

RAG应用开发实战(01)-RAG应用框架和解析器

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都技术专家,多家大厂后端一线研发经验,在分布式系统、和大数据系统等方面有多年的研究和实践经验,拥有从零到一的大数据平台和基础架构研发经验,对分布式存储、数据平台架构、数据仓库等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&优惠券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化

目前主攻降低软件复杂性设计、构建高可用系统方向。

参考:

  • 编程严选网

本文由博客一文多发平台 OpenWrite 发布!文章来源地址https://www.toymoban.com/news/detail-848206.html

到了这里,关于RAG应用开发实战(01)-RAG应用框架和解析器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链钱包开发(Android篇),深入解析android核心组件和应用框架

    作用: 1、备份更容易。按照比特币的原则,尽量不要使用同一个地址,一个地址只使用一次,这样会导致频繁备份钱包。HD钱包只需要在创建时保存主密钥,通过主密钥可以派生出所有的子密钥。 2、私钥离线更安全。主私钥离线存储,主公钥在线使用,通过主公钥可以派生

    2024年03月24日
    浏览(36)
  • GitHub排名第一《lntellij IDEA软件开发与应用实战手册》限时开源

    IntelliJ IDEA简称IDEA,是Java语言的集成开发环境,在业界被公认为是最好的Java开发工具之一 讲解IntelliJ IDEA的诸多使用技巧,但事实上想要覆盖所有的操作要点是不可能的事情,因此笔者挑选了一些需要掌握及建议掌握的知识内容。 本章主要对IntelliJ IDEA进行了简要的特性描述

    2024年04月16日
    浏览(36)
  • Spring是一个开源的Java开发框架,它提供了一种快速、简单的方式来开发企业级应用程序

    Spring是一个开源的Java开发框架,它提供了一种快速、简单的方式来开发企业级应用程序。Spring的主要优点包括简化Java EE开发、提供依赖注入和面向切面编程等功能。以下是Spring的一些核心特性: 依赖注入(DI):Spring通过DI机制,将对象的依赖关系注入到应用程序中,简化了

    2024年02月03日
    浏览(53)
  • 【AI大模型应用开发】【RAG评估】1. 通俗易懂:深度理解RAGAS评估方法的原理与应用

    大家好,我是同学小张,日常分享AI知识和实战案例 欢迎 点赞 + 关注 👏, 持续学习 , 持续干货输出 。 +v: jasper_8017 一起交流💬,一起进步💪。 微信公众号也可搜【同学小张】 🙏 本站文章一览: 上篇文章【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、

    2024年04月13日
    浏览(29)
  • 企业级通用低代码开发平台——一二三应用开发平台发布1.0开源版本,前端vue3+element plus,框架vue-element-plus-admin,后端ssm+MybtaisPlus

    早些时候,也就是三月初的时候,定了一个长期计划,即再启程,研发应用开发平台(详见本专栏第一篇https://blog.csdn.net/seawaving/article/details/129334330)。 经过大概两个月的努力,低代码配置功能部分完成了雏形,并使用配置功能,将系统管理模块实现出来了,相当于进行了初

    2024年02月05日
    浏览(49)
  • 01-Spark的Local模式与应用开发入门

    Spark 运行模式之一,用于在本地机器上单机模拟分布式计算的环境。在 local 模式下,Spark 会使用单个 JVM 进程来模拟分布式集群行为,所有 Spark 组件(如 SparkContext、Executor 等)都运行在同一个 JVM 进程中,不涉及集群间通信,适用本地开发、测试和调试。 本地开发和测试 :

    2024年03月22日
    浏览(30)
  • MS VC 2022开发Linux应用记录之01篇

    安装MSVS2022的时候勾上对开发Linux C++程序的选项 在Windows中安装Oracle Virtual Box程序,在里面安装Ubuntu最新稳定版,要选择多个CPU核 在VirtualBox中添加一个网卡,选择Host Only 在虚拟机中使用ifconfig命令,在宿主机中使用ipconfig, 可以看到两者存在同一网段的网址 在虚拟机中安装必要开

    2024年02月16日
    浏览(22)
  • 云原生应用开发框架系列

    作者:禅与计算机程序设计艺术 随着互联网的飞速发展,互联网软件服务的复杂性也越来越高,服务的可靠性、可用性、伸缩性也面临着更加严峻的考验。为应对这一挑战,云计算技术已经成为构建分布式和弹性化的软件服务的关键手段。而Kubernetes、OpenShift等开源项目帮助

    2024年02月08日
    浏览(34)
  • 基于最新的MAUI混合VUE3开发Android应用(2022-11-01)

        因为最近自己想着要整一个手机端应用来玩玩,先是使用了Uni-APP开发但是发现不怎么好使,开发了几天后浪费了大量时间结果在打包后操作HTML Document的时候没有这个属性,好吧或许是因为我没仔细看Uni-App文档它并不支持打包后在APP和小程序中支持Document, 这是没仔细看

    2023年04月14日
    浏览(69)
  • 桌面应用开发有哪些主流框架?

    受益于开源技术的发展,以及响应快速开发的实际业务需求,跨平台开发不仅限于移动端跨平台,桌面端虽然在市场应用方面场景不像移动端那么丰富,但也有市场的需求。 相对于个人开发者而言,跨平台框架的使用,主要为了满足以下三个主要能力: 生产力提升 :框架能

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包