Coze 实战指南:天气预报工作流
天气预报是我们日常生活中最常用的功能之一。无论是安排出行、规划活动还是应对突发天气,准确的天气预报都至关重要。今天,我将手把手教你如何在 Coze 平台上搭建一个功能完善的天气预报工作流,让你能够灵活查询任意地区、任意时间段的天气情况。
一、工作流设计思路
这个天气预报工作流的设计目标是让用户能够查询指定省份、城市和乡镇在特定时间段内的天气情况。无论是查询单日天气还是多日天气,系统都能智能处理并返回清晰易读的结果。
整个流程模拟了人类的思考方式:先确定要查什么(地点和时间),然后获取天气数据,接着根据查询天数决定如何处理这些数据,最后整理成文字呈现给用户。
工作流完整示例:

二、搭建工作流的具体步骤
第一步:设置查询参数
任何有效的查询都需要明确的输入条件。我们在工作流的开始节点设置五个关键变量:
- 省份:要查询天气的省份名称
- 城市:所在城市名称
- 乡镇:具体乡镇或区域(可选)
- 开始查询时间:查询的起始日期
- 结束查询时间:查询的结束日期
这五个变量就像是给系统下达的明确指令,告诉它我们需要什么地点、什么时间段的天气信息。设置完成后,系统就知道该去哪里、查询何时段的天气数据了。

参数介绍:
- city:查询城市
- strat_time:开始时间
- end_time:结束时间
- towns:区/县/镇
- villages:乡村
第二步:连接墨迹天气插件
有了明确的查询目标,接下来就需要获取真实的天气数据。我们通过连接墨迹天气插件来实现这一功能。
在 Coze 平台中,你可以轻松找到墨迹天气插件并将其接入工作流。配置插件参数时,只需将前面设置的五个变量映射到插件的对应输入字段即可。这个过程就像是给插件下达任务单,告诉它:“请根据这些地点和时间参数,给我相应的天气数据。”
(直接在插件里面搜“墨迹天气”)

插件配置完成后,当工作流运行时,系统就会向墨迹天气服务发送请求,并带回专业的天气预报信息,包括温度、湿度、风力、天气状况等详细数据。
第三步:连接条件分支节点
获取到天气数据后,系统需要根据查询天数的不同,采取不同的处理策略。这里我们使用条件分支功能来进行智能判断。
系统会自动计算开始查询时间和结束查询时间之间的天数差,然后根据这个差值走向不同的处理路径:
- 查询天数等于1:表示用户只需要单日天气,走简化处理路径
- 查询天数大于1:表示用户需要多日天气,走复杂处理路径

这种分叉处理的设计,确保了无论是简单的单日查询还是复杂的多日查询,都能得到最适合的数据展示形式。
配置逻辑:
当开始时间(start_time)等于结束时间(end_time)或结束时间(end_time)为空时,则简化处理。否则进入循环体。
第四步:差异化数据处理
根据查询天数的不同,数据会进入不同的处理流程:
- 多日查询(大于1天):
当查询多日天气时,系统会启动循环设置功能,逐日处理天气数据。循环完成后,这些分散的每日天气信息需要通过代码节点进行整合。代码节点会将多条天气记录汇总成一条完整的天气报告,保持信息的完整性和可读性。

step 01:在条件分支节点后接入循环体节点,循环设置配置如下:
- 循环类型:使用数组循环
- 循环数组:设置一个变量“input”来获取墨迹天气插件的输出值(这里默认是数组形式输出)

中间变量:设置一个变量名为“var_data”来获取墨迹天气插件的输出值,和循环数组的参数配置一样
输出:设置一个变量名为“output”的参数来获取循环体的输出值

step 02:进入循环体配置,配置如下:
我们想要的结果是系统将多天的天气预报按照固定格式拼接在一起,然后输送出来。所以这里我们只需要在循环体中接入文本处理,把获取到的字符串数据拼接完成,让系统根据此模版来进行循环处理即可
完整的天气预报结果示例:

从示例中看到,我们需要的信息有:查询时间、整体天气、温度范围、湿度、早晚风向等,因此,我们在循环体中的文本处理节点的参数配置中,就需要配置如下参数来接收这些数值,这里我们可以返回“墨迹天气”插件,查看输出参数中的变量名,找到符合我们想要的,记录起来,在文本处理节点中配置好即可
(这些是墨迹天气输出的参数,不懂什么意思可以试运行一次,看输出的结果)
在文本处理节点中,设置以下10个参数,来获取墨迹天气中我们想要的参数值,这里简单解释下各参数的意思
- predict_date:查询日期
- condition:当天天气情况
- temp_high:最高温度
- temp_low:最低温度
- humidity:当天湿度
- weather_day:白天天气情况
- wind_dir_day:白天风向
- wind_level_day:白天风向级数
- wind_dir_night:晚间风向
- wind_level_night:晚间风向级数

设置好参数后,接下来开始处理字符串拼接里面的内容

具体拼接如下:
🌤️{{String1}}天气预报:
【整体天气】{{String2}}
【温度范围】{{String3}}℃ ~ {{String4}}℃
【湿度】{{String5}}
【白天详情】
☀️ 天气:{{String6}}
💨 风向:{{String7}},{{String8}}级
【夜间详情】
💨 风向:{{String9}},{{String10}}级
PS:当然,你可以根据你自己想要的信息自行配置,这里不做过多说明
step 03:接入代码节点

在循环设置节点后接入代码节点,用来接收多天天气预报数据,并进行整理
- 首先设置一个“input”参数用来接收循环组件的输出数组

- 再进行代码配置,代码如下:
import _ from 'lodash';
async function main({ params }: Args): Promise<Output> {
const { input } = params;
const key0 = input.join('\n\n');
return {key0: key0};
}
- 最后设置一个输出变量名

step 04:配置完成后,将该代码节点接入另外一个代码节点,这里将另外一个代码节点重命名为“参考判断”,用来进行数值的判断

- 单日查询(等于1天):
单日天气查询相对简单,直接在条件分支节点后接入文本处理节点,通过拼接字符串即可。参数设置和字符串拼接参考多日查询中循环体内的文本处理设置,这里不做过多赘述。设置完成后,同样接入名称为“参数判断”的代码节点

第五步:参数值判断
因为前面使用了条件分支,所以会从两个分支方向分别出来不一样的数值,只不过有一个分支会出现空值,如果直接将两个分支的节点都传输给最终的结束节点的话,那么呈现出来的结果会有一个空值,所以这里我们需要接入代码节点来做一个判断,将有数据的值传输给结束节点即可

这里配置两个变量,用来接收单日查询和多日查询传输过来的值,然后配置好代码,代码如下:
import dayjs from 'dayjs';
import _ from 'lodash';
async function main({ params }: Args): Promise<Output> {
const { input, input2 } = params;
let key0: string | undefined;
if (input) {
key0 = input;
} else if (input2) {
key0 = input2;
}
return { key0 };}
同样,设置好输出参数:

第六步:结束节点
最后传输给结束节点,在结束节点设置一个变量来接收“参数判断”代码节点传输过来的结果即可

第七步:试运行
最后点击试运行,完整的结果如下:

通过这个工作流,你不仅能够快速获取天气信息,还能根据个性化需求灵活调整查询范围和时间跨度,真正实现了天气预报查询的智能化和定制化。
在 Coze 平台上搭建天气预报工作流,整个过程直观而高效。从设置查询参数到最终结果展示,每一步都有明确的逻辑和目标。这个工作流不仅解决了基本的天气查询需求,还通过智能判断和差异化处理,提升了用户体验。
无论你是 Coze 新手还是有经验的用户,都可以按照这个流程搭建属于自己的天气预报系统。随着对平台功能的熟悉,你还可以进一步扩展这个工作流,比如添加天气预警、生活指数等更多实用功能,让它更好地服务于你的日常生活和工作需求。



