Dify+Ollama+Qwen3案例实战:10分钟实现AI业务数据查询

1.具有里程碑意义的Qwen3

Qwen3是阿里巴巴于2025年4月29日发布的新一代开源大模型系列,作为通义千问(Qwen)家族的最新成员,它在性能、架构设计和应用场景上实现了多项突破。以下是核心特点:

(1)模型架构与性能

混合专家(MoE)与密集模型(Dense)并存:

包含两款MoE模型(Qwen3-235B-A22B和Qwen3-30B-A3B)和六款Dense模型(0.6B至32B),覆盖从轻量到超大规模需求。

旗舰模型Qwen3-235B-A22B:在数学、代码等基准测试中媲美DeepSeek-R1、Gemini-2.5-Pro等顶级模型,但激活参数仅22B,显著降低部署成本。

小模型高效:Qwen3-4B性能接近前代72B模型,MoE版30B模型激活参数仅3B,却超越Qwen2.5-32B。

(2)创新功能

双思考模式:

思考模式:逐步推理复杂问题(如数学、编程),类似人类深度思考。

非思考模式:快速响应简单请求,降低延迟。

用户可通过在提示词中设置/think和/no-think关闭和开启思考模式。

多语言与长上下文:

支持119种语言,训练数据达36万亿token(Qwen2.5的两倍)。上下文长度扩展至32K,优化长文本处理能力。

(3)应用与部署

Agent与工具调用:原生集成Qwen-Agent框架,简化工具调用和代码生成,适合开发智能应用。在BFCL评测中Agent能力超越Gemini 2.5-Pro。

低成本部署:仅需4张H20显卡即可运行满血版235B模型,显存占用为同类1/3。支持消费级设备(如4090显卡运行30B模型)。

2.Ollama部署Qwen3

(1)Ollama请自行安装,安装Qwen3所需的Ollama版本为v0.6.6或更高版本。

(2)使用命令行窗口输入:ollama run qwen3:8b,会自动安装模型。

img

3.Dify实战:搭建智能问数工作流

1Qwen3模型添加

安装ollama模型插件,添加Qwen3模型,由于机器所限,仅安装了Qwen3:8b和Qwen3:4b两个小模型,配置如下图所示:

img

2)创建知识库

将建表的sql语句文档作为知识库(包含表结构、字段注释等元数据),后续工作流节点中大模型根据知识库创建sql语句,选择"高质量"索引模式,使用Embedding模型将SQL文本向量化。
在这里插入图片描述

img

(3)创建对话工作流

创建新应用,在工作室点击“创建空白应用”,选择“Chatflow”作为应用类型,填写名称和描述后点击“创建”。

img

设计对话工作流

开始节点: 设置输入参数(如用户消息)。

知识检索节点: 从知识库中检索与用户问题相关的文本内容,可作为下游 LLM 节点的上下文来使用。这里通过知识库检索跟用户问题相关的数据库表结构,供大模型生成SQL语句。

大模型SQL生成节点: 调用大语言模型的能力,根据用户问题和知识库内容生成SQL语句,模型选择qwen3:8b,上下文选择知识检索的返回值,提示词如下:

img

代码执行节点: 通过python代码过滤生成sql语句中多余的内容,我们使用/no_think关闭思考模式时发现生成的sql还是有空的,这里通过代码过滤。

img

在这里插入图片描述

SQL查询工具:SQL查询工具这里使用rookie_text2data,可在Dify插件市场安装,通过SQL查询工具向数据库发送查询语句,然后返回查询到的数据,注意返回数据格式选择“JSON”。

img

代码执行节点:对SQL查询工具返回的数据进行处理,返回标准数据给模板转换节点。

在这里插入图片描述

模板转换节点:通过Jinja2 的 Python 模板语言灵活地进行数据转换、文本处理,通过模板转换节点构造html页面输出数据。
在这里插入图片描述

直接回复节点:将模板转换的输出内容直接做输出处理。

img

整个工作流设计如图所示:

img

输出效果展示:

哪位客户的订单数量最多?

img

客户订单数量前10名

img

客户订单金额前10名

img

产品销售前10名

img

实践证明Qwen3-8B模型在单表SQL构建场景中展现出卓越的性能表现,能够高效地将自然语言问题转化为精准的SQL查询语句,并返回正确的数据库查询结果,在10次的提问中有9次能够正确返回数据,当然跟用户的问题也有一定的关系。

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉 福利来袭CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

### 使用 DifyOllama 实现数据库查询 #### 创建知识库 为了使 Dify 能够理解和执行 SQL 查询,首先需要创建一个专门针对数据库的知识库。进入浏览器中的 Dify 平台,在顶部菜单栏选择“知识库”,然后点击“创建知识库”。按照指引完成如下配置: - **选择数据源**:如果目标是让系统学习特定表结构或常用查询模式,则可以考虑上传包含这些信息的文档作为训练材料;也可以通过 Web 爬虫抓取相关资料[^3]。 #### 配置嵌入模型 在文本分段与清洗阶段,“Embedding 模型”的选项应指向之前利用 Ollama 安装好的 `nomic-embed-text` 。这一步骤对于后续能够准确解析自然语言描述到对应的 SQL 语法至关重要。 ```bash systemctl start ollama ollama run nomic-embed-text ``` #### 设置混合检索参数 当涉及到实际的数据查询时,启用“混合检索”功能可以让系统更灵活地应对不同类型的请求。此方法融合了基于关键词的传统全文索引技术和现代语义相似度计算的优势,从而提高了返回结果的相关性和准确性。 #### 构建查询接口 为了让最终用户可以通过简单的对话形式发起复杂的数据分析需求,建议开发一套前端界面来接收输入并调用后台服务。该过程大致分为两步走——先将用户的提问转化为标准化的 SQL 表达式[^1],再由后端引擎负责具体执行并将所得记录整理成易于阅读的形式反馈给客户端显示出来。 ```python import sqlite3 def execute_sql(query_string): connection = sqlite3.connect('example.db') cursor = connection.cursor() try: result = list(cursor.execute(query_string)) column_names = [description[0] for description in cursor.description] formatted_result = { "columns": column_names, "rows": result } return formatted_result finally: connection.close() query_example = "SELECT * FROM table_name LIMIT 5;" execute_sql(query_example) ``` 上述代码片段展示了如何连接本地 SQLite 数据库以及获取前五行数据作为一个例子。当然,在生产环境中应当替换为合适的驱动程序以适配所使用的 DBMS 类型,并加入必要的错误处理逻辑确保稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值