前言¶
DeepSeek Harness(DSH)通过插件机制扩展能力,其中 dsh-mysql 插件提供了基础的 MySQL 连接管理与查询工具。在此基础上,dsh-plugin-nlbi 插件增加了自然语言查询(Text2SQL)与商业智能(BI)报表功能。该插件旨在降低 SQL 编写门槛,让开发者或业务人员能通过自然语言与数据库交互,并直接生成可视化图表。
该插件由 1byteone 维护,基于 dsh-mysql(v0.1.4)的连接底座进行二次开发,保留了原有的连接管理能力,同时新增了智能查询、图表生成与报表收藏等特性。
核心功能¶
插件提供了以下主要能力:
- 自然语言查询 (
nl_query):基于 Text2SQL 技术,将自然语言转换为 SQL 语句。生成过程包含 AST 语法树校验与正则校验,确保安全性。 - BI 图表生成 (
sql_to_chart):根据查询结果自动生成图表规格,支持多种图表类型。 - 报表收藏与管理:提供
save_report、list_reports、delete_report和rerun_report等接口,用于管理生成的报表。 - 数据浏览器:包含 SchemaTree(表结构导航树)与 GridPanel(数据网格),支持在右侧栏进行表结构浏览、数据预览、分页、排序及 WHERE 过滤。
- 智能查询与侧栏工作台:提供右侧栏工作台,集成智能查询、数据浏览与报表功能。
- 继承的连接管理工具:继承了
dsh-mysql的工具,包括mysql_query(只读查询)、mysql_tables(查看表结构)和mysql_execute(写操作)。
安装与启用¶
安装前请确保已安装 Node.js >= 18。
# 安装最新稳定版插件
dsh plugin --profile web add dsh-plugin-nlbi@latest
安装完成后,需要重启 DeepSeek Harness Web 进程:
dsh web
如果启动时提示端口占用(如 EADDRINUSE: address already in use 127.0.0.1:3080),说明服务已在运行,直接访问 http://127.0.0.1:3080 即可,无需重复执行安装命令。
典型用法¶
1. 对话中自然语言查库¶
在 DSH 的对话输入框中输入自然语言,系统将调用 nl_query 工具。生成的 SQL 以草稿形式展示,需用户显式点击“运行”按钮执行。
- 示例:
用户:上个月每天的订单量是多少?
系统调用:nl_query
结果:返回表格数据及对应的 BI 图表
2. 右侧栏全能工作台¶
右侧栏功能依赖 betterSidebar 或 dsh-web-ui-all 插件。若未安装前置插件,系统会自动降级处理,核心功能仍可通过设置页使用。
打开右侧栏,进入 Nlbi 数据库 tab,包含三个子区:
- 智能查询:输入自然语言,即时返回表格和图表,支持一键“发到对话”。
- 数据浏览:通过左侧 SchemaTree 选择表,右侧 GridPanel 展示数据。
- 报表:自然语言生成图表,支持收藏、重跑与导出。
注意事项¶
- LLM 依赖:
nl_query的 Text2SQL 功能依赖于 LLM 服务(如 DeepSeek 或 OpenAI)。 - 仅支持 MySQL:插件继承自
dsh-mysql,目前仅支持 MySQL 数据库。 - 安全性:
nl_query强制执行只读操作,即使数据库连接开启了写权限。SQL 生成经过双层校验(AST + 正则),防止写操作泄露。 - 图表导出:图表导出当前仅支持导出 SQL(Markdown 格式)。
- 侧栏依赖:右侧栏的智能查询、数据浏览和报表功能需要
betterSidebar或dsh-web-ui-all插件支持,但已做降级处理,无侧栏时功能仍可使用。