### 3.4.6 天气预报 #### (1) 功能说明 支持国内国外5万个城市、十项天气数据、七天内的天气预报查询。自然语言理解、300+天气实体识别、多轮对话实现天气预报智能化查询。返回给用户各项天气数据。 #### (2) 接口说明 **请求方法** * POST **请求地址** * http://api.ruyi.ai/v1/message **请求参数说明** |参数名| 参数类型| 是否必须| 参数说明 |:---|:---|:---|:--- |q |String|Yes|自然语言表达,例如“今天上海的天气如何" |app_key|String|Yes| 应用开发者秘钥,注册开发者后台账号,建立虚拟助理后获得 |user_id |String |Yes |用户唯一标识,便于支持个性化语义解析。建议开发者使用 UUID 字符,且不同用户必须用不同的 user_id,防止意图串。 |reset_session|Boolean|No|如果为true,重置当前对话session,忘记短期对话记忆。 |context|String|No|用户上下文信息,json字符串格式 **Context参数说明** | Field | Type | Required | Description | | --- | --- | --- | --- | | location | JSON Object | No | 用户当前位置,`Location`实体的一个实例:`location:{"latitude": "31", "longitude": "121"}`,分别传入经度和纬度数值。 | | reference\_time | Long | No | 用户当前参照时间,unix时间毫秒 | | timezone | String | No | 用户当前时区的标准ID字符串, 例如`"Asia/Shanghai"` | |ip|String|No|用户IP| **Context范例** > 在开发者后台意图处理中,通过将实体 **_值_** 设置为“#ruyi_default_context.user.location.latitude”,即可获得用户当前位置维度。 JSON示例。 ```json { "reference_time": 1447499684824, "timezone": "Asia/Shanghai", "location": { "latitude": "31.215", "longitude": "121.609" } } ``` #### (3) 返回说明 **返回参数说明** |名称 |类型| 说明 |:---|:---|:--- |code |Integer | 返回代码 |msg | String |返回代码描述 |parameters|JSON Object |解析到的实体以及服务说明 |action|String|触发器名称 |name| String|匹配的意图名称 |result | JSON Object| 接口返回内容 |outputs| Array| 服务输出结果,微信端使用 type 类型为 wechat. 开头的内容;硬件端收到所有内容,依据需求解析使用 **返回代码说明** |返回代码 |错误类型|说明 |:---|:---|:--- |0/200 |成功 |请求成功 |400 |无效请求 |某些必需参数缺失或参数值错误,详见msg字段 |401 |未授权 |授权失败,app_key 缺失或错误 |403 |请求被禁止|有效请求,但服务拒绝响应,请联系contact@ruyi.ai |408 |请求超时 |请求响应超时,一般响应时间设置为2000ms以内 |429 |短时间内大量访问 |短时间内请求数过多 |500 |内部错误 |服务处理异常 |503 |服务不可用|服务异常或正在维护 #### (4)请求示例 **请求范例** _今天上海的天气如何;那明天呢;那北京呢_ _今天上海的湿度怎么样_ _今天北京紫外线强吗_ _今天北京有没有雾霾呀_ _今天上海会下雨吗_ **请求示例** * http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=今天上海天气如何 返回结果 ```json { "code": 0, "msg": "ok", "result": { "_text": "今天上海天气如何", "msg_id": "9867c8a0-c404-4051-a802-52f0c56bb52d", "intents": [{ "parameters": { "location": "上海", "date": "2016-12-15", "service": "weather", "location_raw": "上海" }, "action": "sys.action.weather2", "name": "以日期和城市查询天气", "result": { "month_day": "12月15日", "week_day": "星期四", "suggestion": { "air": { "brf": "较差", "txt": "气象条件较不利于空气污染物稀释、扩散和清除,请适当减少室外活动时间。" }, "comf": { "brf": "较舒适", "txt": "白天虽然天气晴好,但早晚会感觉偏凉,午后舒适、宜人。" }, "cw": { "brf": "较适宜", "txt": "较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。" }, "drsg": { "brf": "较冷", "txt": "建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。" }, "flu": { "brf": "易发", "txt": "昼夜温差很大,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。" }, "sport": { "brf": "较适宜", "txt": "天气较好,但考虑气温较低,推荐您进行室内运动,若户外适当增减衣物并注意防晒。" }, "trav": { "brf": "适宜", "txt": "天气较好,气温稍低,会感觉稍微有点凉,不过也是个好天气哦。适宜旅游,可不要错过机会呦!" }, "uv": { "brf": "中等", "txt": "属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。" } }, "aqi": { "city": { "aqi": "93", "co": "1", "no2": "77", "o3": "32", "pm10": "85", "pm25": "69", "qlty": "良", "so2": "25" } }, "day_weather": { "astro": { "sr": "06:45", "ss": "16:53" }, "cond": { "code_d": "100", "code_n": "100", "txt_d": "晴", "txt_n": "晴" }, "date": "2016-12-15", "hum": "57", "pcpn": "0.0", "pop": "0", "pres": "1031", "tmp": { "max": "7", "min": "2" }, "uv": "4", "vis": "10", "wind": { "deg": "327", "dir": "西北风", "sc": "微风", "spd": "6" }, "condition": "晴" }, "weatherEntity": "", "is_weather": "no", "basic": { "city": "上海", "cnty": "中国", "id": "CN101020100", "lat": "31.213000", "lon": "121.445000", "update": { "loc": "2016-12-15 19:51", "utc": "2016-12-15 11:51" } }, "text": "上海 12月15日 星期四\\n晴\\n2℃~7℃ \\nPM2.5: 69 (良)\\n白天虽然天气晴好,但早晚会感觉偏凉,午后舒适、宜人。 ", "type": "dialog" }, "outputs": [{ "type": "wechat.text", "property": { "text": "上海 12月15日 星期四\\n晴\\n2℃~7℃ \\nPM2.5: 69 (良)\\n白天虽然天气晴好,但早晚会感觉偏凉,午后舒适、宜人。 " } }, { "type": "dialog", "property": { "text": "上海 12月15日 星期四,晴,2℃至7℃ ,P M2.5是 69 (良) ", "emotion": "calm" } }], "score": "1.0", "scoreColor": "c4", "is_match": 1, "id": "86499987-5807-4f3b-833a-d01f4dfe4ef1" }], "meta_process_milliseconds": 847 } } ``` **详细参数说明** |名称 |类型| 说明 |:---|:---|:--- |service| String |服务名称 |month_day|String|日期 |week_day|String |星期 |suggestion|dictionary|生活指数,仅限国内城市| |air|String|空气质量指数 |brf|String |简介 |txt|String |详细描述 |comf|String|舒适度指数 |cw|String |洗车指数 |drsg|String |穿衣指数 |flu|String |感冒指数 |sport|String |运动指数 |trav|Stirng|旅游指数 |uv|String |紫外线指数 |daily_forecast|String |天气预报 |vis|String |能见度 |wind|String |风力情况 |deg|String |风向(360度) |sc|String |风力等级 |spd|String | 风速 |dir|String |风向 |pres|String |气压 |astro|String |天文指数 |mr|String |月升时间 |sr|String |日出时间 |ss|String |日落时间 |ms|String |月落时间 |cond|String |天气状况 |code_n |String |夜间天气状况代码 |code_d|String |白天天气状况代码 |txt_n|String | 夜间天气状况描述 |txt_d|String | 白天天气状况描述 |tmp|String |温度 |max|String |最高温度 |min|String |最低温度 |pop|String |降水概率 |date|String |日期 |pcpn|String |降水量 |hum|String |相对湿度 |aqi|String |AQI |city|String |城市名 |no2|String |NO2 |pm10|String |PM1010 |o3|String |O3 |qlty|String |空气质量,共六个级别,分别:优,良,轻度污染,中度污染,重度污染,严重污染 |pm25|String |PM2.5 |so2|String |SO2 |co|String |CO |basic|String |基本信息 |prov|String |城市所属省份(仅限国内城市) |lat|String |纬度 |cnty|String |国家 |update|String |更新时间 |utc|String |UTC时间 |loc|String |当地时间 |id|String |城市ID |lon|String |经度 |now|String |实况天气 |fl|String |体感温度