1632 字
8 分钟
MaxKB实现DataBase数据查询分析与AI问答功能
2025-11-10

本文讲通过讲述如何使用MaxKB,完成构建适合自己项目的AI模型并实现网站部署。同时讲述一些所遇到的坑。

技术与环境:Deepseek chat API;MaxKB;Mysql;Docker;Windows11

前置要求:安装docker

什么是MaxKB?#

MaxKB是一个强大易用的企业级智能体平台。秉承“开箱即用,伴随成长”的设计理念,MaxKB支持企业快速接入主流大模型,高效构建专属知识库,并且提供从基础知识问答(RAG)、复杂业务流程自动化(Workflow,工作流)到智能体(Agent)的渐进式升级路径。

快速接入主流的大模型#

支持对接各种大语言模型,包括本地私有大模型(DeepSeek/Qwen/Llama等)、国内公共大模型(通义千问/腾讯混元/字节豆包/百度千帆/智谱/Kimi)和国外公共大模型(OpenAI/Claude/Gemini等)。

高效构建专属 AI 知识库#

支持直接上传文档 / 自动爬取在线文档,支持文本自动拆分、向量化,通过 RAG 检索增强生成有效减少大模型幻觉,提升问答效果。

零代码实现 AI 工作流编排#

内置强大的工作流引擎、函数库和 MCP 工具调用能力,满足复杂业务场景下的各种需求。

快速嵌入各类系统#

支持零编码快速嵌入到网站、办公系统(企业微信 / 钉钉 / 飞书)和第三方业务系统,让已有系统快速拥有智能问答能力,提高用户满意度。

MaxKB下载#

官网镜像文档:https://docker.aityp.com/image/docker.io/1panel./maxkb.10.3-lts

官方提供不同历史版本的MaxKB,这里选择官方提供Mysql内置连接函数的v1.10.3-lts版本

支持MySQL和PgSQL

安装步骤#

安装步骤分为拉取镜像,创建卷柜,生成容器

Terminal window
①拉取镜像(docker shell CMD)
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/1panel./maxkb:v1.10.3-lts
②创建存储地址(卷柜,用于保存数据持久化)
docker volume create maxkb-data
③运行
docker run -d --name maxkb -p 8080:8080 -v maxkb-data:/var/lib/postgresql/data swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/1panel./maxkb:v1.10.3-lts
④查看:docker start maxkb 查看运行状态:docker ps

访问MaxKb后台#

  1. 地址:127.0.0.1:8080 
  2. 账号:admin
  3. 密码:MaxKB@123..

DeepSeek API获取#

DeepSeek开放平台:https://platform.deepseek.com/sign_in

充值获取API Key,如需免费可使用智谱AI(限时免费)

构建模型#

在MaxKB后台-系统设置-模型设置中,创建模型

选择模型类型并填写API Key

构建智能体应用#

在MaxKB后台-应用-创建应用-高级编程-空白应用。创建工作流程台

流程如下图所示:SQL生成-Mysql查询-AI对话(通过添加组件获取)

提示词设置#

SQL生成#

提示词#

Terminal window
# 数据表结构
# 表 1: 农业气候评估表(ads_agriculture_assessment)
### 表说明
记录各城市农业气候适宜性评估结果,包括适宜性评分、等级、高适宜天数、生长季温度、降水量和种植建议等信息。
### DDL语句
## 农业气候评估表(ads_agriculture_assessment)
CREATE TABLE `ads_agriculture_assessment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`city` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`year` int(11) NOT NULL,
`suitability_score` double NOT NULL,
`suitability_level` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`high_suitability_days` int(11) NOT NULL,
`growing_season_temp` double NOT NULL,
`annual_precipitation` double NOT NULL,
`planting_recommendation` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
`update_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ads_agriculture_assessment_city_year_dc62b076_uniq` (`city`,`year`)
) ENGINE=InnoDB AUTO_INCREMENT=276 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# 用户问题:
{{开始.question}}
# 回答要求:
生成的SQL语句必须符合MYSQL数据库的语法规范。
不要使用 Markerdown SQL 语法格式输出,禁止添加语法标准、备注、说明等信息。
直接输出符合MySQL标准的SQL语句,用txt纯文本格式展示即可。
当前数据库中的时间类字段(如 update_time)均为 DateTime 类型,无需额外转换格式;且生成的 SQL 语句中禁止包含 update_time 字段,不允许对其进行读取或用于筛选等任何操作。
生成的 SQL 语句中涉及的城市默认仅为数据库中已存在的粤港澳地区 11 个城市(即香港、澳门、广州、深圳、珠海、佛山、惠州、东莞、中山、江门、肇庆)。
禁止查询模型中不存在的字段(如各表中仅包含代码中定义的字段,不可出现未声明的字段名)。
数据库中所有数据的年份范围为 2000-2024 年,若需按年份筛选,year字段的取值需在 2000 2024 之间(包含首尾年份),例如:WHERE year BETWEEN 2000 AND 2024 WHERE year = 2020。
生成的查询SQL语句中,所有数值型字段转化为字符串类型。
回答的内容不要脱离用户原意。

系统角色#

Terminal window
# 角色
你是一位资深的MYSQL数据库SQL专家,具备深厚的专业知识和丰富的实践经验。你能够精准理解用户的文本描述,并生成准确可执行的SQL语句。
## 技能
### 技能1: 生成SQL语句
1. 仔细分析用户提供的文本描述,明确用户需求。
2. 根据对用户需求的理解,生成符合MYSQL数据库语法的准确可执行的SQL语句。

AI对话#

提示词#

Terminal window
# 已经执行的SQL和查询出的SQL结果
{{MySQL 查询.result}}
# 回答要求:
根据返回的结果内容,结合用户的问题,按照用户的原意通俗易懂的讲解

系统角色#

Terminal window
#系统角色
你是一个气象分析专家,可以将sql查询结果用通俗的语言描述出来

调试发布#

记得保存

内嵌到网页#

MaxKB后台-应用-选择创建的应用-概览-嵌入第三方

问题#

在整个搭建过程中也是折腾了很久,遇到了如下问题

  1. 最新版本download下来发现没有Mysql内置函数库
  2. 容器搭建没有进行持久化导致数据丢失
  3. 智能体搭建调试阶段发现,MaxKB调用Mysql返回数据给AI生成最终结果时发现返回的是JSON格式,出现Exception:Object of type Decimal is not JSON serializable;在论坛找到方法是可以通过添加类型转化避免该现象(在SQL生成提示词中加入规则:生成的查询SQL语句中,所有数值型字段转化为字符串类型。)

参考内容:

docker本地部署Maxkb(Windows版)_maxkb docker部署-CSDN博客

就业分析智能体案例(MaxKB+MySQL+函数)_maxkb mysql-CSDN博客

Object of type Decimal is not JSON serializable - MaxKB - 社区论坛 - FIT2CLOUD 飞致云

最后更新时间:2025/11/10 21:32

MaxKB实现DataBase数据查询分析与AI问答功能
https://minthana.github.io/blog/posts/maxkb/
作者
Mint
发布于
2025-11-10
许可协议
CC BY-NC-SA 4.0