Začněte nyníZačněte zdarma

Zpřesnění vyhledávání

Teď napíšeš bota, který uživatelům umožní přidávat filtry postupně – pro případ, že nezadají všechny své požadavky v jedné zprávě.

Za tímto účelem inicializuj prázdný slovník params mimo funkci respond() (na rozdíl od předchozího cvičení, kde byl uvnitř funkce). Tvoje funkce respond() bude tento slovník přijímat jako argument.

Toto cvičení je součástí kurzu

Building Chatbots in Python

Zobrazit kurz

Pokyny k cvičení

  • Definuj funkci respond(), která přijímá dva argumenty – zprávu message a slovník params – a vrací dva výsledky: zprávu k odeslání uživateli a aktualizovaný slovník params.
  • Extrahuj "entities" ze zprávy message pomocí metody .parse() objektu interpreter, přesně jako v předchozím cvičení.
  • Pomocí funkce find_hotels() najdi hotely odpovídající parametrům params.
  • Inicializuj slovník params mimo funkci respond() a klikni na Odeslat odpověď, aby se zprávy odeslaly botovi.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Define a respond function, taking the message and existing params as input
def ____(____, ____):
    # Extract the entities
    entities = ____
    # Fill the dictionary with entities
    for ent in entities:
        params[ent["entity"]] = str(ent["value"])

    # Find the hotels
    results = ____
    names = [r[0] for r in results]
    n = min(len(results), 3)
    # Return the appropriate response
    return responses[n].format(*names), params

# Initialize params dictionary
params = ____

# Pass the messages to the bot
for message in ["I want an expensive hotel", "in the north of town"]:
    print("USER: {}".format(message))
    response, params = respond(message, params)
    print("BOT: {}".format(response))
Upravit a spustit kód