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在企业中的应用,需要具备以下三个特点:
-
功能小:专注于具体的、可量化的功能,解决实际问题,而非追求大而全。
-
质量高:确保应用的准确性和可靠性,在现有技术条件下,力求做到最好。
-
价值大:专注于为客户创造实际价值,解决他们最关心的问题。
在与客户合作的过程中,我们也认识到,沉淀大量的应用场景是企业服务的核心竞争力。这不仅能够帮助我们更好地理解客户需求,也使我们在技术迭代和模型升级中,始终保持领先。
展望未来,随着大模型技术的不断发展,我们期待能有更多的技术突破,如多模态识别、更加精准的Text-to-SQL等。这些进步将为企业应用带来更大的可能性,也为我们解决更多的实际问题提供了技术支持。

相关文章:
RAG 在企业应用中落地的难点与创新分享
在2024稀土开发者大会-AI Agent与应用创新分会上,我有幸分享了我们团队在企业应用中实施RAG(检索增强生成)的难点与创新。希望通过这篇文章,与大家探讨我们在实践中遇到的问题和解决方案,为从事相关工作的朋友提供一些…...
苹果CMS海洋CMS那个更容易被百度收录?苹果CMS站群
SEO优化和搜索引擎的友好性常常是网站管理员关注的重点。苹果CMS(maccmscn)和海洋CMS都是国内常见的CMS平台,但在搜索引擎优化(SEO)和百度收录方面,苹果CMS凭借其优秀的插件生态系统,特别是泛目…...
高教社杯数模竞赛特辑论文篇-2013年B题:碎纸复原模型与算法
目录 摘要 一、问题重述 二、问题分析 三、符号说明与模型假设 3.1 符号说明 3.2 模型假设 3.3 假设说明 四、模型的建立与求解 4.1 一维碎纸复原模型 4.1.1 图像的预处理 4.1.2 碎纸特征的提取 4.1.3 基于文字特征的识别序列 4.1.4 碎纸距离的定义 4.1.5 复原 TSP 问题 4.1.6 …...
多线程面试题-28问
1、查询Java有哪些线程? public class MultiThread {public static void main(String[] args) {// 获取 Java 线程管理 MXBeanThreadMXBean threadMXBean ManagementFactory.getThreadMXBean();// 不需要获取同步的 monitor 和 synchronizer 信息,仅获…...
golang学习笔记16——golang部署与运维全攻略
推荐学习文档 golang应用级os框架,欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…...
Unreal Fest 2024 虚幻引擎影视动画制作的普遍问题
———————————————————————————————————————— 本文为Unreal Fest Shanghai2024讲座内容笔记,非本人所著,原演讲人李文磊。 ————————————————————————————————————————…...
【机器学习-四-无监督学习unsupervise learning-聚类算法简介】
无监督学习unsupervise learning 聚类聚类的过程相似度度量方法聚类的方法划分式层次聚类基于密度的聚类 上一节讲的无监督学习,但是很多人可能会很疑惑,没有目标,那算法是怎么学会该怎样分类的呢?今天就简介一下其中的聚类算法。…...
IPv6路由基础
RIPng RIPng是一种较为简单的内部网关协议,是RIP在IPv6网络中的应用。RIPng主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。由于RIPng的实现较为简单,在配置和维护管理方面也远比OSPFv3和IS-IS for IPv6容易,因…...
uniapp开发微信小程序 嵌套(uniapp开发/其他)H5,H5点击跳转微信小程序页面(通信
环境: uniapp开发微信小程序,嵌套webview,H5页面也是用的uniapp框架开发,H5页面点击商品后,需要跳转到微信小程序的详情页面 做法的原因 在微信小程序中使用web-view元素,如果要实现 H5到小程序的通信&am…...
VM虚拟机器配置网络DHCP服务
1、VM虚拟机器网络配置,centos 精简版没有配合网卡,如何配置网络 一、查看网卡信息 使用ip addr或ifconfig -a命令查看系统中现有的网卡设备名称,通常可能是eth0、ens33等类似的名称。 二、编辑网络配置文件 网络配置文件通常位于/etc/syscon…...
使用 jd.item_get API打造可读性商品介绍
在数字化时代,电子商务的蓬勃发展使得商品信息的获取变得至关重要。对于电商平台而言,如何准确、快速地获取商品信息,并以吸引人的方式呈现给消费者,成为提高销售额和用户体验的关键。本文将介绍如何利用 jd.item_get API 获取商品…...
java 通过文件下载地址读取文件内容
需求:读取文件内容,已知文件下载地址 需要引入pdfbox依赖 <dependency> <groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version> </dependency>Override pub…...
打造古风炫酷个人网页:用HTML和CSS3传递笔墨韵味
需要用到的背景大家可以自己找喜欢的风格!!! 当然俺把俺用的背景放到文章最后了哦!!!!! 感谢关注和支持 长期更新哦~~~ 1. 简洁的页面布局:保持优雅和对称 在古风设计中,布局的对称性非常重要…...
vue 项目自适应 配置 px转rem 的插件postcss-pxtorem
1、安装 npm i postcss-plugin-px2rem --save -dev --force找到 postcss.config.cjs 没有的话就新建一个 module.exports {plugins: {// to edit target browsers: use "browserslist" field in package.jsonautoprefixer: {},"postcss-plugin-px2rem":…...
股票程序化交易是,第三方软件申请券商私有接口API的门槛
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
JDK8的一些主要的新特性
JDK8(Java Development Kit 8) 是一个重要的版本,带来了许多显著的特性和改进,极大地提升了 Java 语言的功能性和开发效率。以下是 JDK 8 的一些主要新特性: 一、Lambda 表达式 1.简化匿名内部类的写法,…...
40岁的java程序员,还有出路吗?
目录 前言一、现状与挑战二、出路与机遇三、案例分析与启示四、结语 前言 40岁Java程序员的出路:挑战与机遇并存 在科技日新月异的今天,IT行业始终保持着高速的发展态势,而Java作为其中的重要一员,其地位依然稳固且充满挑战。对…...
【服务器】shell脚本之Docker创建nginx
#!/bin/bash# 定义目标目录和配置文件路径 BASE_DIR"/opt/docker/nginx"ETC_DIR"$BASE_DIR/etc" ETC_CONF_DIR"$ETC_DIR/conf.d" SSL_DIR"$ETC_CONF_DIR/ssl" LOG_DIR"$BASE_DIR/log"HTML_DIR"$BASE_DIR/html"C…...
提取蛋白质复合体结构中组装体的变换矩阵
PDB文件中,组装体变换矩阵(assembly transformation matrices)用于描述多聚体结构中各个单体之间的相对位置和取向。从蛋白质复合体 PDB 数据中提取每个组装体(assembly)的变换矩阵,通常需要解析 PDB 文件中…...
java程序员入行科目一之CRUD轻松入门教程(一)
之前在操作MySQL的时候,都是采用Navicat,或者cmd黑窗口。 无论使用什么方式和MySQL交互,大致步骤是这样的 建立连接,需要输入用户名和密码编写SQL语句,和数据库进行交互 这个连接方式不会变,但是现在需要 基…...
快速上手ANIMATEDIFF PRO:从环境部署到视频导出的完整操作流程
快速上手ANIMATEDIFF PRO:从环境部署到视频导出的完整操作流程 1. 环境准备与快速部署 1.1 硬件要求检查 在开始之前,请确保您的设备满足以下最低配置要求: 显卡:NVIDIA RTX 3060及以上(推荐RTX 4090)显…...
51单片机按键控制实战:从消抖到状态切换的完整代码解析
51单片机按键控制实战:从消抖到状态切换的完整代码解析 在嵌入式系统开发中,按键控制是最基础也最关键的交互方式之一。无论是简单的家电控制面板,还是复杂的工业设备操作界面,按键作为人机交互的桥梁,其稳定性和响应速…...
基于YOLOv12与Flask-SocketIO的番茄成熟度Web端实时检测系统设计与性能对比
1. 为什么需要番茄成熟度实时检测系统? 在农业生产中,番茄成熟度的准确判断直接影响采摘效率和果实品质。传统的人工检测方式存在几个明显痛点:首先,人工判断主观性强,不同工人对"完全成熟"的标准可能不一致…...
10分钟搭建FunASR智能语音点餐系统:餐饮服务革命性升级指南
10分钟搭建FunASR智能语音点餐系统:餐饮服务革命性升级指南 FunASR是一个开源的端到端语音识别工具包,提供了SOTA预训练模型,能够帮助开发者快速构建语音交互应用。本文将详细介绍如何在10分钟内利用FunASR搭建智能语音点餐系统,…...
EasyMQTT嵌入式MQTT轻量封装原理与实战
1. EasyMQTT 库深度解析:面向嵌入式工程师的 MQTT 轻量级封装实践EasyMQTT 并非一个通用型 MQTT 客户端抽象层,而是一个高度场景化、面向特定 IoT 生态闭环设计的固件级通信中间件。其核心价值不在于协议栈功能的完备性,而在于将 ESP32/ESP82…...
渗透测试中的隐藏技巧:利用crontab实现后门持久化(含避坑指南)
渗透测试中的隐藏技巧:利用crontab实现后门持久化(含避坑指南) 在红队演练中,后门持久化是维持访问权限的关键技术。传统的后门植入方式往往容易被安全设备或管理员发现,而利用系统原生功能实现隐蔽驻留则能显著提高攻…...
从《贺花神》看AI趋势:当技术“理解人”,获客的方式彻底变了
今年春晚,一个节目让无数人屏住呼吸。故宫“白玉月令组佩”上的十二种花卉,化作十二位花神,在舞台上次第绽放。正月梅花、二月杏花、三月桃花……一人一景,一花一态。总导演于蕾说:“这非常非常难。”难在哪࿱…...
自定义游戏环境:开源启动器PCL2-CE的多场景解决方案
自定义游戏环境:开源启动器PCL2-CE的多场景解决方案 【免费下载链接】PCL-CE PCL2 社区版,可体验上游暂未合并的功能 项目地址: https://gitcode.com/gh_mirrors/pc/PCL-CE PCL2-CE社区版作为一款开源的Minecraft启动工具,通过模块化设…...
教培人必看!那些好用到哭的网课平台大盘点
一、引言:网课平台,教培行业的新战场 在互联网浪潮的席卷下,教培行业正经历着前所未有的变革。曾经,学生们只能在固定的时间和地点,坐在教室里听老师授课。而如今,随着网课平台的兴起,学习的时…...
嵌入式开发问题复现与调试技巧
嵌入式开发常见问题及解决方法1. 问题复现方法稳定复现问题是解决嵌入式系统故障的首要步骤。根据问题特性,可采用以下三种复现方法:1.1 模拟复现条件对于依赖特定外部条件的问题,最直接的复现方式是精确还原问题发生时的环境参数。工程实践中…...
