综合介绍
dify-plugin-tools-dbquery 是一个专为 Dify 1.0 平台设计的开源插件,由开发者 junjiem 在 GitHub 上发布。它提供数据库查询功能,帮助用户在构建基于大语言模型(LLM)的应用时,从数据库中提取数据并结合 LLM 生成动态内容。该插件包含两个主要工具:Database Query Utils(数据库查询工具)和 Database Query Utils (Pre-authorization)(预授权数据库查询工具),适用于智能问答、数据分析助手等场景。插件支持通过 GitHub 安装,并提供离线打包选项,方便开发者在无网络环境下部署。
功能列表
- 数据库查询工具:通过 SQL 查询从数据库检索数据,作为 LLM 的输入。
- 预授权查询支持:提供预配置授权的查询功能,简化数据库访问流程。
- 集成 Dify 平台:无缝嵌入 Dify 的工作流和智能体,增强应用的数据处理能力。
- 开源与离线包支持:提供源代码和离线安装包,适配多种部署需求。
- 动态数据生成:将查询结果输入 LLM,生成上下文相关的回答或分析。
使用帮助
安装流程
dify-plugin-tools-dbquery 的安装需要通过 GitHub 仓库或离线包完成,以下是详细步骤:
方法 1:通过 GitHub 安装
- 访问 GitHub 仓库
打开浏览器,输入https://github.com/junjiem/dify-plugin-tools-dbquery
,进入项目页面。 - 进入 Dify 插件管理
登录 Dify 平台,点击右上角“Plugins”进入插件管理页面,选择“通过 GitHub 安装”。 - 输入仓库信息
在安装页面输入仓库地址:https://github.com/junjiem/dify-plugin-tools-dbquery
,选择版本号和.difypkg
文件(若无此文件需自行打包,见下文)。 - 解决签名验证问题
若遇到“plugin verification has been enabled, and the plugin you want to install has a bad signature”错误,需修改 Dify 的.env
文件:- 找到
.env
文件(通常在 Dify 部署目录下)。 - 添加或修改:
FORCE_VERIFYING_SIGNATURE=false
。 - 重启 Dify 服务:
docker-compose restart
- 再次尝试安装。
- 找到
- 完成安装
点击“安装”,等待 Dify 下载并部署插件。
方法 2:打离线包并安装
若需在无网络环境下使用,可按官方说明打包离线包:
- 准备环境
- 确保安装 Docker、Python 和 pip。
- 下载 Dify Plugin CLI,选择适合系统的版本(如
dify-plugin-linux-amd64
)。
- 克隆仓库
git clone https://github.com/junjiem/dify-plugin-tools-dbquery.git
cd dify-plugin-tools-dbquery/db_query
- 下载依赖
执行以下命令将依赖保存到本地:
pip download -r requirements.txt -d ./wheels --index-url https://mirrors.aliyun.com/pypi/simple
sed -i '1i\--no-index --find-links=./wheels/' requirements.txt
- 打包离线包
返回上级目录并打包:
cd ..
dify-plugin-linux-amd64 plugin package ./db_query
mv db_query.difypkg db_query-linux-amd64.difypkg
生成的 db_query-linux-amd64.difypkg
即为离线包。
5. 调整 Dify 配置
若插件大小超过 50MB(默认限制),需修改 .env
:
PLUGIN_MAX_PACKAGE_SIZE=524288000
(500MB)NGINX_CLIENT_MAX_BODY_SIZE=500M
- 重启服务:
docker-compose restart
- 上传安装
在 Dify 插件管理页面选择“上传离线包”,选择db_query-linux-amd64.difypkg
文件,完成安装。
操作主要功能
安装完成后,可通过以下步骤使用插件:
1. 配置数据库查询
- 进入 Dify Studio
在 Dify 平台的工作空间中,打开“Studio”,选择一个应用(如 Chatflow 或 Workflow)。 - 添加查询工具
在工作流编辑器中,点击“添加工具”,选择Database Query Utils
或Database Query Utils (Pre-authorization)
。 - 设置查询参数
- 对于普通查询工具,输入 SQL 语句,如:
SELECT name, age FROM users WHERE age > 18
- 对于预授权工具,输入预配置的查询 ID 或直接使用默认查询。
- 配置数据库连接(主机、端口、用户名、密码等),如:
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=yourpassword
- 点击“测试”,确认返回数据正确。
2. 集成 LLM 输出
- 连接工作流
将查询工具的输出连接到 LLM 节点。查询结果将作为上下文输入,例如: - 输入问题:“哪些用户年龄超过 18 岁?”
- 查询结果:
[{"name": "张三", "age": 25}, {"name": "李四", "age": 30}]
- LLM 输出:“张三(25 岁)和李四(30 岁)年龄超过 18 岁。”
- 自定义提示词
在 LLM 节点设置提示词:
根据以下数据回答问题:{{query_result}}
3. 示例应用
- 场景:构建“战绩排行助手”。
- 步骤:
- 创建 Chatflow 应用。
- 添加
Database Query Utils
,查询战绩表:SELECT player, score FROM leaderboard ORDER BY score DESC LIMIT 5
- 连接 LLM,提示词:
列出前五名玩家的姓名和分数:{{query_result}}
- 用户提问:“谁是前五名?”
输出:“前五名玩家是:张三(100 分)、李四(90 分)等。”
注意事项
- 安全性:预授权工具需确保授权范围明确,避免数据泄露。
- 性能优化:大数据查询时,添加
LIMIT
或索引提升效率。 - 文档支持:若有疑问,参考 GitHub 的示例文件(如
.yml
)或提交 Issue。
通过以上步骤,用户可快速上手 dify-plugin-tools-dbquery,实现数据库查询与 LLM 的高效结合。