Juntándolo todo II
Con tu función chitchat_response(message) definida, el siguiente paso es crear una función send_message(). Esta función debe llamar primero a chitchat_response(message) y solo usar la política del bot de café si no hay ningún mensaje coincidente.
Este ejercicio forma parte del curso
Creación de chatbots en Python
Instrucciones del ejercicio
- Define una función
send_message()que reciba 3 argumentos:state,pendingymessage. - Llama a
chitchat_response(message)y guarda el resultado enresponse. Si hay respuesta, imprímela y devuelve elstatejunto conNone. - Desempaqueta el diccionario
policy_rulesen las variablesnew_state,responseypending_state. Para hacerlo, pasa una tupla formada porstateeinterpret(message). - Si
pendingno es None, extrae los nuevos estados y la respuesta usandopendingcomo clave depolicy_rules.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Define send_message()
def ____:
print("USER : {}".format(message))
response = ____
if response is not None:
print("BOT : {}".format(response))
return state, None
# Calculate the new_state, response, and pending_state
____, ____, ____ = ____[(____, ____)]
print("BOT : {}".format(response))
if pending is not None:
new_state, response, pending_state = ____
print("BOT : {}".format(response))
if pending_state is not None:
pending = (pending_state, interpret(message))
return new_state, pending
# Define send_messages()
def send_messages(messages):
state = INIT
pending = None
for msg in messages:
state, pending = send_message(state, pending, msg)
# Send the messages
send_messages([
"I'd like to order some coffee",
"555-12345",
"do you remember when I ordered 1000 kilos by accident?",
"kenyan"
])