Stateful bots Alan Nichol Co-founder and CTO, Rasa DataCamp - - PowerPoint PPT Presentation

stateful bots
SMART_READER_LITE
LIVE PREVIEW

Stateful bots Alan Nichol Co-founder and CTO, Rasa DataCamp - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

DataCamp Building Chatbots in Python

Stateful bots

BUILDING CHATBOTS IN PYTHON

Alan Nichol

Co-founder and CTO, Rasa

slide-2
SLIDE 2

DataCamp Building Chatbots in Python

What do we mean by stateful?

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

slide-3
SLIDE 3

DataCamp Building Chatbots in Python

State machines

Browsing Providing address, billing info Order complete

slide-4
SLIDE 4

DataCamp Building Chatbots in Python

Implementing a state machine

Example rules:

INIT = 0 CHOOSE_COFFEE = 1 ORDERED = 2 policy_rules = { (INIT, "order"): (CHOOSE_COFFEE, "ok, Columbian or Kenyan?"), (CHOOSE_COFFEE, "specify_coffee"): (ORDERED, "perfect, the beans are on their way!"), }

slide-5
SLIDE 5

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)

slide-6
SLIDE 6

DataCamp Building Chatbots in Python

Let's practice!

BUILDING CHATBOTS IN PYTHON

slide-7
SLIDE 7

DataCamp Building Chatbots in Python

Asking questions & queuing answers

BUILDING CHATBOTS IN PYTHON

Alan Nichol

Co-founder and CTO, Rasa

slide-8
SLIDE 8

DataCamp Building Chatbots in Python

Reusable patterns

"I'd like some Kenyan beans" "I'm sorry, we're out of those. Shall I

  • rder some Brazilian ones for you?"

"Yes please" "Can I get a box of 200 brown filters" "I'm sorry, we're out of those, but I can get your some white ones. Should I

  • rder those for you?"

"Yes please"

slide-9
SLIDE 9

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

slide-10
SLIDE 10

DataCamp Building Chatbots in Python

Pending state transitions

"I'd like to order some coffee" Sounds good! I'd love to help you but you'll have to log in first, what's your phone number? "555-12345" Perfect! welcome back :)

state = INIT action = "request_auth" pending_state = AUTHED state = AUTHED action = "acknowledge_auth" pending_state = None

slide-11
SLIDE 11

DataCamp Building Chatbots in Python

Let's practice!

BUILDING CHATBOTS IN PYTHON

slide-12
SLIDE 12

DataCamp Building Chatbots in Python

Frontiers of dialogue technology

BUILDING CHATBOTS IN PYTHON

Alan Nichol

Co-founder and CTO, Rasa

slide-13
SLIDE 13

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"

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

DataCamp Building Chatbots in Python

Generating sample text

generated = sample_text( saved_params, temperature, num_letters=num_letters, init_text=text )

slide-18
SLIDE 18

DataCamp Building Chatbots in Python

Let's practice!

BUILDING CHATBOTS IN PYTHON

slide-19
SLIDE 19

DataCamp Building Chatbots in Python

Congratulations!

BUILDING CHATBOTS IN PYTHON

Alan Nichol

Co-founder and CTO, Rasa

slide-20
SLIDE 20

DataCamp Building Chatbots in Python

Let's practice!

BUILDING CHATBOTS IN PYTHON