Relleno de formulario
A menudo querrás que tu bot guíe a los usuarios a través de una serie de pasos, como cuando hacen un pedido.
En este ejercicio, empezarás a construir un bot que permita a los usuarios pedir café. Pueden elegir entre dos tipos: colombiano y keniata. Si el usuario proporciona una entrada inesperada, tu bot lo gestionará de forma diferente según el punto del flujo en el que esté.
Tu trabajo aquí es identificar el estado adecuado y el siguiente estado en función de las intenciones y los mensajes de respuesta proporcionados. Por ejemplo, si la intención es "order", entonces el estado cambia de INIT a CHOOSE_COFFEE.
Ya tienes definida la función send_message(policy, state, message).
Recibe la política, el estado actual y el mensaje como argumentos, y devuelve el nuevo estado como resultado. Además, una función interpret(message), similar a la que Alan describió en el vídeo, también está predefinida para ti.
Este ejercicio forma parte del curso
Creación de chatbots en Python
Instrucciones del ejercicio
- Define tres estados:
INITcon valor0,CHOOSE_COFFEEcon valor1yORDEREDcon valor2. - Crea un diccionario llamado
policycon tuplas como claves y valores. Cada clave es una tupla que contiene un estado y una intención, y cada valor es una tupla que contiene el siguiente estado y el mensaje de respuesta. Los mensajes ya están rellenados. Tu tarea es completar los estados. - Crea una variable
statecon el valorINIT. - Para cada uno de los mensajes, llama a la función
send_message()pasandopolicy,stateymessage.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Define the INIT state
____
# Define the CHOOSE_COFFEE state
____
# Define the ORDERED state
____
# Define the policy rules
policy = {
(____, "order"): (____, "ok, Colombian or Kenyan?"),
(INIT, "none"): (INIT, "I'm sorry - I'm not sure how to help you"),
(____, "specify_coffee"): (____, "perfect, the beans are on their way!"),
(____, "none"): (____, "I'm sorry - would you like Colombian or Kenyan?"),
}
# Create the list of messages
messages = [
"I'd like to become a professional dancer",
"well then I'd like to order some coffee",
"my favourite animal is a zebra",
"kenyan"
]
# Call send_message() for each message
state = ____
for message in messages:
state = ____