干货分享|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的高级编排设计能力允许用户灵活地构建和优化智能问数流程,可以有效地确保系统能够适用于不同的业务需求和问数场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】数据类型小结

1.数据类型 int、float、str、bool、元组tuple、列表list、字典dict、集合set 分为两类:可变和不可变数据类型 2.可变数据类型和不可变数据类型 当变量的值变化,内存地址不变则为可变数据类型, eg:int、float、bool、字符串st…

泰山派常用命令

0.连接adb 设备列表:adb devices 进入命令:adb shell 1.连接WiFi 查看当前网络:nmcli con show 我的WiFi名称:6 我的WiFi密码:12345789 连接当前网络:nmcli device wifi connect 6 password 1234578…

whois为什么有时会返回两个不同的域名状态

前阵子发现一直想注册但被别人注册了的一个域名快要过期了,就想着写个脚本跑在电脑上,每分钟检查一次域名状态,一旦域名被正式删除,就发封邮件通知我,这样就不用频繁手动检查域名状态了。 写脚本时发现一个有趣的现象…

NGINX ngx_http_addition_module 模块响应体前后注入内容

一、模块概述 模块名称:ngx_http_addition_module引入版本:自 0.7.9 起支持 addition_types,0.8.29 起支持“*”通配;功能:对符合 MIME 类型的响应,在响应体前后分别插入指定子请求 URI 返回的内容&#x…

半监督学习与强化学习的结合:新兴的智能训练模式

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4o-mini模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…

复习Vue136~180

1.使用create-vue创建项目 npm init vuelatest 项目目录和关键文件: new Vue() 创建一个应用实例 > createApp()、createRouter() createStore() 、将创建实例进行了封装,保证每个实例的独立封闭性。 禁用vue2的插件vuter 使用vue3的插件volar scrip…

QT采用mqtt进行通信(17.1)

文章目录 1.试错历程2. qt5.8安装3. 开始搞了4. 测试连接mqtt broker1.试错历程 尝试过网上说的各种版本,官方库和第三方库,试过qt5.9.9, qt5.12, qt5.12.2, qt5.14 等各个版本,都能编译通过,调用mqtt库,但是都不能连接成功,真的是试吐了,不知道他们的为什么都能成功,…

西门子PLC结构化编程_水处理系统水泵多备多投

文章目录 前言一、功能概述二、程序编写1. 需求分析2. 编写运行时间累计功能块3. 创建自定义数据类型1. 时间排序数据类型2. 多备多投数据类型3. 多备多投切换数据类型 4. 编程1. 创建DB数据块1. 多备多投数据块2. 多备多投切换数据块 2. 创建FB功能块 三、程序调用总结 前言 …

QT:自定义ComboBox

实现效果: 实现combobox的下拉框区域与item区域分开做UI交互显示。 支持4种实现效果,如下 效果一: 效果二: 效果三: 效果四: 实现逻辑: ui由一个toolbutton和combobox上下组合成,重点在于combobox。 我设置了4种枚举,ButtonWithComboBox对应效果一;OnlyButt…

VS2022+OpenCasCade配置编译

一、Open CASCADE Technology介绍及安装(windows10) Open CASCADE Technology(简称OCCT)是一款开源的 3D CAD/CAM/CAE 软件开发平台,广泛应用于工业设计、工程仿真、制造等领域。开源OCC对象库是一个面向对象C类库&…

【OSG学习笔记】Day 12: 回调机制——动态更新场景

UpdateCallback 在OpenSceneGraph(OSG)里,UpdateCallback是用来动态更新场景的关键机制。 借助UpdateCallback,你能够实现节点的动画效果,像旋转、位移等。 NodeCallback osg::NodeCallback 是一个更通用的回调类&…

全新升级:BRAV-7601-T003高性能无风扇AI边缘计算系统,助力智能未来!

在数字化与智能化飞速发展的今天,AI边缘计算正成为各行各业的核心驱动力。BRAV-7601作为一款高性能无风扇AI边缘计算系统,凭借其强大的硬件配置与丰富的扩展能力,为车路协同、特种车辆车载、机器视觉、医疗影像等领域提供了卓越的解决方案。最…

删除 Git 远程记录并重新设置

删除 Git 远程记录并重新设置 以下是在 Windows 平台上删除当前项目的 Git 远程记录并重新设置远程存储库的步骤: 步骤一:查看当前远程仓库 首先,检查当前设置的远程仓库: git remote -v这会显示所有已配置的远程仓库及其 URL…

有哪些和PPT自动生成有关的MCP项目?

随着AI技术的快速发展, Model Context Protocol(MCP) 作为一种连接大型语言模型(LLMs)与外部工具的开放协议,正在重塑自动化办公领域。在PPT自动生成场景中,MCP通过标准化接口实现了AI模型与设计工具、数据源的无缝整合。以下从技术框架、项目案例、应用场景三个维度展开…

PostgreSQL psql 命令和常用的 SQL 语句整理

PostgreSQL psql 命令和常用的 SQL 语句整理 1、登录PostgreSQL数据库2、psql 命令3、数据库操作4、模式操作5、表操作6、数据操作7、索引操作8、视图操作9、权限操作 1、登录PostgreSQL数据库 在系统的命令行界面(如 Windows 的 cmd 或者 PowerShell、Linux 的终端…

【unity游戏开发入门到精通——UGUI】文本输入控件 —— InputField旧控件

注意:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发——UGUI】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言1、文本输入控件2、InputField旧文本输入控件组成 一、InputField文本输入…

获得ecovadis徽章资格标准是什么?ecovadis评估失败的风险

EcoVadis徽章资格标准 EcoVadis徽章是对企业在可持续发展(环境、劳工与人权、商业道德、可持续采购)方面表现的认可。获得徽章需满足以下条件: 完成评估: 企业必须完成EcoVadis的问卷评估,并提交所有必要文件。 评分…

Python初学 有差异的知识点总结(一)

目录 一、基础语法规则 1.注释 2.代码编写 二、基础语法 1.变量 2.数据类型 3.数据类型的转换 (1)隐式转换 (2)显示转换 4.标识符 5.运算符 6.字符串 (1)定义 (2)拼接 …

Java面试场景深度解析

Java面试场景深度解析 在互联网大厂Java求职者的面试中,经常会被问到关于Java项目中的各种技术场景题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官:马架构,欢迎来到我们公司的面试现场。请问您对Java内存模型…

【数据可视化艺术·应用篇】三维管线分析如何重构城市“生命线“管理?

在智慧城市、能源管理、工业4.0等领域的快速发展中,地下管线、工业管道、电力通信网络等“城市血管”的复杂性呈指数级增长。传统二维管理模式已难以应对跨层级、多维度、动态变化的管线管理需求。三维管线分析技术应运而生,成为破解这一难题的核心工具。…