Dialogflow, formerly Api.ai is a web based platform for conversational agent building. Dialogflow lets developers to create conversational experiences by providing them tools to undertake two kinds of tasks: understand and generate natural language utterances and manage the conversation. Its true there are many competing tools to Dialogflow but I chose Dialogflow mainly because it is a Google product :p (Silly reason, but Some of you may know already how much I like Google) And I chose it because Dialogflow is very mature and constantly evolving and its super easy to use and integrate within other services.

Okay. First things first. There’s a separate vocabulary in Dialogflow. Let get familiar with that. To give you the exact idea of these words I will use some parts from Dialogflow documentation.

  1. Agents
  2. Invocations
  3. Intents
  4. User says
  5. Entities
  6. Fullfilment
  7. Webhooks
  8. Context
  9. Response

Agents

Agents are best described as NLU (Natural Language Understanding) modules. They can be used by your app, product, or service to transform natural user requests into actionable data. This transformation occurs when a user input matches one of the intents inside your agent.

Invocations

Basically this is how we say hi to our agent. We can ask our agent, “What time is it?” or maybe just Hi. Those are invocations.

Intents

Intents include elements and logic to parse user’s information. This maps what the user says with response. Intents have several components: contexts, user says, events, action, and response.

User Says

Different variations of how the same question can be asked by a user. The more variation is added, the better agent can understand what you are saying.

Entities

These are the knowledge repository that the agent would use to answer the user’s question. There are a variety of entities: system entities to include information about time etc, weather/location entities etc.

Fullfilment

Dialogflow sends the request to fetch data needed. (sent to webhook)

Webhooks

Webhook determines how it would like to respond and send back to dialog.

Response

The backend system including webhook, entities, intents, user says, etc would produce a set of response.

Contexts

Contexts are used to store parameter values for different types of intent. Contexts can be used to repair broken conversation or to branch conversations.

 

So long story in short, Dialogflow documentation itself has provided with a nice illustration which is shown below.

 

overview.png

Okay! That’s it for the introduction. In the next part we will be creating a simple chat-bot using DialogFlow.