Я работаю в последующем боте, у каждого пользователя есть много задач, когда пользователь спрашивает о своих задачах, бот выбирает задачи с помощью API, затем бот отображает задачи одну за другой и собирается спросить пользователя, он / она в состоянии закончить это сегодня. если пользователь сказал «да», задание будет помечено как выполненное, если нет, бот спросит пользователя о дате окончания.
Я устала от многих решений в Action, перебирая задачи и отправляя шаблон, но после отправки цикла остановка и больше никогда не возвращаются.
class ActionRequestTasks(Action):
def name(self):
return "action_request_tasks"
@staticmethod
def json2obj(data):
return json.loads(data, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
def run(self, dispatcher, tracker: DialogueStateTracker, domain):
response = requests.get('url', headers=headers)
tasks_wrapper = self.json2obj(response.text)
data = tasks_wrapper.Data
first_message = "You have {} delayed tasks, I will help you to go through all of them".format(len(data))
dispatcher.utter_message(first_message)
for task in data:
task_message = "Task Title {}\nComplete percentage {}\nStart Date {}\nFinish Date{}".format(task.Title,
task.PercentComplete,
task.StartDate,
task.FinishDate)
dispatcher.utter_message(task_message)
dispatcher.utter_template("utter_able_to_finish", tracker)
return []