干货分享|MaxKB 智能问数方案及步骤详解
DeepSeek-R1的发布掀起了AI智能变革的浪潮。在过去几个月里,MaxKB开源企业级AI助手已经帮助大量企业和组织快速落地了DeepSeek,让AI在不同的行业土壤中产生持续、可度量的业务价值。
MaxKB(github.com/1Panel-dev/MaxKB) 可以为本地部署的DeepSeek构建一个Chatbox,也就是一个智能会话的界面,类似于个人用户直接与DeepSeek进行对话。MaxKB提供的Chatbox可以方便地嵌入到企业OA系统和业务系统,有效保证使用的便捷性和安全性。
另外一方面,MaxKB能够激活企业中长期积累的知识体系,使其智能化并面向内外部用户提供服务。MaxKB可以让企业内部的私有知识文档快速获得智能问答能力,面向企业的员工、合作伙伴和客户提供AI助手服务。MaxKB还提供开箱即用的RAG(检索增强生成)技术,能够结合私有知识库提升问答效果,降低大模型幻觉。MaxKB同时支持目前最为流行的MCP(Model Context Protocol,模型上下文协议),为用户灵活调用MCP工具提供了充分的便利性。
在帮助企业落地DeepSeek的过程中,MaxKB开源项目组发现很多企业都有“智能问数”的需求,即允许员工使用自然语言查询方法从数据库中检索结构化数据,并展示成直观的图表。本文将通过一个具体的例子(查询学生成绩),详细讲解如何通过“MaxKB+数据库MCP Server+QuickChart MCP Server”实现智能问数的功能。
方案概述
本方案以“学生考试成绩管理系统”为例进行说明,此系统包含了教师信息、学生信息、年级班级信息、考试成绩等信息内容。
MaxKB智能问数方案逻辑图如下:
MaxKB智能问数方案的具体实现步骤为:
MaxKB的智能问数方案包含以下三大关键步骤:
■ 数据准备:包含数据表详细的DDL(Data Definition Language,数据定义语言)信息和正确的SQL示例,以便大模型能够更好地理解和使用数据;
■ MCP Server准备:需要提前准备对应数据库的MCP Server和生成图表的MCP Server。此阶段可以采用1Panel开源面板来统一部署和运维MCP Server;
■ MaxKB智能问数应用设计:主要包含在MaxKB中如何通过高级应用编排实现智能问数的效果。
步骤一:数据准备
1. 数据准备
提前准备“学生考试成绩管理系统”数据表详细的DDL信息,需要确保所有数据表的DDL信息完整且准确,包括字段类型、约束条件等。DDL信息后续需要导入到MaxKB知识库中,如果当前数据表不具备或者不清晰,具体可以参考下图进行完整性补充。
2. SQL示例准备
基于日常工作遇到的查询需求,我们需要提前准备多样化的SQL示例(本Demo数量为100条SQL查询示例),同时需要保证和测试这些SQL的准确性。后续我们需要将这些SQL查询示例导入到MaxKB知识库中。具体准备过程可以参考下图,采用Execl方式进行绘制和编写。
步骤二:MCP Server准备
1. 数据库MCP Server准备
本Demo采用的是MySQL数据库,因此需要提前准备MySQL的MCP Server。在这里我们使用了Github上的DBHub开源项目(https://github.com/bytebase/dbhub)部署MySQL的MCP Server。此项目同时还支持PostgreSQL、SQL Server等数据库。
DBHub的部署方式也很简单:进入1Panel应用商店,在“AI/大模型”分类下找到DBHub应用,点击安装即可(注意:需确保1Panel服务器已放行SSE端口)。
部署完成后,我们使用curl方式进行快速验证,返回如下信息即为部署成功:
2. 生成图表MCP Server准备
生成图表的步骤采用“QuickChart.io+Quickchart-MCP-Server”来完成。QuickChart 项目(https://github.com/typpo/quickchart)支持用户通过提供数据和样式参数来创建多种类型的图表,支持从柱状图到速度表等多种图表类型,并且提供生成图表URL和下载图表图片的功能。Quickchart-MCP-Server项目(https://github.com/GongRzhe/Quickchart-MCP-Server)则提供了QuickChart的MCP服务。
需要注意的是,由于Quickchart-MCP-Server项目没有提供SSE访问方式,所以不同于DBHub项目,我们需要在1Panel开源面板(github.com/1Panel-dev)的MCP模块中进行部署。具体操作也非常简单:打开1Panel开源面板,依次选择“AI”→“MCP”→“创建MCP服务器”→“导入MCP Server配置”,导入如下Quickchart-MCP-Server的命令配置即可:
{ "mcpServers": { "quickchart-server": { "command": "npx", "args": [ "-y", "@gongrzhe/quickchart-mcp-server" ] } } }
同时,注意开启外部端口访问和地址。
等待几秒后,可以看到1Panel中显示QuickChart的MCP Server已经启动。
接下来,我们使用curl方式进行快速验证,返回如下信息即显示QuickChart的MCP Server已经部署成功。
步骤三:MaxKB智能问数应用设计
1. 将准备好的表信息和SQL示例导入知识库
■ 创建表信息知识库,导入表信息,并将每一张表的信息作为一个分段,具体如下图显示。
为了提高后续检索的相似度,建议同时为每一张表创建问题,问题主要为此表的名称(此操作的意义为:比如用户提问“7年级一共有多少老师”,知识库中能够准确地匹配出班级表和教师表两张表)。问题需要尽量地覆盖用户对不同对象的称呼,比如教师又可以称为老师,具体如下图所示。
■ 创建示例SQL库,导入SQL示例,一个SQL示例作为一个分段。
同理,为不同的SQL示例创建问题,如下图所示:
2. MaxKB智能问数编排
■ 创建空白的高级编排,名称自取即可
■ 添加两个知识库检索节点,用于用户检索表信息和示例SQL。同时设置相似度为0.4,引用分段数TOP为6。
注意:此处很重要也很关键,需要按照不同的应用场景和数据库进行大量的测试,最终选择合适的相似度和引用分段数TOP值。建议首先从相似度0.4,引用分段数TOP值为6开始测试效果。
■ 添加AI对话节点,配置AI模型(注意要选择支持MCP的模型,比如DeepSeek-Chat或者Qwen-Plus),同时在AI对话节点中配置MCP Server:
配置在步骤一中已经部署完成的MCP Server的Config信息,具体的配置信息如下:
{ "quickchart-server": { "url": "http://10.1.240.110:18003/quickchart-server", "transport": "sse" }, "mcp-mariadb": { "timeout": 180, "url": "http://10.1.240.106:8080/sse", "transport": "sse" } }
■ 设置AI对话节点的角色提示词
# 角色 你是一位专业的数据分析专家,精通MYSQL数据库SQL语言,能够熟练运用 mcp-mysql 工具进行SQL验证和查询,还能使用 quickchart-server 工具绘制图表,并对相关数据进行深入分析和解释。 ## 技能 ### 技能1: 生成并验证SQL 1. 基于用户提出的问题,结合已知信息,生成SQL语句。 2. 使用mcp-mysql工具对每次生成的SQL进行验证和查询。若SQL出现错误,需尝试三次不同的SQL表述。 3. 记录每次SQL验证和查询的结果。 ### 技能2: 绘制图表 1. 根据用户需求以及生成的SQL查询结果,利用quickchart-server工具生成相关图表。 2. 确保生成的图表能够清晰、美观的展示相关数据。 ### 技能3: 数据的分析和解释 1. 对SQL查询得到的数据进行详细分析,结合用户的问题,找出数据的关键特征和趋势。 2. 以通俗易懂的语言向用户解释数据所代表的含义以及数据与用户问题之间的关系。 ## 限制 - 仅围绕与生成SQL、利用工具查询验证、生成图片以及数据的分析和解释相关的内容进行回答,拒绝回答不涉及这些内容的话题。 - 生成的SQL需符合MYSQL语法规范,生成的图片应符合数据展示要求,分析和解释需要基于真实的查询结果。 - 分析和解释部分应尽量简洁明了,突出重点。 - 操作过程严格按照上述技能要求执行,不得随意更改工具使用方式。
■ 设置AI对话节点的用户提示词
# 已知信息 ## 表信息: {{表信息.data}} ## 参考示例SQL: {{示例SQL.data}} # 用户问题: {{开始.question}}
效果验证和总结
在MaxKB中按步骤设置完成后,可以进行调试测试,调试测试通过后方可进行应用发布。验证发现,大模型会按照我们设定的提示词,根据已经给出的表信息和SQL示例,自行编写SQL语句,调用MySQL MCP Server进行查询和验证结果,调用QuickChart MCP Server进行图表绘制,最后给出数据分析。
■ 问题一:每个班级学生占比图
■ 问题二:每个年级有多少名学生?
■ 问题三:哪个老师教的学生最多?
■ 问题四:成绩排名前10的学生名字、分数和班级
由此可见,MaxKB通过其强大的RAG技术和MCP调用能力,能够完整且准确地实现智能问数的场景。
RAG技术结合了信息检索和文本生成的优势,使得系统能够在理解用户查询的基础上,从大量数据中检索相关信息,并且生成准确、相关的SQL查询语言。而MCP工具则提供了强大的SQL查数验数能力和动态的图表绘制能力,从而为智能问数系统提供了坚实的数据基础。最终,通过MaxKB的高级编排设计能力允许用户灵活地构建和优化智能问数流程,可以有效地确保系统能够适用于不同的业务需求和问数场景。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一行代码让 iPhone 变砖
一名安全研究人员近日披露了iOS系统中一个基于Darwin通知机制的高危系统漏洞,攻击者可通过沙盒应用向系统发送特定通知,诱导设备进入“恢复模式”并触发无限重启循环。 这名研究人员仅通过一个简单的代码行(notify_post)就触发了严重的系统漏洞,并通过Widget扩展机制实现持续攻击,且能绕过iOS沙盒限制。 notify_post("com.apple.MobileSync.BackupAgent.RestoreStarted") 该漏洞影响所有依赖Darwin通知的系统服务,包括但不限于: 锁屏/控制中心状态管理 网络连接策略切换 外接设备检测逻辑 当然,该漏洞已被苹果修复,作者因此获得了苹果提供的 17,500 美元奖励。 作者整理的时间线: 2024 年 6 月 26 日:向苹果公司发送初始报告 2024 年 9 月 27 日:收到苹果公司的消息,告知正在采取措施进行缓解 2025 年 1 月 28 日:问题已标记为已解决,并确认了奖金资格 2025 年 3 月 11 日:漏洞分配编号 CVE-2025-24091,已在 iOS/iPadOS 18.3 中解决...
- 下一篇
Easy MQTT:极简高效的 MQTT 服务器,助力物联网与实时通信
💎 Easy MQTT:极简高效的MQTT服务器,助力物联网与实时通信 在万物互联的时代,高效、轻量的通信协议是构建实时系统的核心。Easy MQTT 应运而生——这是一款专为开发者设计的开源MQTT服务器,以“极简”为核心理念,旨在为物联网、工业自动化、即时消息等场景提供稳定可靠的消息传输服务。 🌟 为何选择 Easy MQTT? 1.极简设计,开箱即用 仅需一条命令即可启动服务,配置文件精简清晰,无需复杂学习成本。 支持单机与集群部署,轻松应对从测试环境到生产环境的无缝扩展。 2.全协议支持,功能强大 MQTT v3.1.1 完整兼容: 确保与各类客户端设备无缝对接。 WebSocket 子协议: 支持浏览器端直接通信,赋能Web应用实时交互。 SSL/TLS 加密: 为TCP和WebSocket连接提供安全保障,满足企业级安全需求。 3.灵活扩展与高可用性 支持数据持久化,消息不丢失,保障关键业务连续性。 通过外部接口实现动态鉴权,轻松集成现有用户系统。 🚀 三步开启你的首个MQTT服务 1.下载安装 访问 Releases 获取最新编译包,解压即用。 2.一键启动 s...
相关文章
文章评论
共有0条评论来说两句吧...