AI创想

标题: Dify+MCP 组合拳:彻底根治 Excel 上传知识库回答数据不准的难题! [打印本页]

作者: jinruping    时间: 昨天 22:38
标题: Dify+MCP 组合拳:彻底根治 Excel 上传知识库回答数据不准的难题!
作者:CSDN博客
大家可能已经对MCP有一定的了解了!
今天,带大家写一个通信方式为SSE的MCP服务器,让你的Dify拥有自主查询数据库的能力!
一、基本流程

我们通过在自然语言与AI交互,
(, 下载次数: 0)


一、安装MySql

本步骤安装Mysql,如果电脑已经安装有Mysql或者服务器部署有Mysql,本步骤可跳过
一)下载

由于Mysql的下载安装比较繁琐,按照我的风格,我又把他做成了一键安装包,只需点击安装即可自动安装,老规矩,我把MySql一键安装包下载链接放到了同名工众号上,维信搜索工众号:阿坡RPA,回复关键字:mysql,链接自动掉落。
二)安装

解压下载好的一键安装包后,安装步骤:
① 双击根目录内的 MySql管理工具.exe
② 点击安装 按钮即可等待安装完成
③ 复制mysql账号密码
④ 在navicat内填写好账号密码(公众号内回复 navicat 获下载连接)
⑤ 点击左侧测试连接
出现成功确认框,表示成功安装了MySql,接下来即可开始后面的操作了
(, 下载次数: 0)


二、把数据导入MySql

一)创建数据库

(, 下载次数: 0)


二)导入数据表

注意:导入sql文件测试数据,在下载mysql的网盘内获取
(, 下载次数: 0)


(, 下载次数: 0)


三、安装并启动MCP服务

下载mysql-mcp-server源码,这是一个github项目的源码,原github地址是:https://github.com/mangooer/mysql-mcp-server-sse
我已经下载好放在同一个网盘里,请根据文章开头获取方式获取,下打开载好的项目源码,进入源码目录:
一)初始化源码项目为uv项目

输出指令:
  1. # 初始化uv init
复制代码
(, 下载次数: 0)


二)创建虚拟环境
  1. # 创建虚拟环境uv venv
复制代码
(, 下载次数: 0)


三)激活虚拟环境
  1. .venv\Scripts\activate
复制代码
(, 下载次数: 0)


四)安装项目依赖
  1. uv pip install -r .\requirements.txt        
复制代码
(, 下载次数: 0)


五)数据库配置

在项目的env 文件内配置前面获取到的mysql账户密码及地址
(, 下载次数: 0)


六)运行server

本项目会开启一个 SSE 通信方式的MCP服务,方便AI通过url远程调用本服务
  1. uv run -m src.server
复制代码
可以看到,MCP服务运行在了 3000 端口,请记住该端口号,后面配置Dify工作流会用到
(, 下载次数: 0)


四、Dify工作流调用MCP服务

一)安装插件

安装 MCP Agent策略MCP SSE 插件,以供后面使用
(, 下载次数: 0)


二)创建对话工作流应用

(, 下载次数: 0)


三)开始节点

开始节点什么都不用填写,默认使用输入框的内容 sys.query 作为输入参数
(, 下载次数: 0)


四)Agent策略节点

1、选择策略工具

选择刚才下载的 MCP Agent 策略作为意图识别的工具,他会自主来决策,该选择调用工具列表中的哪个工具执行任务
(, 下载次数: 0)


2、选择AI模型

(, 下载次数: 0)


3、添加工具

① 点击添加工具
② 选择前面安装的插件工具
获取MCP工具列表,调用MCP工具,两个都要选择,此处仅以第一个为例,第二个操作步骤一样
③ 点击工具授权
④ 填写MCP的SSE服务配置
此处填写的信息就用到了前面启动MCP服务时我提到的端口号 3000 了
  1. {  "mysql-server": {    "url": "http://host.docker.internal:3000/sse",    "headers": {}, "timeout": 60,    "sse_read_timeout": 300  }}
复制代码
(, 下载次数: 0)


4、启用工具

(, 下载次数: 0)


5、选择另一个工具

(, 下载次数: 0)


6、填写指令提示词
  1. 你是一名水果店员工,负责调用工具列表,查询水果表数据,水果表表结构如下:CREATE TABLE `fruits` (
  2.   `id` int NOT NULL COMMENT 'ID',
  3.   `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '水果名称',
  4.   `price` decimal(6,2) NOT NULL COMMENT '水果价格',
  5.   `stock` int NOT NULL COMMENT '库存',
  6.   `origin` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产地',
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水果表';
复制代码
(, 下载次数: 0)


7、设置查询提示词

聊天输入框的值就是 sys.query
(, 下载次数: 0)


五)直接回复节点

(, 下载次数: 0)


六)测试效果

1、dify的返回结果

(, 下载次数: 0)


2、可以看到MCP服务控制台的打印信息

(, 下载次数: 0)


3、工作流的日志追踪

(, 下载次数: 0)


七)保存工作流

(, 下载次数: 0)


总结

MCP结合数据库的方案为Dify等知识库应用提供了高效、精准的结构化数据检索能力,显著提升了数据查询的准确性和灵活性,弥补了RAG的检索精度上的不足。
但是,这一方案也是有缺点的,与RAG每次只检索相关文本片段不同,MCP+数据库会真正执行SQL查询,若一次查询数据量过大,会消耗大量Token,甚至可能导致MCP客户端卡死。
在实际应用中,我们应该将两种技术结合使用,取长补短,灵活处理自己的业务场景。
如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。
不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

(, 下载次数: 0)







欢迎光临 AI创想 (https://www.llms-ai.com/) Powered by Discuz! X3.4