视频加载失败

Dify应用实战番外 - 网友提问(1)

902 字
5 分钟
Dify应用实战番外 - 网友提问(1)

这两天有网友问,上次的课提到了数据库查询,对一般的人还是有点难度。所以希望大模型也能生成SQL,可以自己去查询数据库的数据。

麦金叔建议他使用文生SQL的模型,网友应该真的去尝试了,只不过还是有问题。那今天麦金叔就来演示一下,如何处理这一需求,并解决查询报错的问题。

**01.**动手做一做#

今天的任务专题是解决让大模型生成SQL查询语句,并利用数据库工具查询得到结果。

依然用工作流作为测试。添加下图所示节点,依次为”开始”,“LLM”,“参数提取器”,“SQL EXECUTE”和”结束”。

图片
图片

将”开始”节点,添加一个参数”user_promt”。这样在对话时,可以将查询要求填入。

“LLM”节点选择模型为”qwen2.5-72b-instruct”,上下文选择”开始”节点新增的参数”user_promt”,将系统提示词按如下填入:

请直接提供答案,无需解释思考过程。

根据用户输入 上下文

进行SQL的生成,最终结果仅包含SQL语句。

数据库的schema如下:

CREATE TABLE `doctor` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`department` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`description` text COLLATE utf8mb4_bin,
`status` tinyint(2) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `dep` (`department`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

其中status为医生工作状态,1表示医生正常工作,0表示医生暂停诊治。

title为医生的职称,description为医生擅长领域。

接着在”参数提取器”节点配置模型为”qwen2.5-32b-Instruct”,输入选择上一个”LLM”节点的text。

新建一个提取参数”sql_query”,指令部分填入:

忽略大模型输出的思考过程,即不要提取部分

图片
图片

“SQL EXECUTE”节点,保持和12节课数据库查询一致,并在”结束”节点输出查询结果。

保存后进行测试,结果如下图:

图片
图片

**02.**解释说明#

首先,需要添加一个”参数提取器”。因为大模型文生SQL的结果会是这样的结果:

{
"text": "\`\`\`sql\\nSELECT name, title, description \\nFROM doctor \\nWHERE department = '眼科' AND status = 1;\\n\`\`\`"
}

可以看到text的内容,是以sql开头的。那如果直接去运行,肯定不行呀。SQL查询语句还是需要严谨的,否则无法执行数据库查询。

当然,如果使用其他方法,比如”代码”或者”模版”也可以的,但都比”参数提取器”复杂。

其次,模型的选择上,“LLM”最后不要使用带有COT的模型,因为这一类模型强大是强大,还输出了思考过程,但只是给人看友好。而在工作流里面,还要进一步处理它,比较麻烦。还是直接用输出结果,而不给出思考过程的,更适合工作流。

最后,本着够用就行的原则,对问题理解并生成结果的模型需要参数大一些的模型,但是参数提取这种工作,就没必要也用参数大的,可以适当减小。毕竟实际工作中,在效果一致的前提下,能省一点是一点。

总结

今天的答疑来自网友的留言问题,实际上学习AI应用开发,一定不能照本宣科。要不断地尝试,碰到问题,并解决它,才能学以致用,为工作中能用上AI的能力打下坚实的基础。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Dify应用实战番外 - 网友提问(1)
https://blog.huhaha.vip/posts/9b437a3f/
作者
小王的博客
发布于
2025-07-23
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
Dify应用实战番外 - 网友提问(3)
AI本文集中解答Dify环境配置高频问题。针对代码节点依赖缺失与权限不足问题,详解沙箱环境requirements.txt配置→系统调用授权→Docker网络调试三套方案;破解数据库连接难题,提供公网部署、本地代理、连接字符串校验等实战技巧,解决90%环境配置异常,较传统调试方式效率提升70%。
2
Dify应用实战番外 - 网友提问(2)
AI本文实战解析Dify沙箱环境配置要点。针对代码节点依赖缺失与权限受限问题,详解通过requirements.txt安装第三方库→修改config.yaml授权系统调用→自定义镜像编译三套解决方案,展示如何突破沙箱执行限制。为数据处理、系统监控等场景提供Python脚本集成方案,较传统调试方式效率提升60%。
3
Dify应用实战(1)-知识库检索
AI本文通过工作流创建演示Dify知识库应用开发:1. 配置知识检索节点连接输入变量;2. 集成qwen2.5模型并编写精准提示词;3. 输出adcode实现地理编码转换。详解RAG技术四步流程:文档预处理(格式转换/分词清洗)→向量化(Embedding模型)→索引构建(HNSW优化)→查询匹配(相似度排序)。附工作流调试方法与追踪功能使用,适合AI应用开发者入门知识增强型服务搭建。
4
Dify应用实战(14) - 结果聚合
AI本文实战演示Dify变量聚合器的多路数据整合能力。通过在医疗分诊流程中部署聚合器节点,实现不同知识检索分支的结果统一归集→LLM节点集中处理。详解分支结果类型匹配机制及数据转换技巧,展示如何优化复杂工作流架构,为多条件查询、并行任务处理等场景提供标准化合并方案,有效降低40%重复节点配置,提升AI应用的可维护性。
5
Dify应用实战(5) - 使用模版
AI本文演示Dify模板引擎集成:1. 在数据加工流程后新增Jinja模板节点,实现动态数据与预设模板结合;2. 调整代码节点输出为字典格式(含温度/天气等字段);3. 详解模板语法(变量插值{{}}/循环判断逻辑)。通过天气简报模板示例,展现如何将JSON数据转换为自然语言描述,并扩展演示多条件内容生成(HTML列表/带逻辑的报表),为自动化报告、多格式输出等场景提供标准化解决方案。
随机文章随机推荐

评论区

Profile Image of the Author
小王的博客
一个上了年纪的猿人.
分类
标签
最新动态
站点统计
文章
209
分类
15
标签
161
总字数
478,322
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录