0% found this document useful (0 votes)
149 views

Building Chatbots in Python Chapter4

This document discusses building chatbots in Python using state machines and discusses some more advanced techniques like neural conversational models, seq2seq models, grounded dialogue systems, and language generation. It provides examples of implementing a basic state machine for a coffee ordering chatbot and discusses concepts like pending actions and state transitions. It also discusses challenges with more advanced techniques and the need for large datasets to train neural models.

Uploaded by

Fgpeqw
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
149 views

Building Chatbots in Python Chapter4

This document discusses building chatbots in Python using state machines and discusses some more advanced techniques like neural conversational models, seq2seq models, grounded dialogue systems, and language generation. It provides examples of implementing a basic state machine for a coffee ordering chatbot and discusses concepts like pending actions and state transitions. It also discusses challenges with more advanced techniques and the need for large datasets to train neural models.

Uploaded by

Fgpeqw
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Stateful bots

Alan Nichol
Co-founder and CTO, Rasa
DataCamp Building Chatbots in Python

What do we mean by stateful?

"I love stateless systems!" "don't they have drawbacks?"

"don't what have drawbacks?"


DataCamp Building Chatbots in Python

State machines
Browsing
Providing address, billing info
Order complete
DataCamp Building Chatbots in Python

Implementing a state machine


INIT = 0
CHOOSE_COFFEE = 1
ORDERED = 2

Example rules:

policy_rules = {
(INIT, "order"): (CHOOSE_COFFEE, "ok, Columbian or Kenyan?"),
(CHOOSE_COFFEE, "specify_coffee"):
(ORDERED, "perfect, the beans are on their way!"),
}
DataCamp Building Chatbots in Python

Using the state machine


In [1]: state = INIT

In [2]: def respond(state, message):


...: (new_state, response) = policy_rules[(state, interpret(message))]
...: return new_state, response

In [3]: def send_message(state, message):


...: new_state, response = respond(state, message)
...: return new_state

In [4]: state = send_message(state, message)


DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Let's practice!
DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Asking questions &


queuing answers

Alan Nichol
Co-founder and CTO, Rasa
DataCamp Building Chatbots in Python

Reusable patterns

"I'd like some Kenyan beans" "Can I get a box of 200 brown filters"

"I'm sorry, we're out of those. Shall I "I'm sorry, we're out of those, but I can
order some Brazilian ones for you?" get your some white ones. Should I
order those for you?"
"Yes please"
"Yes please"
DataCamp Building Chatbots in Python

Pending actions
Policy returns two values: Selected action and pending_action

pending_action is saved in the outer scope

If we get a "yes" intent and there is a pending action, we execute it


If we get a "no" intent, we wipe any pending actions
DataCamp Building Chatbots in Python

Pending state transitions

"I'd like to order some coffee"

state = INIT
action = "request_auth"
pending_state = AUTHED

Sounds good! I'd love to help you but you'll have to log in first, what's your phone
number?

"555-12345"

state = AUTHED
action = "acknowledge_auth"
pending_state = None

Perfect! welcome back :)


DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Let's practice!
DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Frontiers of dialogue
technology

Alan Nichol
Co-founder and CTO, Rasa
DataCamp Building Chatbots in Python

A neural conversational model

"What do you think of Cleopatra?" "Oh, she's very regal"

"What do you think of Messi?" "He's a great player"


DataCamp Building Chatbots in Python

Seq2seq
Machine translation
Completely data driven, no hand-crafting
Requires large amount of data
No guarantee that output is coherent
Difficult to integrate DB / API calls & other logic
DataCamp Building Chatbots in Python

Grounded dialogue systems


Systems you've built in this course: hand-crafted
Seq2seq: Data driven
ML based dialogue systems:
NLU
Dialogue state manager
API logic
Natural language response generator
Human pretend to be a bot: "Wizard of Oz" technique
Reinforcement learning
Receives a reward for a successful conversation
DataCamp Building Chatbots in Python

Language generation
Not recommended if building a bot
Pre-trained neural network which can generate text
Scripts of every episode of The Simpsons
DataCamp Building Chatbots in Python

Generating sample text


generated = sample_text(
saved_params,
temperature,
num_letters=num_letters,
init_text=text
)
DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Let's practice!
DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Congratulations!

Alan Nichol
Co-founder and CTO, Rasa
DataCamp Building Chatbots in Python

BUILDING CHATBOTS IN PYTHON

Let's practice!

You might also like