Prompting for Success

nlp

(Andy Heydon) #1

Bots on the Kore platform are built to hold conversations with users. One part of that is guiding and steering the user through the interchange so that data is captured quickly and easily. How entity prompts are formulated can have a large impact on the user’s response.

We all have an innate ability to pick up on the subtle clues and hints in a question and those influence how we respond. Here are some tips for crafting prompts.

  • Phrase the question in terms for the expected answer:

    • On a number entity, ask “How many …”
    • With a date entity, ask “When …”
    • For a geographical entity, ask “Where …”
  • Ask simple closed questions so that the user is disinclined to respond with a long rambling answer that could yield false positives.

  • Similar to above, on a confirmation node or an LoV that expects a yes/no response, then ask a simple yes/no question. Don’t phrase the prompt as either/or when the expected response is yes/no.

  • Keep the prompt to a single question. The user might choose to answer only one of them.

  • Avoid asking the question in two ways in the same prompt. The user might think that there are two questions to be answered and lead to ambiguity as to what the entity value should be.

  • Avoid long questions. This is particularly important on a voice channel where the user might forget what was said first.

  • If the prompt requires some initial clarifying statement, consider using a message node beforehand so that it is clear that the bot’s response is a statement and then the actual question can appear as a distinct prompt and doesn’t get lost.

  • Terms mentioned in the prompt are likely to be echoed back by the user, so can use that fact in field patterns:

    :robot: What is the status of …
    :smiley: The status is …

    A field pattern of “status is *” will help identify the data.

  • Similarly be careful of bias in the prompt when using terms that could be in the answer; it introduces the possibility of the user saying a negative response to counter that term before giving the real answer.

    :robot: Was the color blue?
    :smiley: It wasn’t blue, it was red