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

Java实现MCP server,配合DeepSeek和达梦数据库,实现基于企业数据库的智能问答

在这里插入图片描述

~犬📰余~

“我欲贱而贵,愚而智,贫而富,可乎?
曰:其唯学乎”

引言

\quad 在AI与大数据深度融合的今天,企业面临一个核心矛盾:业务人员需要即时数据洞察,却受限于SQL技能门槛。传统解决方案依赖IT部门手工编写查询,响应周期长、沟通成本高。尽管DeepSeek等大模型展现出极强的自然语言理解能力,但也一直难以直接与企业级数据库(如达梦)结合使用,更难以根据企业自身的个性化数据响应用户问题。

\quad 直到MCP协议的出现,AI模型与业务系统的交互才有了一套标准化的框架,使得AI+数据的开发形式愈发简单,本文,犬余就分享一下如何通过MCP server+Deepseek的形式来打造一套简单易用的问答体系。

架构说明

\quad 为了适应大部分企业以及项目的框架,犬余使用了JAVA17来开发MCP server,JAVA开发MCP server+client的整体架构可以参考下图:
在这里插入图片描述
\quad 本次开发,犬余决定先以最简方式实现基础功能,先把效果实现出来,所以我选择了DeepChat来替代Application和MCP Client两个角色,并用DeepSeek的API来完成大模型的工作,所以我们只需要完成MCP Server的开发即可:
在这里插入图片描述

MCP server开发

\quad 下面,我们来完成MCP server的开发:

\quad 首先新建一个空的Maven项目,并在pom文件中引入“spring-ai-starter-mcp-server-webflux”包,下面是完整的pom文件以供参考:
图片
\quad 新建DatabaseMetadataService类,用来实现我们的两个核心工具:获取数据库全部库表结构以及sql执行工具,这里要注意的是注解“org.springframework.ai.tool.annotation.Tool”,设置了该注解的方法注册为MCP server的工具,其中的description属性为该工具(tool)的描述,大模型将根据这个属性来判断每个工具的作用:
在这里插入图片描述
\quad 通过在启动类中添加Bean来将服务暴露出去:
在这里插入图片描述

\quad 经过上面两步,就完成了MCP server的开发工作,是不是很简单?下面是我的代码的完整结构:
在这里插入图片描述
\quad 最后,启动服务,可以看到,我们的两个服务已经注册好了:
在这里插入图片描述

DeepChat配置

\quad DeepChat 是一款基于多模型云服务的智能对话系统,支持DeepSeek、OpenAI等主流AI模型,旨在提供高效、灵活的自然语言交互体验,选择DeepChat的原因在于其良好的技术整合能力与用户体验。DeepChat应用大家可以自行下载安装,这里不再赘述。(官方下载:https://deepchat.thinkinai.xyz/#/download)
在这里插入图片描述

\quad 安装并打开DeepChat后,依次点击“设置”->“MCP设置”->“添加服务器”:
在这里插入图片描述

\quad 在弹出的页面中直接点击“跳过至手动配置”:
在这里插入图片描述

\quad 输入相关配置并点击提交,这里服务器类型要选择SSE,基础URL填写“http://localhost:8080/sse”即可,其中8080 为我们的MCP server启动端口:
在这里插入图片描述

\quad 最后点击“运行”图表,即可启动MCP client:
在这里插入图片描述
在这里插入图片描述

\quad 这时,我们点击上方的“工具”页签,可以看到我们的MCP tools已经可以测试了:
在这里插入图片描述

\quad 配置好MCP之后我们还要按照下图来配置DeepSeekAPI信息,API key需要自行获取,不知道如何获取的可以留言讨论,其他字段按照下图依次填写即可:
在这里插入图片描述

\quad 最后,在聊天页面,我们可以点击锤子图标启用MCP并开启我们的MCP服务,再选择对话模型为deepseek-reasoner就可以使用啦~
在这里插入图片描述

测试结果

\quad 下面是犬余自己的一些测试结果,这里需要注意的是,由于在调用工具时会对参数进行正则校验,所以如果sql中出现星号‘*’时,会有报错:
在这里插入图片描述
\quad 但没关系,我们可以通过设计一下提示词来规避这种情况:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\quad 这样提问虽然看起来比较奇怪,但如果我们自己来实现MCP client的话,完全可以通过代码来在用户的问题上进行拼接,这样用户就可以随意提问而不用再关注星号‘*’的问题啦~

结语

\quad 以上,就是本次分享的全部内容啦,不知道对朋友们有没有帮助呢?如果对文章内容有任何疑问或意见,欢迎在评论区留言讨论。

\quad 同时,我将继续探索本地化DeepSeek模型的接入以及MCP client的开发,以求实现完全独立的可以内网部署使用的企业级落地方案。 欢迎大家继续关注犬余后续的分享,再见~

在这里插入图片描述

关注犬余,共同进步

技术从此不孤单

相关文章:

  • MACH-ETH:汽车网络接口的卓越之选
  • 数据库实验报告 系统E-R图设计 2
  • 堆复习(C语言版)
  • Matlab 234-锂电池充放电仿真
  • DVWA在线靶场-SQL注入部分
  • ultralytics框架计算大中小目标检测精度
  • K8s进阶之一文搞懂PV,PVC及SC
  • 技术文章: PCB基板介电常数的温度系数
  • [Java实战]Spring Boot 整合 Redis(十八)
  • 使用 Watt toolkit 加速 git clone
  • git和gdb
  • PDFMathTranslate:科学 PDF 文件翻译及双语对照工具
  • HDLBIT-更多Verilog功能(More Verilog Features)
  • 【MCP】魔搭社区MCP服务(高德地图、everything文件搜索)
  • C++中类中const知识应用详解
  • 质控脚本来喽
  • 工具篇-如何在Github Copilot中使用MCP服务?
  • Linux 服务器用 SSH 拉取多个 Git 工程
  • python打卡day22
  • 修改网页标签处文字
  • 比特币挖矿公司GRYP股价涨超171%:将与特朗普儿子创设的公司合并
  • 云南一男子持刀致邻居3死1重伤案二审开庭,未当庭宣判
  • 总没胃口,一吃就饱……别羡慕,也可能是生病了
  • 科学家用AI寻找外星生命
  • 领证不用户口本,还需哪些材料?补领证件如何操作?七问七答
  • 上海“世行对标改革”的税务样本:设立全国首个税务审判庭、制定首个税务行政复议简易程序