RAG 在企业应用中落地的难点与创新分享

在2024稀土开发者大会-AI Agent与应用创新分会上,我有幸分享了我们团队在企业应用中实施RAG(检索增强生成)的难点与创新。希望通过这篇文章,与大家探讨我们在实践中遇到的问题和解决方案,为从事相关工作的朋友提供一些新的思路。

一、企业应用中实施的四大难点

1. 文件解析的挑战

在企业环境中,文件解析是实施RAG的第一步,也是关键的一步。如果文件解析做不好,后续的检索、向量化等工作都无从谈起。

老旧文件格式的解析:我们发现,在许多国企和特定行业中,仍然存在大量的老旧文件格式,如.doc(非.docx)等。市面上的许多解析工具并不支持这些格式,这需要我们投入额外的精力进行支持和兼容。

PDF表格解析:在金融、标准化工业等领域,PDF中的表格解析是一个刚需。复杂的表格结构、合并单元格、跨行跨列等情况增加了解析的难度。为此,我们基于Apache PDFBox进行了二次开发,成功实现了对复杂表格的准确解析。

OCR的触发时机:对于包含图文混排的文件,何时启动OCR是一个需要深思的问题。过早或过晚都会影响解析效率和准确性。

布局识别的复杂性:对于一些特殊的文件,如机票、票据等,需要进行布局识别,以理解不同区域所代表的信息。这超出了传统OCR的能力范围,需要更高级的技术支持。

2. 结构化数据的融合

在实际企业应用中,很少有场景是纯粹的非结构化数据处理。通常需要与企业现有的结构化数据库进行融合。

与关系型数据库的融合:大模型在处理结构化数据时,存在一定的局限性,尤其是在处理复杂逻辑和高精度查询时。为此,我们保留了原有的结构化数据结构,通过提取元数据和资源描述,结合Function Call,实现了自然语言与结构化数据的融合。

Text-to-SQL的现状与挑战:尽管Text-to-SQL被视为未来的解决方案,但目前在处理复杂逻辑和企业级应用时,仍存在许多挑战,需要更多的技术突破。

3. 索引建立过程中的处理

在资源有限的情况下,我们需要在有限的硬件条件下实现高效的索引和检索。

基于元数据的检索范围缩小:通过在文件上传时提取元数据(如文件名、属性、标题等),并在查询时使用命名实体识别(NER)模型,我们能够缩小检索范围,提高检索准确性。

使用NER模型提高准确性:NER模型能够帮助我们理解用户的查询意图,进而在大量的文档中快速定位相关内容。

4. 使用Rerank提升检索结果

为了提高检索结果的准确性,我们在检索后增加了Rerank(重排序)步骤。

使用密度函数优化得分:通过计算检索得分的密度函数,我们能够自动截断低相关性的结果,只保留最相关的文档。

在问答环节的应用:在问答系统中,我们使用Rerank确保返回的原文与大模型生成的答案高度匹配,避免了答案与原文不一致的问题。

二、应用中的创新案例

1. 金融研报的应用创新

在金融领域,研报的撰写需要耗费大量时间和精力。我们开发了一款工具,允许用户将数百份文件上传至系统,然后通过自然语言提问,如“这家公司最近3年的复合增长率是多少?”,系统会给出准确的答案并提供原文参考。

这大大缩短了研报撰写的时间,从原来的三周缩短到几个小时。同时,系统还能生成初步的研报草稿,供分析师进一步润色和完善。

2. 零售领域的创新应用

Touch-V哆啦A梦助力导购:在零售业,尤其是拥有大量SKU的商店,导购人员很难快速匹配客户的复杂需求。通过我们的系统,导购只需输入客户的需求,系统就能从数万个SKU中筛选出最合适的产品。

装修设计中的即时反馈:在装修设计领域,客户的需求变化频繁,传统的沟通方式效率低下。通过我们的应用,设计师可以在平板电脑上实时与客户互动,根据客户的反馈即时调整设计方案,显著提高了效率。

3. 规则预审的应用创新

合同预审的自动化:大型企业在合同审查上耗费大量人力。我们的系统能够根据预设的规则,对合同进行自动审查,标记出需要注意的条款,减少了法务人员的工作量,加快了合同审批流程。

项目评审中的规则应用:在项目评审中,我们的系统能够根据不同的评审规则,对项目文件进行自动化的审查和评估,提高了评审的客观性和效率。

三、总结与思考

在大模型应用落地的实践中,我们深刻体会到,要想做好AI在企业中的应用,需要具备以下三个特点:

  1. 功能小:专注于具体的、可量化的功能,解决实际问题,而非追求大而全。

  2. 质量高:确保应用的准确性和可靠性,在现有技术条件下,力求做到最好。

  3. 价值大:专注于为客户创造实际价值,解决他们最关心的问题。

在与客户合作的过程中,我们也认识到,沉淀大量的应用场景是企业服务的核心竞争力。这不仅能够帮助我们更好地理解客户需求,也使我们在技术迭代和模型升级中,始终保持领先。

展望未来,随着大模型技术的不断发展,我们期待能有更多的技术突破,如多模态识别、更加精准的Text-to-SQL等。这些进步将为企业应用带来更大的可能性,也为我们解决更多的实际问题提供了技术支持。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/423810.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python做游戏好用吗

Python做游戏是完全可以的,而且也非常简单,有一个专门针对游戏开发的平台(模块)—pygame,允许开发人员快速设计游戏而又摆脱了低级语言的束缚,下面我简单介绍一下这个模块的安装和使用: 1、首先…

lightdm , xrandr , startx 桌面管理器,窗口管理器

问题: 了解这几个的含义。 显示服务器 这个不是很明白 显示管理器, 知道就行了,也不是很明白。 窗口管理器。 桌面管理器。 这个其实就是 桌面环境了, 我们的板卡上使用的是xface 。 这个 xface 是一个集合,这里面…

CentOS安装Hadoop系列

安装Hadoop 1、安装SDK 2、Wget下载安装包到指定目录 3、选择hadoop的配置模式,单机模式,伪集群模式,集群模式 1、查找APACHE下载官网,搜索hadoop,进入目录,找到common目录,下载对应版本 国内,…

锁表导致系统挂了,谨慎DDL操作

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、 高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

整合Redis和RedisCacheManger

整合redis springboot在现在的版本中操作Redis数据库用到了lettuce,而不是Jedis,他们各有各的特点。Jedis以Redis命令作为方法名称,学习成本低,简单实用。但是Jedis实例是线程不安全的,多线程环境下需要基于连接池来使…

2-94 基于matlab的最佳维纳滤波器的盲解卷积算法

基于matlab的最佳维纳滤波器的盲解卷积算法。维纳滤波将地震子波转换为任意所需要的形态。维纳滤波不同于反滤波,它是在最小平方的意义上为最 佳。基于最佳纳滤波理论的滤波器算法是莱文逊(Wiener—Levinson)算法。程序提供了4种子波和4种期望输出:零延迟…

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数 一、环境说明二、页面之间相互传参 一、环境说明 DevEco Studio 版本: API版本:以12为主 二、页面之间相互传参 说明: 页面间的导航可以通过页面路由router模块来实现。页面路由模块根据页…

用Kimi输出流程图

1.输入 我希望设计一个ERP系统,请帮我简单列一个流程图,用mermaid输出2.输出

这才几天,京东又又又又又又加薪了!

京东 今天的最新消息,京东又又又又又加薪了。 距离我们 京东宣布大幅上调校招薪资 的推文发布才一周多点的时间,京东又宣布加薪了。 好家伙,算上这次,光 2024 年京东就已经宣布了 6 次调薪了: 2024 年初,京…

全志T113方案OTA

1、目前使用的flash为128M,比较小,使用AB升级方式感觉空间不够,所以使用recovery升级linux 2、添加recovery分区 全志提供的SDK本来是不支持打包recovery分区的,需要修改sys_partition.fex,size也需要修改&#xff0c…

Springcould -第一个Eureka应用 --- day02

标题 Eureka工作原理Spring Cloud框架下的服务发现Eureka包含两个组件,分别是:Eureka Server与Eureka Client。Eureka Server:Eureka Client: 搭建Eureka Server步骤:步骤1:创建项目,引入依赖步…

第307题|快速掌握 反常积分敛散性判定的方法|武忠祥老师每日一题

解题思路:先判断这个反常积分的敛散性,再讨论a的取值范围; 判断反常积分的敛散性,我们通常有三个方法: (1)根据定义,通常在原函数比较好求的情况下,可以根据定义 (2&am…

Web3的崛起与智能合约的角色

随着Web3的发展,去中心化网络逐渐取代了以往的集中控制互联网模式。这一转变不仅强调了用户的自治权和隐私保护,还引入了智能合约这一核心技术。智能合约基于区块链技术,能够自动执行合约条款,无需中介干预,从而确保了…

低代码-赋能新能源汽车产业加速前行

在“双碳”战略目标的引领下,全球新能源汽车产业正经历着前所未有的发展和变革,新能源汽车整车制造成为绿色低碳转型的重要领域。在政府的大力扶持下,新能源整车制造领域蓬勃发展,已成为全球汽车产业不可逆转的重要趋势。新能源汽…

数据结构修炼——顺序表和链表的OJ题练习

目录 一、顺序表相关OJ题1 移除元素题目解析 2 合并两个有序数组题目解析 二、链表相关OJ题1 移除链表元素题目解析 2 反转链表题目解析 3 链表的中间结点题目解析 4 合并两个有序链表题目解析 5 链表的回文结构题目解析 6 相交链表题目解析 7 环形链表的判断题目解析 8 环形链…

性能诊断的方法(五):架构和业务诊断

关于性能诊断的方法,我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手,包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么,这里我们归纳了自上而下的资源…

动态规划前---选----

前言&#xff1a;基本的算法思路还是先看数据范围&#xff0c;接着看能不能用动态规划来做&#xff0c;刚刚好这个题目可以套用前—选— 题目地址 #include<bits/stdc.h> using namespace std;#define int long long int n,m; const int N (int)305; int dp[N][N]; // 前…

Android V 广播注册和配置注意事项问题

现象 在Android V平台上&#xff0c;应用注册非Protected广播时&#xff0c;如果没有加导出flag会抛出异常导致进程crash。 E/AndroidRuntime: FATAL EXCEPTION: main java.lang.SecurityException: com.demo.myapplication: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORT…

MySQL record 03 part

插入表数据&#xff1a; 一般情况下&#xff0c;向表中添加新的记录&#xff0c;应该包含此表的所有字段&#xff0c;也就是应该给表的所有字段添加值&#xff0c; 1.使用insert into语句&#xff0c;指定字段名&#xff08;可以是所有的字段&#xff0c;也可以是某几个字段&am…

scratch中秋节——孔明灯祈福

小虎鲸Scratch资源站-免费少儿编程Scratch作品源码,素材,教程分享网站! 中秋节是中国的传统佳节&#xff0c;象征着团圆与美好。在这个特别的节日里&#xff0c;除了赏月、吃月饼&#xff0c;放飞孔明灯也是一种独特的祈福方式。而如今&#xff0c;你可以在小虎鲸Scratch资源站…