保留中のアクション I
ユーザーに「はい」か「いいえ」で答えられる追加質問をすることで、ボットのユーザー体験を大きく向上させることができます。こうしたフォローアップを扱うシンプルな方法として、保留中のアクションを定義する方法があります。ユーザーが「はい」と答えたときに実行され、「いいえ」と答えたときに消去されます。
この演習では、intent のみを引数として受け取り、次に実行するアクションと保留中のアクションの2つの値を返す policy() 関数を定義します。「yes」または "affirm" の intent が返されたときは保留中のアクションを実行し、「no」または "deny" の intent が返されたときは保留中のアクションを消去するようにポリシー関数を実装しましょう。
ここでは、interpret(message) 関数があらかじめ定義されています。メッセージに "yes" が含まれていれば "affirm" を返し、"no" が含まれていれば "deny" を返します。
この演習はコースの一部です
Python でチャットボットを作る
演習の手順
intentを引数として受け取るpolicy()という関数を定義してください。intentが"affirm"の場合は、"do_pending"アクションとNoneを返してください。intentが"deny"の場合は、"Ok"アクションとNoneを返してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define policy()
def ____(____):
# Return "do_pending" if the intent is "affirm"
if ____ == "____":
return "____", None
# Return "Ok" if the intent is "deny"
if ____ == "____":
return "____", None
if intent == "order":
return "Unfortunately, the Kenyan coffee is currently out of stock, would you like to order the Brazilian beans?", "Alright, I've ordered that for you!"