DeepSeek+dify 工作流应用,自然语言查询数据库信息并展示
在写连接外部数据库查询的时候,我就想普通的业务人员没有编程背景,不懂数据库,可他们想查询统计一些东西怎么办?只能找对应的开发人员写sql了,那我是不是可以用工作流解决这个问题。我把库表结构从数据库里导出一份表结构,导出到相同的文件里,建立一个知识库。里写的python脚本改下,由关键词检索改成sql检索。技术纵深:高并发架构 | 应用调优 | 分布式系统。管理沉淀:8年技术团队管理 | 百万级DA
背景
在写连接外部数据库查询的时候,我就想普通的业务人员没有编程背景,不懂数据库,可他们想查询统计一些东西怎么办?只能找对应的开发人员写sql了,那我是不是可以用工作流解决这个问题。
简单的梳理了下流程。
脚本
我先把在 DeepSeek+dify知识库,查询数据库的两种方式(api+直连)里写的python脚本改下,由关键词检索改成sql检索。
from flask import Flask, request, jsonify
import pymysql
app = Flask(__name__)
# 数据库配置
DATABASE_CONFIG = {
'host': '', # 自己的数据库地址
'user': '', # 自己数据库的账户
'password': '', #自己数据库的密码
'db': 'demo', # 自己数据库的库名
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor
}
@app.route('/query', methods=['POST'])
def query_database():
print("接收到请求")
# 获取查询sql
querySql = request.json.get('querySql')
print("querySql为:"+querySql)
# 去除 Markdown 标识和不必要的字符
if querySql:
# 去除开头的 ````sql`
querySql = querySql.replace('```sql\n', '')
# 去除结尾的 ``<EOF>``
querySql = querySql.replace('\n<<EOF>>', '')
# 去除多余的空格和换行符
querySql = querySql.strip()
# 将换行符替换为空格(如果需要保持多行,可以省略这一步)
querySql = querySql.replace('\n', ' ')
querySql = querySql.replace('```', ' ')
# 去除多余的空格
querySql = ' '.join(querySql.split())
if not querySql:
return jsonify({"error": "querySql is required"}), 400
try:
# 建立数据库连接
connection = pymysql.connect(**DATABASE_CONFIG)
with connection.cursor() as cursor:
# 执行查询
cursor.execute(querySql)
result = cursor.fetchall()
connection.commit()
connection.close()
if not result:
return "未查询到有效数据", 400
# 生成 Markdown 表格
markdown_table = generate_markdown_table(result)
return markdown_table, 200
except Exception as e:
return str(e), 500
def generate_markdown_table(results):
""" 生成 Markdown 表格 """
if not results:
return ""
# 获取列名
columns = results[0].keys()
# 表头
table_md = "| " + " | ".join([col for col in columns]) + " |\n"
# 分隔线
table_md += "| " + " --- |" * len(columns) + "\n"
# 表格内容
for row in results:
table_md += "| " + " | ".join([str(cell) for cell in row.values()]) + " |\n"
return table_md
if __name__ == '__main__':
app.run(host='10.1.0.65', port=8000)
执行命令python .\server2.py
,启动服务
知识库
数据准备与结构分析
我把库表结构从数据库里导出一份表结构,导出到相同的文件里,建立一个知识库。要求数据库表必须有完整的注释。
我们可以看到导出的表结构我们可以用DROP TABLE IF EXISTS
分割文本。
创建知识库
将导出的表结构,上传到知识库。
按照DROP TABLE IF EXISTS
分割文本,将2
设置为4000,预览下分段,效果还行,把最大分段长度
调大,防止同一个表结构被分到不同的段落。
我们使用混合检索,Score
的阈值不要调太大,一般0.3即可,别看图。
复制工作流
回到工作室,我们复制一个工作流出来。
改下名称。
节点设置
添加一个知识检索节点,把开始节点的用户输入context
作为查询变量,添加刚才添加的数据库知识库。
我们把LLM节点调整下,修改下2
的名称,上线文2
改成知识检索的结果.调整下提示词让它根据知识和用户需求生成查询sql。
调整下HTTP请求中的查询字段,我改成了querySql
,根据自己的代码来。
结束节点直接把HTTP的body返回。
最后整体流程。
调试
写sql的能力忽高忽低,得找个代码模型。
后记
1
表结构的注释很关键2
分段也很关键3
匹配度0.3
就可以了4
可以不断的优化提示词,优化sql5
deepseek一直返回思考过程,可以在后端去掉或者在dify中通过代码来移除6
这只是一个示例,生产需要不断的调试
相关资料
清华DeepSeek相关资料
https://pan.quark.cn/s/5c1e8f268e02
https://pan.baidu.com/s/13zOEcm1lRk-ZZXukrDgvDw?pwd=22ce
北京大学DeepSeek相关资料
https://pan.quark.cn/s/918266bd423a
https://pan.baidu.com/s/1IjddCW5gsKLAVRtcXEkVIQ?pwd=ech7
零基础使用DeepSeek
https://pan.quark.cn/s/17e07b1d7fd0
https://pan.baidu.com/s/1KitxQy9VdAGfwYI28TrX8A?pwd=vg6g
ollama的docker镜像
https://pan.baidu.com/s/13JhJAwaZlvssCXgPaV_n_A?pwd=gpfq
deepseek的模型(ollama上pull下来的)
https://pan.quark.cn/s/dd3d2d5aefb2
https://pan.baidu.com/s/1FacMQSh9p1wIcKUDBEfjlw?pwd=ks7c
dify相关镜像
https://pan.baidu.com/s/1oa27LL-1B9d1qMnBl8_edg?pwd=1ish
ragflow相关资料和模型
https://pan.baidu.com/s/1bA9ZyQG75ZnBkCCenSEzcA?pwd=u5ei
公众号案例
https://pan.quark.cn/s/18fdf0b1ef2e
https://pan.baidu.com/s/1aCSwXYpUhVdV2mfgZfdOvA?pwd=6xc2 ]( https://pan.baidu.com/s/1aCSwXYpUhVdV2mfgZfdOvA?pwd=6xc2 )
总入口(有时候会被屏蔽):
https://pan.quark.cn/s/05f22bd57f47提取码:HiyL
https://pan.baidu.com/s/1GK0_euyn2LtGVmcGfwQuFg?pwd=nkq7
系列文档:
DeepSeek本地部署相关
ollama+deepseek本地部署
局域网或断网环境下安装DeepSeek
DeepSeek相关资料
清华出品!《DeepSeek从入门到精通》免费下载,AI时代进阶必看!
清华出品!《DeepSeek赋能职场应用》轻松搞定PPT、海报、文案
DeepSeek个人应用
不要浪费deepseek的算力了,DeepSeek提示词库指南
服务器繁忙,电脑配置太低,别急deepseek满血版来了’
DeepSeek+本地知识库:真的太香了(修订版)
DeepSeek+本地知识库:真是太香了(企业方案)
deepseek一键生成小红书爆款内容,排版下载全自动!睡后收入不是梦
最轻量级的deepseek应用,支持联网和知识库
dify相关
Deepseek+Dify本地知识库相关问题汇总
dify的sandbox机制,安全隔离限制
DeepSeek+dify 本地知识库:高级应用Agent+工作流
DeepSeek+dify知识库,查询数据库的两种方式(api+直连)
DeepSeek+dify 工作流应用,自然语言查询数据库信息并展示
聊聊dify权限验证的三种方案及实现
dify1.0.0版本升级及新功能预览
ragflow相关
DeepSeek+ragflow构建企业知识库:突然觉的dify不香了(1)
DeepSeek+ragflow构建企业知识库之工作流,突然觉的dify又香了
关于我
资深全栈技术专家 | 互联网领域十年架构沉淀
技术纵深:高并发架构 | 应用调优 | 分布式系统
技术版图:Java/Vue/Go/Python
管理沉淀:8年技术团队管理 | 百万级DAU经验
专注输出:
✓ 架构思维 × 技术管理 × 全栈实战
✓ 新技术应用 × 行业趋势前瞻
📢【三连好运 福利拉满】📢
🌟 若本日推送有收获:
👍 点赞 → 小手一抖,bug没有
📌 在看 → 一点扩散,知识璀璨
📥 收藏 → 代码永驻,防止迷路
📤 分享 → 传递战友,功德+999
🔔 关注 → 关注5ycode,追更不迷路,干货永同步
💬 若有槽点想输出:
👉 评论区已铺好红毯,等你来战!
更多推荐
所有评论(0)