Dify大模型应用开发(Task4-MCP、多模态入门-语音文本转化)
---🐳Task4️⃣:
Dify进阶工具方向:
1.MCP实战
2.语音文本转化任务
学习时长:3天
❗️截止时间 12月27日03:00
飞书云文档的教程:
https://ai.feishu.cn/docx/RLVSdcLZZo7qhjxbsyTcNT2bnf5?from=from_copylink
大家好,Task4开始就是更高级的MCP任务和多模态大模型应用的任务了。这里的操作并不多,跟着教程操作就好。这次发现火山引擎的大模型也是有免费token可用的(每个模型50万token),之前误会它了。MCP的12306案例每次使用都需要过万的token,复杂的东西就是比较费“脑子”,哈哈哈!
此任务难点在于理解MCP的工作原理和调用方法。
避雷①:12306MCP调用过程中找不到工具

上图右侧的运行记录中,出现了“12306-MCP”工具不存在的问题,然后大模型调用工具列表又找到了正确的工具,最后得到了答案。这是由于,提示词中指示了使用“12306-MCP”工具回答,但是MCP工具列表里并没有此名称的工具。然后,自动获取MCP工具列表后,又找到了正确的工具。
那么,明明之前配置了“12306-MCP”,为什么没有“12306-MCP”工具呢,正确的工具又是什么呢?
一开始,我以为大模型是根据MCP配置里的名称去寻找MCP工具的。所以,我修改了agent提示词(见上图左侧提示词),明确去使用“12306-MCP”工具。其实这是错误的。这直接导致了大模型在MCP工具中调用“12306MCP”工具,但根本找不到此工具。
为什么呢?因为Dify的MCP配置,只需要提供一个链接地址(入口),Dify通过这个地址就可以使用MCP提供方已经设定好的工具名称,还有详细的参数说明和功能描述,这些内容都不需要Dify开发者去定义或编辑。
拿教程里的提示词来说明,
你叫“火车侠”,是12306-MCP专属AI助理,专注于铁路出行服务。你的核心任务是:
调用MCP工具时先获取工具列表,再选择12306-MCP来回答。需要了解清楚本MCP如何使用。查询车票、规划行程,提供最优推荐。
“调用MCP工具时先获取工具列表”:提示词中的这句话就可以调取全部MCP中的工具,包含我们设置的时间工具+12306MCP里包含的所有工具。(其实,这里完成可以不用自己添加时间工具,因为12306MCP里已经包含了获取时间的工具)
所以,按照教程里的提示词设置就好,不用自己修改提示词。
下图是我在Dify中配置MCP的内容:

下面是MCP服务配置的内容,可以copy,把url换成自己再魔搭社区生成的12306MCP服务地址即可。
{ "mcpServers":
{ "12306MCP":
{
"type": "sse",
"url": "https://mcp.api-inference.modelscope.net/sse"
}
}
}
避雷②:12306MCP查不到结果
用户提出查询问题后,大模型的运行流程如下:
step1:查询MCP工具列表;
step2:确定要查询的日期;(例如,明天、未来七天是什么日期)
step3:查询城市或车站代码(12306MCP是根据城市的字母代码去查询的,所以,这里要找到用户输入的城市的代码,查不到结果就是这里的输入格式出了问题)
step4:查询指定日期、指定出发城市、到达城市的火车信息。
对比一下查询正确和查询错误的原因:
下图是错误的,

❌错误的 "arguments":{"citys":"广州|沈阳"}
响应里报错,不是正确的json格式。
下图是正确的,

✅正确的 "arguments":"{\"citys\":\"广州|沈阳\"}"
大括号也要在双引号内,这才是正确的json格式。
这里的输入是大模型自己给出的,通过修改提示词,也无法控制,有时候正确有时候错误。
如何解决这个问题的呢?
跟教程里的方法一样,使用效果好的大模型doubao-seed-1.6(有两个版本,我用的新版本的,效果也很好)
总结,这个任务跟之前的比就比较费token了、吃算力了,我的本地根本运行不了这样的大模型。
所以,一些简单的内容还可以交给本地的大模型做。遇到这种大模型自由度高的任务,需要更聪明的大模型,就只能用API的方法了。
运行一次就上万token,我用硅基流动qwen3-235B-A22B-Instruct2507调试效果,就花了1块多。使用豆包的消耗的token,11次就消耗了35,893tokens,见下图。遇到任务复杂的花费可想而知。(后面还有视频的任务😂)

避雷③:语音文本转化任务输入时麦克风不可用

在“管理”中启用了语音转文本功能后,使用麦克风输入时,麦克风有接收到语音,但是转文字时提示“麦克风不可用”,这是因为没有发布,发布后就可以正常使用了。
好了,Task4的总结就到这里了。如有问题欢迎留言讨论!
更多推荐

所有评论(0)