当前位置: 首页 > news >正文

基于RAG+MCP开发【企文小智】企业智能体

一、业务场景描述

1.1、背景介绍

几乎每家企业都积累了大量关于规章制度的文档资料,例如薪酬福利、绩效考核、保密协议、考勤管理、采购制度、资产管理制度等。这些文档大多以 Word、PDF 等非结构化格式存在。传统方式下,员工在查询某项具体规则时,通常需要手动查找并下载相关文件,再逐页浏览内容以定位所需信息。例如,一名员工若想了解公司对某一供应商是否列入白名单,往往需要先找到《采购管理制度文件.pdf》查看相关政策,然后再登录供应商管理系统进行具体查询。这种流程效率低下,信息获取路径复杂,严重影响了员工的工作效率和制度执行的便捷性。

1.2、实现思路

如今,随着 AI 大模型技术的发展,结合 RAG(检索增强生成) 和 MCP(模型上下文协议),企业知识查询变得前所未有的高效与便捷。员工只需像询问“公司的请假流程是什么样的?”、“我这个月迟到了几次?”这样的问题,大模型即可直接返回准确、结构化的答案。

本文将介绍如何基于 RAG + MCP 技术架构,快速构建一个面向企业的智能问答助手——“企文小智”。其中包括主要功能为:

(1)RAG 负责从本地知识库中增强检索,如各类制度文件、政策文档等非结构化数据。

(2)MCP 实现业务系统中的动态数据查询,例如考勤记录、资产状态等结构化信息。

通过将两者融合,“企文小智”能够覆盖企业规章制度相关的高频查询场景,实现自然语言驱动的智能问答体验。

云程低代码开发平台提供了AI大模型接入、知识库管理、MCP服务注册、AI智能体开发等功能,该示例基于该低代码平台实现,在线体验请访问:http://www.yunchengxc.com

二、专业术语介绍

2.1、什么是RAG(检索增强生成)

在大型语言模型时代,RAG (Retrieval-Augmented Generation 检索增强生成)指的是在回答问题或生成文本时,先从大规模文档库中检索相关信息,然后利用这些检索到的信息来生成响应或文本,从而提高回复内容的质量。 RAG 技术的应用可以很好地解决大模型的胡乱编造的问题,即让大模型在回答用户问题前先参考知识库中的相关内容,可极大抑制大模型的幻觉现象。​

2.2、什么是MCP(模型上下文协议)

MCP 是一种开放协议,它规范了应用程序向大语言模型提供上下文的方式。通过 MCP 工具,大语言模型(LLM)可以按需自动执行计算、操作外部系统、调用业务系统API等,甚至与真实世界交互。

三、开发智能体应用

3.1、创建本地知识库

创建知识库时我们需要先上传企业的私有文档作为知识库的知识来源,添加一个向量模型用于对文本向量化,还需要添加一个向量库用于存储向量数据。

做好上面的前置准备后,就可以进行知识库的创建了。

关键创建步骤如下:

第一步,上传企业文档到文档管理中。

第二步,在模型接入中添加一个向量模型。

第三步,在向量库配置中添加一个向量数据库的配置。

第四步,在知识库管理中创建知识库,绑定已配置的向量库和向量模型。

步,设置文档分片规则,完成文档的向量化存储。


完成配置后,可通过召回测试验证知识库效果。

3.2、开发MCP服务

完成知识库配置后,需注册MCP服务以支持动态数据查询。通过MCP协议将企业内部系统(如考勤数据库)与AI智能体连接,实现动态数据查询。通常公司的考勤信息存储于关系型数据库表中,我们可以通过MCP来实现AI智能体对个人考勤数据的查询,比如:实时查询异常考勤、请假记录、加班时长等个性化信息。

关键实现步骤如下:

第一步,在后端项目中基于SpringBean实现获取用户请假、用户加班、用户异常考勤信息的方法。

SpringBean中实现考勤数据查询方法如:getUserLeaveList(),注册至MCP服务后,智能体可直接调用。


第二步,在MCP管理中,把我们SpringBean MCP服务注册为MCP服务。

完成上述配置后,可以在线查看当前MCP服务提供了哪些接口方法:

3.3、构建AI智能体

完成前面的知识库配置和MCP服务配置后,即可轻松创建“企文小智”的智能体。

关键实现步骤如下:

第一步,在线创建一个智能体,并绑定我们前面创建的知识库和MCP服务。

完成上述配置后发布智能体,“企文小智”智能体的开发就完成了,我们把智能体启动入口关联到业务系统的任何位置,运行效果如下:

提问公司规章制度,比如提问:“公司的请假流程是什么样的?”,智能体首先检索本地知识库,并提交给AI大模型后,给出回复答案。

提问考勤信息查询,比如提问:“这个月我加班了多少小时?”,AI大模型分析该问题后,自动调用MCP服务,进而实现对业务系统接口的调用,最后给出准确答案。

通过集成RAG与MCP技术开发AI智能体应用,“企文小智”实现了企业私有知识检索与业务数据动态数据查询的无缝结合。此模式可快速复用于HR、IT支持等场景,显著降低企业AI应用开发门槛,助力智能化升级。

相关文章:

基于RAG+MCP开发【企文小智】企业智能体

一、业务场景描述 1.1、背景介绍 几乎每家企业都积累了大量关于规章制度的文档资料,例如薪酬福利、绩效考核、保密协议、考勤管理、采购制度、资产管理制度等。这些文档大多以 Word、PDF 等非结构化格式存在。传统方式下,员工在查询某项具体规则时&…...

【软件测试】测试用例的设计方法

目录 一、基于需求进行测试用例的设计 1.1 功能需求测试分析 二、黑盒测试用例设计方法 2.1 等价类划分法(解决穷举) 2.1.1 等价类设计步骤 2.1.2 等价类划分法案例 2.1.2.1 验证 QQ 账号的合法性 2.1.2.2 验证某城市电话号码的正确性 2.1.3 适用场景 2.2 边界值分析…...

计算机网络笔记(十八)——3.5高速以太网

3.5.1 100BASE-T以太网 1. 基本概念 标准规范:IEEE 802.3u,是快速以太网的典型代表,运行速率100Mbps。物理介质:使用双绞线(UTP或STP),支持最大传输距离100米(Cat5/5e及以上&#…...

海外广告账号资源解析:如何选择适合业务的广告账户?

在全球化数字营销的浪潮下,海外广告投放已成为企业拓展市场的核心手段。然而,不同平台的广告账号类型复杂多样,如何选择适合自身业务的资源?本文将深度解析 Facebook、Google、TikTok 三大平台的广告账号类型,助您精准…...

Java设计模式之建造者模式:从入门到精通

1. 建造者模式概述 1.1 定义与核心概念 **建造者模式(Builder Pattern)**是一种创建型设计模式,它将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。 专业术语解释表: 术语解释产品(Product)最终要构建的复杂对象建造者(Builder)定义创建产品各个…...

Faiss 索引深度解析:从基础到实战

在处理高维数据的相似性搜索时,Faiss(Facebook AI Similarity Search)无疑是一款强大且高效的工具。它为我们提供了多种索引类型,适用于不同规模和需求的数据场景。本文将结合代码实例,深入剖析 Faiss 中常见索引的原理…...

Error parsing column 10 (YingShou=-99.5 - Double) dapper sqlite

在使用sqlite 调取 dapper的时候出现这个问题提示: 原因是 在 sqlite表中设定的字段类型是 decimel而在C#的字段属性也是decimel,结果解析F负数 小数的时候出现这个错误提示: 解决办法:使用默认的sqlite的字段类型来填入 REAL描述…...

星云智控:物联网时代的设备守护者——卓伊凡详解物联网监控革命-优雅草卓伊凡

星云智控:物联网时代的设备守护者——卓伊凡详解物联网监控革命-优雅草卓伊凡 一、物联网的本质解析 1.1 什么是物联网? 当卓伊凡被问及”星云智控物联网是干嘛的”这个问题时,他首先给出了一个技术定义:物联网(Int…...

LeRobot 项目部署运行逻辑(五)——intelrealsense.py/configs.py

在运行 control_robot.py 的时候会启用相机拍摄,lerobot 中封装好了两种相机类型:realsense 和 opencv realsense 直接使用他们的脚本就可以,但需要在 lerobot/robot_devices/robots/configs.py 中修改相机 serial_number 由于我们设备采用的…...

从0开始学linux韦东山教程第一三章问题小结(1)

本人从0开始学习linux,使用的是韦东山的教程,在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。 摘要关键词:VMware、Ubuntu、网络网口 视频链接:【【韦东山】韦东山手把手教你嵌入式Linux快速入门到精通 | Lin…...

解决 MySQL 数据库无法远程连接的问题

在使用 MySQL 数据库时,遇到这样的问题: 本地可以连接 MySQL,但远程机器连接时,总是报错 Host ... is not allowed to connect to this MySQL server。 这通常是因为 MySQL 的用户权限或配置限制了远程访问。 1. 登录 MySQL 数据…...

分享一款开源的图片去重软件 ImageContrastTools,基于Electron和hash算法

最近发现个挺实在的图片查重软件,叫ImageContrastTools。电脑手机都能用,特别适合整理乱七八糟的相册。直接去这里下载就能用: https://github.com/html365/ImageContrastTools 功能说明: 1️⃣ 选个文件夹就能自动扫重复图&…...

软件测试——用例篇(2)

目录 一、基于需求的设计方法 1.1设计账号注册、账号登录的测试用例 1.1.1功能测试 1.1.2界面测试 1.1.3性能测试 1.1.4兼容性测试 1.1.5易用性测试 1.1.6安全测试 一、基于需求的设计方法 根据参考需求文档/产品规格说明书来设计测试用例 测试人员接到需求之后、对需求…...

图像匹配导航定位技术 第 11 章

第 11 章 基 于 改 进 SIFT 的 SAR 与 可 见光 图 像 匹 配 控 制 点 定 位 算 法 HOG 描述子也只是对整幅图像的特征向量进行匹配,但是仍然存在局部匹配误差。而局部不变特征(如 SIFT,Harris 等)是对特征点局部邻域的特征进行描述来构造局部…...

安装jdk步骤

将Linux安装jdk的步骤放入shell脚本中 #!/bin/bash # 阿里云服务器专用 - 全自动安装 OpenJDK 1.8(无交互) # 仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)# 检查 root 权限 if [ "$(id -u)" -ne 0 ]; thenech…...

理解 `.sln` 和 `.csproj`:从项目结构到构建发布的一次梳理

理解 .sln 和 .csproj:从项目结构到构建发布的一次梳理 在初学 .NET 项目开发时,很多人都会对 .sln(解决方案)和 .csproj(项目)文件感到疑惑。随着开发经验的积累,我逐渐理解了这些层级的设计意…...

高频算法面试题总结

高频算法面试题总结 排序算法 1. 基础排序算法 快速排序: public void quickSort(int[] arr, int low, int high) {if (low < high) {int pivot = partition(arr, low, high);quickSort(arr, low, pivot - 1);quickSort(arr, pivot + 1, high);} }平均时间复杂度:O(n lo…...

SQL进阶:如何把字段中的键值对转为JSON格式?

JSON 一、问题描述二、ORACLE<一>、键值对拆分(REGEXP_SUBSTR)<二>、转为JSON<三>、不足 三、MYSQL<一>、键值对拆分(RECURSIVE)<二>、转为JSON 一、问题描述 假如某张表的某列是键值对数据,如何把这个键值对转为json格式,数据如下所示 dynast…...

vue3:十二、图形看板- echart图表-柱状图、饼图

一、效果 如图展示增加了饼图和柱状图,并且优化了浏览器窗口大小更改,图表随着改变 二、 饼图 1、新建组件文件 新增组件EchartsExaminePie.vue,用于存储审核饼图的图表 2、写入组件信息 (1)视图层 写入一个div,写入变量chart和图表宽高 <template><div ref…...

nacos-server-2.2.2.tar及使用方式

下载链接 nacos-server-2.2.2.tar包及使用资源-CSDN文库 下载与安装 下载地址&#xff1a;可从 Nacos 官网版本下载页面 或 Nacos GitHub Releases 获取 nacos-server-2.2.2.tar.gz 安装包。 环境准备&#xff1a;Nacos 依赖 Java 环境运行&#xff0c;需确保安装了 64 位 J…...

el-form的label星号位置如何修改

默认情况 修改后 实现代码 .el-form {.el-form-item {.el-form-item__label {padding: 0;&::before {float: none;position: relative;}}} }...

小刚说C语言刷题—1004阶乘问题

1.题目描述 编程求 123⋯n 。 输入 输入一行&#xff0c;只有一个整数 n(1≤n≤10)&#xff1b; 输出 输出只有一行&#xff08;这意味着末尾有一个回车符号&#xff09;&#xff0c;包括 1 个整数。 样例 输入 5 输出 120 2.参考代码(C语言版) #include <stdio…...

Java 集合体系深度解析面试篇

一、Java 集合体系核心架构与高频考点 1. 集合体系架构图&#xff08;大厂必问&#xff09; Java集合框架 ├─ Collection&#xff08;单列集合&#xff09; │ ├─ List&#xff08;有序、可重复&#xff09; │ │ ├─ ArrayList&#xff08;动态数组&#xff0c;随机…...

websocketd 10秒教程

websocketd 参考地址&#xff1a;joewalnes/websocketd 官网地址&#xff1a;websocketd websocketd简述 websocketd是一个简单的websocket服务Server&#xff0c;运行在命令行方式下&#xff0c;可以通过websocketd和已经有程序进行交互。 现在&#xff0c;可以非常容易地构…...

PCA降维

主成分分析&#xff08;Principal Component Analysis&#xff0c;PCA&#xff09;降维是一种广泛使用的无监督机器学习技术&#xff0c;主要用于数据预处理阶段&#xff0c;其目的是在尽量保留数据重要信息的前提下&#xff0c;减少数据的维度。 PCA 的原理​ PCA 的核心思想…...

【计算机视觉】OpenCV实战项目: opencv-text-deskew:实时文本图像校正

opencv-text-deskew&#xff1a;基于OpenCV的实时文本图像校正 一、项目概述与技术背景1.1 核心功能与创新点1.2 技术指标对比1.3 技术演进路线 二、环境配置与算法原理2.1 硬件要求2.2 软件部署2.3 核心算法流程 三、核心算法解析3.1 文本区域定位3.2 角度检测优化3.3 仿射变换…...

具身智能时代的机器人导航和操作仿真器综述

系列文章目录 前言 导航和操作是具身智能的核心能力&#xff0c;然而在现实世界中训练具有这些能力的智能体却面临着高成本和时间复杂性。因此&#xff0c;从模拟到现实的转移已成为一种关键方法&#xff0c;但模拟到现实的差距依然存在。本调查通过分析以往调查中忽略的物理模…...

Go语言Stdio传输MCP Server示例【Cline、Roo Code】

Go语言 Stdio 传输 MCP Server 示例 AI 应用开发正处于加速发展阶段&#xff0c;新技术和新方法不断涌现。Model Context Protocol &#xff08;MCP&#xff09; 作为一个开放标准&#xff0c;正在改变 AI 应用与数据源和工具集成的方式。 Go-MCP 是一个 MCP 协议的 GO 实现&…...

Xcode16.3配置越狱开发环境

首先先在https://developer.apple.com/xcode/resources/ 这里面登陆Apple账号&#xff0c;然后访问url下载 https://download.developer.apple.com/Developer_Tools/Xcode_16.3/Xcode_16.3.xip 1、安装theos https://theos.dev/docs/installation-macos 会安装到默认位置~/th…...

AWS IoT Core与MSK跨账号集成:突破边界的IoT数据处理方案

随着企业规模的扩大和业务的复杂化,跨账号资源访问成为云架构中的一个常见需求。本文将深入探讨如何实现AWS IoT Core与Amazon MSK(Managed Streaming for Apache Kafka)的跨账号集成,为您的IoT数据处理方案开辟新的可能性。无论您是正在构建多账号架构,还是需要整合不同部门的…...

【Python 列表(List)】

Python 中的列表&#xff08;List&#xff09;是最常用、最灵活的有序数据集合&#xff0c;支持动态增删改查操作。以下是列表的核心知识点&#xff1a; 一、基础特性 有序性&#xff1a;元素按插入顺序存储可变性&#xff1a;支持增删改操作允许重复&#xff1a;可存储重复元…...

在另一个省发布抖音作品,IP属地会随之变化吗?

你是否曾有过这样的疑惑&#xff1a;出差旅游时在外地发布了一条抖音视频&#xff0c;评论区突然冒出“IP怎么显示xx省了&#xff1f;”的提问&#xff1f;随着各大社交平台上线“IP属地”功能&#xff0c;用户的地理位置标识成为公开信息&#xff0c;而属地显示的“灵敏性”也…...

在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程

在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器&#xff0c;安装教程 资源宝分享&#xff1a;https://www.httple.net/154301.html 一次性打包涵盖200个常用工具&#xff01;无论是日常的图片处理、文件格式转换&#xff0c;还是实用的时间…...

D720201 PCIE 转USB HUB

1. 启动时出现了下面错误 [ 4.682595] pcieport 0004:00:00.0: Signaling PME through PCIe PME interrupt [ 4.684939] pci 0004:01:00.0: Signaling PME through PCIe PME interrupt [ 4.691287] pci 0004:01:00.0: enabling device (0000 -> 0002) [ 5.2962…...

QT事件介绍及实现字体放大缩小(滚轮)

使用update是为了回调paintEvent这个事件函数 pic.load是加载一张图片 setfixedsize(pic.siez())是为了把按键的矩形区域变成和pic一样大 painter.drawPixmap(rec(),pic)就是在按键的矩形区域画一个pic emit clicked();是用来发送clicked信号的&#xff0c;当然你也可以在事…...

p2p虚拟服务器

ZeroTier Central ✅ 推荐工具&#xff1a;ZeroTier&#xff08;免费、稳定、跨平台&#xff09; ZeroTier 可以帮你把多台设备&#xff08;无论是否跨网&#xff09;加入一个虚拟局域网&#xff0c;彼此间可以像在同一个 LAN 中通信&#xff0c;UDP 视频、文件传输、SSH 等都…...

高尔夫基本知识及规则·棒球1号位

高尔夫与棒球的结合看似跨界&#xff0c;但两者在规则、策略和运动哲学上存在有趣的关联性。以下从五个角度进行对比分析&#xff0c;揭示它们的异同与潜在联系&#xff1a; 一、核心目标的对比性结合 高尔夫&#xff1a;以最少击球次数完成18洞&#xff08;标准杆72杆左右&am…...

数据结构(1)复杂度

一、数据结构概要 1.数据结构 数据结构是计算机存储、组织数据的方式&#xff0c;是数据相互之间存在一种或者多种特定关系的集合。没有一种单一的数据结构可以解决所有问题&#xff0c;因此要学习多种多样的数据结构。如&#xff1a;线性表、图、树等。 2.算法 算法其实就…...

多分类问题softmax传递函数+交叉熵损失

在多分类问题中&#xff0c;Softmax 函数通常与交叉熵损失函数结合使用。 Softmax 函数 Softmax 函数是一种常用的激活函数&#xff0c;主要用于多分类问题中。它将一个实数向量转换为概率分布&#xff0c;使得每个元素的值在 0 到 1 之间&#xff0c;且所有元素的和为 1。 …...

Java如何获取电脑分辨率?

以下是一个 Java 程序示例&#xff0c;用于获取电脑的主屏幕分辨率&#xff1a; import java.awt.*; public class ScreenResolutionExample { public static void main(String[] args) { // 获取默认的屏幕设备 GraphicsDevice device GraphicsEnvironm…...

【NextPilot日志移植】logged_topics.cpp解析

&#x1f4d8; PX4 Logger 模块注册 uORB 主题、实际订阅与数据采集流程 &#x1f9ed; 目的与背景 在 PX4 飞控中&#xff0c;日志记录模块 logger 需要记录多个 uORB 主题的数据&#xff08;如 IMU、GPS、姿态等&#xff09;。为了系统统一管理这些记录需求&#xff0c;log…...

CSS vertical-align

这里的小空白就是为了和基线对齐 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&quo…...

“工作区”升级为“磁盘”、数据集统计概览优化|ModelWhale 版本更新

本次更新围绕用户在实际项目中对平台的理解和管理体验进行了多项优化。 “工作区”升级为“磁盘”、及其管理优化 平台“工作区”概念正式更名为“磁盘”&#xff0c;突出其存储功能。原有以目录代称的存储区域划分同步更名&#xff0c;其中“work目录”更改为“个人磁盘”&am…...

mac 电脑如何打开剪切板

mac 不像 Windows 拥有官方的剪贴板应用。所以我们需要使用官方商店中的第三方应用实现剪切板管理的功能。 打开苹果电脑上的 App Store&#xff0c;下载 PasteMe 或 Paste 等复制历史记录的管理工具。&#xff08;PasteMe 为买断制18元&#xff0c;Paste为订阅制&#xff0c;…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十二)

个人笔记整理---仅供参考 第十二章项目质量管理 可能考论文&#xff1f;&#xff1f;&#xff1f; 12.1管理基础 12.2项目质量管理过程 12.3规划质量管理 12.4管理质量 12.5控制质量...

Java、javax 和 Jakarta有什么区别?

在 Java 开发中,我们经常会看到 java、javax 和 jakarta 这些包名前缀。本文将详细介绍这三个命名空间的含义、发展历程以及它们之间的关系,帮助你更好地理解 Java 生态系统。 一、Java:核心 API 的基础 ✅ 含义: java 是 Java 标准库的核心包名。所有以 java. 开头的类构…...

LeetCode百题刷002摩尔投票法

遇到的问题都有解决的方案&#xff0c;希望我的博客可以为你提供一些帮助 图片源自leetcode 题目&#xff1a;169. 多数元素 - 力扣&#xff08;LeetCode&#xff09; 一、排序法 题目要求需要找到多数值&#xff08;元素个数>n/2&#xff09;并返回这个值。一般会想到先…...

【推荐笔记工具】思源笔记 - 隐私优先的个人知识管理系统,支持 Markdown 排版、块级引用和双向链接

Typora 使用Typora好多年了&#xff0c;一直非常的喜欢这个简洁的Markdown编辑工具&#xff0c;低版本的免费且好用。 Typora官网地址&#xff1a; https://typora.io/ https://typoraio.cn/ Typora的文档树如下&#xff0c;细看后&#xff0c;总觉得差点意思! 思源笔记 今…...

ACTF2025 - Web writeup

ACTF2025 - Web writeup ACTF upload 进去后是一个登录界面&#xff0c;输入用户名后登录&#xff0c;然后到一个文件上传的界面。 在 /upload?file_path 处&#xff0c;可以实现任意文件读取&#xff0c;文件内容保存在 img 标签中的 base64 值中。 示例请求&#xff1a;…...

使用Java实现HTTP协议服务:从自定义服务器到内置工具

在Web开发领域,HTTP协议是服务器与客户端(如Web浏览器)通信的核心。Java作为一种多功能且强大的编程语言,提供了多种方法来实现HTTP协议服务,满足从学习实验到生产部署的各种需求。本文将深入探讨在Java中实现HTTP服务的三种主要方法:使用ServerSocket构建自定义HTTP服务…...