Dify 插件介绍 - database 插件:轻松查询数据库数据的利器
插件简介
Database插件是由开发者hjlarry开发的一款实用工具,当前(2025/4/10)版本为0.0.4,已在GitHub上开源。这款插件的主要功能是让用户能够方便地在现有数据库中执行SQL查询,并获取多种格式的数据结果。
核心功能
Database插件提供了三大核心功能:
- SQL执行工具:直接运行SQL查询语句
- 文本转SQL工具:将自然语言转换为有效的SQL查询
- 端点工具:通过URL请求获取数据
使用方法
1. 数据库连接配置
首先需要配置数据库连接URI,支持多种数据库类型:
# MySQL示例
mysql+pymysql://root:123456@localhost:3306/test
# PostgreSQL示例
postgresql+psycopg2://postgres:123456@localhost:5432/test
# SQLite示例
sqlite:///test.db
# SQL Server示例
mssql+pymssql://<username>:<password>@<freetds_name>/?charset=utf8
# Oracle示例
oracle+oracledb://user:pass@hostname:port[/dbname][?service_name=<service>[&key=value&key=value...]]
重要提示:插件运行在Docker容器中,localhost
指的是Docker内部网络,建议使用host.docker.internal
替代。
2. 执行SQL查询
使用SQL Execute工具可以直接查询数据库数据。输出格式可以通过OUTPUT FORMAT参数指定,支持多种格式:
- json(默认,输出到工作流节点的json变量)
- md(输出到text变量)
- 其他格式(csv、yaml、xlsx、html等)会生成文件并输出到files变量
3. 文本转SQL功能
Text to SQL工具可以将用户的自然语言输入转换为有效的SQL查询。如果指定了TABLES字段,则只会将这些表的结构信息传入LLM上下文。
4. 通过URL获取数据
可以通过HTTP请求从端点获取数据:
curl -X POST 'https://daemon-plugin.dify.dev/o3wvwZfYFLU5iGopr5CxYmGaM5mWV7xf/sql' \
-H 'Content-Type: application/json' \
-d '{"query":"select * from test", "format": "md"}'
安全注意事项
重要安全提示:sql_execute工具可以运行任何SQL查询,为了增强安全性,建议始终使用只读数据库账户进行连接。
总结
Database插件是一个功能强大且灵活的工具,特别适合需要频繁从数据库查询数据的开发者和数据分析师。它支持多种数据库类型和输出格式,并且提供了自然语言转SQL的智能功能,大大提高了工作效率。