Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
charlesXu86 committed Nov 17, 2020
0 parents commit 0d002df
Show file tree
Hide file tree
Showing 48 changed files with 3,319 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/Chatbot_Action.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions .idea/deployment.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Chatbot_Action


### 启动服务

- run_server.py
14 changes: 14 additions & 0 deletions action/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-

"""
@Author : Xu
@Software: PyCharm
@File : __init__.py
@Time : 2020/8/23 8:30 下午
@Desc :
"""
14 changes: 14 additions & 0 deletions action/action_express.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-

"""
@Author : Xu
@Software: PyCharm
@File : action_express.py
@Time : 2020/8/25 11:03 上午
@Desc :
"""
77 changes: 77 additions & 0 deletions action/action_weather.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# -*- coding: utf-8 -*-

"""
@Author : Xu
@Software: PyCharm
@File : action_weather.py
@Time : 2020/8/23 8:27 下午
@Desc :
"""
import pathlib
import os
import logging

from typing import Any, Text, Dict, List, Union

from model import Action
from model.Events import SlotSet, AllSlotsReset
from model.Executor import CollectingDispatcher
from model.Interfaces import Tracker

from service.weather.seniverse import SeniverseWeatherAPI
from utils.time_utils import get_time_unit

api_secret = "Sq6NfAburbGs9MGQb"
sw = SeniverseWeatherAPI(api_secret)


class ActionReportWeather(Action):
"""
天气查询
"""

def name(self) -> Text:
return "action_report_weather"

@staticmethod
def required_slots(tracker):
# type: () -> List[Text]
"""A list of required slots that the form has to fill"""
return ["address", "date-time"]

def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
address = tracker.get_slot('address')
date_time = tracker.get_slot('date-time')

if date_time is None:
date_time = '今天'
date_time_number = get_time_unit(date_time) # 传入时间关键词,返回归一化的时间

if isinstance(date_time_number, str): # parse date_time failed
return [SlotSet("matches", "暂不支持查询 {} 的天气".format([address, date_time_number]))]
elif date_time_number is None:
return [SlotSet("matches", "暂不支持查询 {} 的天气".format([address, date_time]))]
else:
condition = sw.get_weather_by_city_and_day(address, date_time_number) # 调用天气API
weather_data = forecast_to_text(address, condition)

return [SlotSet("matches", "{}".format(weather_data))]


def forecast_to_text(address, condition):
msg_tpl = "{city} {date} 的天气情况为:{condition};气温:{temp_low}-{temp_high} 度"
msg = msg_tpl.format(
city= address,
date=condition.date,
condition=condition.condition,
temp_low=condition.low_temperature,
temp_high=condition.high_temperature
)
return msg
Loading

0 comments on commit 0d002df

Please sign in to comment.