ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Define una función send_message() que reciba 3 argumentos: state, pending y message.
  • Llama a chitchat_response(message) y guarda el resultado en response. Si hay respuesta, imprímela y devuelve el state junto con None.
  • Desempaqueta el diccionario policy_rules en las variables new_state, response y pending_state. Para hacerlo, pasa una tupla formada por state e interpret(message).
  • Si pending no es None, extrae los nuevos estados y la respuesta usando pending como clave de policy_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"
])  
Editar y ejecutar código