Skip to content

Survey model proposal

Gunther Cox edited this page Oct 2, 2016 · 1 revision

This document describes a proposal for the design of a feature that will enable a virtual agent to gather information about a particular subject.

Two functions will need to implemented.

  1. The first is an activator function that contains checks that will trigger the start of the information gathering session.
  2. The second is a function that will execute the inquiry process to the user.

Data acquisition setup

# A programmer defined vale that determines what information the bot will ask the user for
required_information = {
    'movie_title': {
        'prompt': 'What movie would you like to see?'
    },
    'movie_date': {
        'prompt': 'When would you like to see <movie_title>?'
    }
}

Decision trees

The survey notation must be able to handle the case where a set of questions only needs to be asked if some relevant case is met. For example, if a user was ordering food, an order containing beef should cause the bot to inquire how the user would like it prepared (rare, medium, well done, etc.), while the subquestion does not apply to something such as an order containing chicken.

Relevant example cases

Case 1: Compound information is provided by the user

  • User: Hello, I would like to buy a movie ticket to see Wall-E on June 27th.
  • Bot: Sure, there are showings for Wall-E at 3:00pm, 5:30pm and 6:60pm on the 27th.
  • User: The 6:30 showing sounds good to me.
  • Bot: Alright, I've sent you an email with your ticket information.

Case 2: Small back and forth interactions

  • User: Hi, I'd like to buy a movie ticket.
  • Bot: What movie would you like to see?
  • User: Wall-E
  • Bot: When would you like to see Wall-E?
  • User: Next tuesday.
  • Bot: What theater would you like to see it at?
  • User: The one on Main Street.
  • Bot: Alright, I've emailed you your ticket to see Wall-E on Tuesday July 23rd at the Sanderson theater on Main Street.