Skip to content

Instantly share code, notes, and snippets.

@tmikeschu
Last active October 15, 2018 20:50
Show Gist options
  • Save tmikeschu/ae39958a8ea2f64915780945e7a069ce to your computer and use it in GitHub Desktop.
Save tmikeschu/ae39958a8ea2f64915780945e7a069ce to your computer and use it in GitHub Desktop.

Clinc Platform Intro Video

Components of a Conversation

Conversations. You have them every day. Whether written or verbal, the process is similar.

We say something to someone else, they interpret what we we mean, they respond accordingly, we interpret their response, respond to it, and so on.

(Animation: Person 1 "Hello" Person 2 "Hey! How's it going" Person 1 "Good, can I borrow 5 bucks?" Person 2 "Sure!")

A conversation is a loop. Emit. Process. Emit. Process.

While the process of talking to someone back and forth seems pretty automatic, the mechanics of a flowing conversation have discrete components with different responsibilities.

By identifying those components, Clinc enables remarkable conversational experiences between people and artificial intelligence.

Don't worry about writing any machine learning algorithms yourself. You just need to reflect on how good conversations actually work and train your AI with the data it needs to become a great conversation partner.

Utterances

In the Clinc Platform, we call "the things people say" utterances. An utterance is typically one or two sentences. Responses to utterances are also utterances.

Classes

When someone emits an utterance, the receiver first determines what the intent of that utterance is.

(Animation: Person 1: "Hello" Person 2: (thought bubble) ...)

In the Clinc Platform, an utterance is classified based on its structure, so we call that intended meaning a class. By identifying the class of an utterance, we'd say the conversation state has changed to that class. For example, identifying an utterance as a greeting would mean we are in a greeting state in the conversation.

(Animation: Person 2: (thought bubble) ...greeting!)

When the receiver of an utterance determines its meaning, they choose an appropriate response.

(Animation: Person 2: greeting -> "Hey! How's it going?")

SVPs

Sometimes an utterance has extra information in it that influences our response.

Take the utterance: "Hello! How are your parents?"

Not only is it a greeting, it is a question. Key data in an utterance can be identified by asking: what words words would result in a different response if they were changed?

In this case, changing "parents" to "planets" would surely elicit a different response from someone. When we have key parts of an utterance that influence its meaning, we call it a slot-value pairing, or SVP.

The slot is the category the value represents. In the "How are your parents?" example, the slot would be labeled something like subject and the value would be parents.

If we parse the intended meaning and slot value pairs of "How are your parents?", we get something like:

|How are your parents                        |?
|--------------------------------------------|
|intent: inquire about condition of something|
|--------------------------------------------|

How are your |parents      |?
             |_______      |
             |slot: subject|
             |-------      |

A couple questions for you.

What would you say if someone asked you "How are your?"?

Probably "My what?", right? Thats because you sensed that the utterance "How are your?" was incomplete, requiring a certain slot to be fulfilled. In the Clinc Platform, slot-value pairings can be required or optional.

Slot Mapping

How come if someone said "How are your folks?", you would give a similar response as the one you would for "parents"? You just know that "folks" is a reasonable alias for parents, right? In the Clinc Platform, we accomplish this using slot mappings.

Transitions

Given that someone has asked you how your parents are and you've answered:

How come if someone asked "How about your dogs?", you would know that they still meant "How are your dogs?"?

What about if they said, "can we call them?"? How do you know that "them" means your parents?

When people converse, we are able to maintain the context of the conversation and transition to different "states" of conversation. In transitioning from "How are your parents?" to "How about your dogs?", we maintain the context of inquiring about the condition of someone.

In transitioning from "How are your parents?" to "Can we call them?", we maintain the context of the subject, allowing us to know that "them" is "parents".

In the Clinc Platform, you get to build fluid conversations by creating transitions between conversation states, included transitions back to the same state.

Building a Conversational Entity

AI Version

A person, relative to the idea of a conversation, is just an entity capable of conversation. In the Clinc Platform, another entity capable of conversation is an AI version. You can build many versions on the platform.

Competencies

Remember that you haven't always known what to do when someone says "Hello" to you. You had to learn that "Hello" is a common thing for people to say, and that saying "Hello" back is a common response that gets you less weird looks than saying "Bananas".

Without your knowing it, the people around you trained you to be good at recognizing and responding to utterances that fall under the "greeting" category. They helped you become competent at greeting interactions.

In the Clinc Platform, the ability for a version to interact in a certain context (such as greetings) is called a competency.

For you to reliably recognize greetings, you had to start really paying attention to the things people say to you.

So to redefine a conversation using Clinc terminology, we can say that a conversation consists of two entities capable of creating and interpreting utterances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment