视频加载失败

Dify应用实战(13) - 工具调用

1108 字
6 分钟
Dify应用实战(13) - 工具调用

今天我们学习大语言模型的Function Calling的使用。

学习完成,你将初步获得调用工具的能力。本节内容,非常考察动手能力,建议需要反复调试,并理解大语言模型的基础能力知识。

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

今天的任务需要重开一个对话应用。当条件成熟之后,才能将今日所学集成进之前的AI应用开发中。

图片
图片

将默认生成的3个节点中的第2个删除。并添加”Agent”节点。

图片
图片

接着对该节点做配置,按下图步骤进行设置。

图片
图片

选择完Function Callinging之后,就会出现真实的配置。

图片
图片

首先需要手动选择一个配置的大语言模型。这里需要注意,不是所有的大模型都内在支持Function Calling,所以这就要求我们对大模型基础有一定的了解。比方说这一段时间非常热门的DeepSeek模型,就并没有支持Function Calling。

然后添加大模型调用的工具。这里添加了时间获取和查询天气这两个工具。

图片
图片

图片
图片

“指令”输入框中添加如下内容:

如果用户问到天气问题,你可以使用工具来帮你完成任务。

1. 根据城市和日期查询天气,使用时必须提供城市和日期两个参数,提供参数的方式要满足如下结构:

{
"name":"get_weather",
"arguments": {
"city": 查询的城市
"date": 查询的日期
}
}

2. 根据用户的描述,比如,“今天”,“明天”,“昨天”,“下周一”,获取实际日期,使用时,必须提供用户对于日期的描述这个参数,提供参数的方式要满足如下结构:

{
"name": "time",
"arguments": {
"query": 用户对日期的描述
}
}

而”查询”输入框,可以直接用”输入节点”的用户输入。如下图所示:

图片
图片

最后将”Agent节点”,与”回复节点”连接,输出修改为Agent的TEXT。保存之后,我们进行测试,如下:

图片
图片

如果你动手做完了,测试的时候并没有得到跟麦金叔的结果一样的内容,那说明你的操作并没有问题,只是细节需要进一步打磨。

这也是今天的内容设置为”高级”的原因。接着,试着自己去调用不同的大模型,修改提示词。然后查看运行日志,以得到当中的各个步骤符合预期。

**02.**补充说明#

今天学的Agent,对于普通人来说非常有难度。

需要自行补充有关大模型的基础能力的知识。

什么是Function Calling#

大语言模型的Function Calling能力允许模型调用外部函数或服务,以扩展其自身的能力,执行它本身无法完成的任务。以下是一些Function Calling的使用场景:

使用场景说明
增强能力大模型通过Function Calling可以调用外部工具或服务,例如实时数据检索、文件处理、数据库查询等,从而扩展其能力。
实时数据访问由于大模型通常基于静态数据集训练,不具备实时信息。Function Calling允许模型访问最新的数据,提供更准确、更及时的回答。
提高准确性在需要精确计算或特定领域知识时,大模型可以通过调用专门的函数来提高回答的准确性,例如调用数学计算函数、翻译服务或专业知识库。

虽然有上述能力扩展,但是它不像工作流那般定义清晰。这种隐式的调用,考验着AI应用开发者对于大模型的理解,并需要不断的迭代优化,才能最终获得期望的效果。

总结

今天学习一个新的组件”Agent”,并将工具模式设置为了”Function Calling”。有了它在AI应用开发中,能增强大模型的能力,可以对模型训练后发布之后的知识进行更新补充,不会再出现回答结果明显有时间断档的问题。

但是,这个能力又是一柄双刃剑。如果不了解其概念和知识,会发现很难驾驭它。

支持与分享

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

打赏
Dify应用实战(13) - 工具调用
https://blog.huhaha.vip/posts/8e3cb690/
作者
小王的博客
发布于
2025-07-23
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
Dify应用实战(2) - 联网工具
AI本文演示Dify工作流扩展能力:1. 在知识库检索流程后新增高德天气API节点,实现adcode到实时天气转换;2. 详解工具节点参数配置(输入绑定LLM输出/输出映射最终结果);3. 介绍自定义工具开发框架(继承BuiltinTool类实现业务逻辑封装)。通过外部API集成突破大模型实时数据局限,为构建天气预报、金融数据等场景应用提供标准范式,展现Dify工作流编排的扩展性与实用性。
2
Dify应用实战(14) - 结果聚合
AI本文实战演示Dify变量聚合器的多路数据整合能力。通过在医疗分诊流程中部署聚合器节点,实现不同知识检索分支的结果统一归集→LLM节点集中处理。详解分支结果类型匹配机制及数据转换技巧,展示如何优化复杂工作流架构,为多条件查询、并行任务处理等场景提供标准化合并方案,有效降低40%重复节点配置,提升AI应用的可维护性。
3
Dify应用实战(5) - 使用模版
AI本文演示Dify模板引擎集成:1. 在数据加工流程后新增Jinja模板节点,实现动态数据与预设模板结合;2. 调整代码节点输出为字典格式(含温度/天气等字段);3. 详解模板语法(变量插值{{}}/循环判断逻辑)。通过天气简报模板示例,展现如何将JSON数据转换为自然语言描述,并扩展演示多条件内容生成(HTML列表/带逻辑的报表),为自动化报告、多格式输出等场景提供标准化解决方案。
4
Dify应用实战(15) - 对象存储
AI本文实战演示Dify企业级存储方案配置。通过修改.env文件切换存储类型→配置S3/Minio连接参数→重启服务生效,实现文件存储从本地迁移至对象存储。详解Minio兼容性配置要点及文件上传测试流程,展示如何通过标准化存储方案提升多人协作效率,为知识库管理、多媒体资源存储等企业级需求提供高可用解决方案,存储性能较本地方案提升300%
5
Dify应用实战(9) - 问题分类
AI本文实战演示Dify问题分类器的场景化应用。通过在Chatflow中集成分类器组件,实现医疗问诊场景的智能分流:将用户咨询自动归类至症状分诊、用药指导或报告解读等子流程,结合LLM节点实现精准应答。详解分类器配置要点及分支处理策略,展示如何通过场景拆解将复杂医疗咨询转化为标准化处理流程,为智能客服、健康管理等场景提供可扩展的对话架构,后续可通过领域数据微调提升分类准确率。
随机文章随机推荐

评论区

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