Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/howl-anderson/weatherbot
一个基于 Rasa 的中文天气情况问询机器人(chatbot), 带 Web UI 界面
https://github.com/howl-anderson/weatherbot
chatbot chatbot-application chinese-chatbot chinese-nlp task-oriented-dialogue weather-bot
Last synced: about 1 month ago
JSON representation
一个基于 Rasa 的中文天气情况问询机器人(chatbot), 带 Web UI 界面
- Host: GitHub
- URL: https://github.com/howl-anderson/weatherbot
- Owner: howl-anderson
- License: mit
- Created: 2018-06-25T10:24:18.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-02-27T11:22:50.000Z (almost 6 years ago)
- Last Synced: 2024-05-01T13:32:55.584Z (8 months ago)
- Topics: chatbot, chatbot-application, chinese-chatbot, chinese-nlp, task-oriented-dialogue, weather-bot
- Homepage: http://weather_bot.xiaoquankong.ai/
- Size: 97.6 MB
- Stars: 234
- Watchers: 6
- Forks: 68
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WeatherBot
一个使用 Rasa 技术栈 (Rasa NLU, Rasa Core, Rasa Core SDK)构建的简单的中文天气情况问询机器人(chatbot), 附带有基于 Web 的用户界面(UI)## 功能
这个机器人可以根据你提供的城市(北京、上海等)和日期(明天、后天等),查询出相应的天气预报。## 功能截图
## 特性
使用 Frame-based 对话管理方案,如果上述两个 Slot (既城市和天气),有任意一个用户未提供,对话管理系统会负责让你澄清相关 Slot 的值。## 能力范围
* 受限于天气数据提供方的能力,这个机器人只能查询 **中国大陆地区市级城市** 三天以内 **(今天,明天,后天)** 的气象数据,**不能查询过去**(昨天,前天)等历史数据。
* 受限于开发时间,这个机器人 **不提供** 诸如 **这个星期五、下个星期一** 这种需要计算才能得到日期给定方式。也 **不能提供** 诸如 **绝对日期:三月一号、六一儿童节日** 这种日期的查询能力。
* 因为使用的是免费的天气查询接口,所以 **会有配额限制**,可能会因为 **超出调用次数** ,而在一个小时内不能用。同时网络查询接口可能存在不稳定因素,导致 **没有结果返回或者出现异常**,**尝试多次重新发送请求可解决问题**。## 动画演示
## 在线演示
[Demo for 天气预报查询机器人](http://weather_bot.xiaoquankong.ai/)## 文档说明
本项目采用了组件相互隔离(类似于微服务的思想)来构建整个系统。整个系统分成 4 个 APP:
| 组件 | 仓库地址 | 说明 |
| --- | --- | --- |
| `User Interface` | [WeatherBot_UI](https://github.com/howl-anderson/WeatherBot_UI) | 负责提供用户 UI ,方便用户使用,Rasa Core 支持和多种即时通讯软件(IM)的整合,Rasa Core 提供了一种称之为 Channel 的特性来方便接入 API。 |
| `Diaglog Manager` | [WeatherBot_Core](https://github.com/howl-anderson/WeatherBot_Core) | 负责管理整个对话的流程,它会主动调用 `NLU` 来解析用户的意图和提取相关的实体,在需要执行业务动作的时候会调用 `Action Server` 执行具体的业务动作。 |
| `NLU` | [WeatherBot_NLU](https://github.com/howl-anderson/WeatherBot_NLU) | 负责理解用户的意图和提取相关的实体。 |
| `Action Server` | [WeatherBot_Action](https://github.com/howl-anderson/WeatherBot_Action) | 负责执行自定义 Action (通常都是具体的业务动作,在本项目中是请求远程服务器以查询天气情况) |**NOTE** 4 个 APP 不在本仓库中,它们分别有独立的仓库,具体仓库地址见上面的列表。
## FAQ
* 如果在使用机器人中遇到解析失败或者 SSL 错误或者超时错误,请重试几次,数据提供商 `心知天气` 的 API 很不稳定,后续考虑替换成其他供应商## TODO
* 使用更加 Robust 的对话管理方案,目前的方案无法处理意图切换等复杂场景.
* 使用 [duckling](https://github.com/facebook/duckling) 做时间和日期的识别,效果将更加 Robust 和准确