What is the right approach for handling direct and contextual questions in dialogflow?

纵然是瞬间 提交于 2020-01-15 15:45:26

问题


I am creating a HR chatbot using Dialogflow. I am unable to figure out the right approach to have the bot handle both direct questions and questions asked in a contextual manner. For example:

Contextual case:

User: I want to know how many leaves i can get in a year

Bot: You get x number of leaves

User: Ok cool how do i apply for one then?

Bot: Follow this process to apply for a leave

Direct case (2 separate conversations with direct questions):

Conversation 1:

User: I want to know how many leaves i can get in a year

Bot: You get x number of leaves

Conversation 2:

User: I want to know how to apply for leave

Bot: Follow this process to apply for a leave

Approaches I have tried:

1) Adding input and output contexts to handle contextual cases and add direct questions to knowledge base. The issue with this approach is that since we cannot give multiple phrases in knowledge base, most direct questions do not match

2) Have 2 intents, one with input and output contexts and one to handle direct questions. (For example: One intent would be leaves.apply.context which would have both input and output context set and would have training phrases like how do i apply for this and another intent leaves.apply.direct which would have training phrases like how do i apply for a leave and no context). I'm not convinced that this is the right way as I am essentially creating two intents for the same question with the same response.

So is there a recommended approach to solve this problem?


回答1:


I don't think there is a recommended approach to this, it is a matter of taste. Your solutions are a nice way of approaching this, but I don't think you will get around the fact that you will have to make an extra intent with the same response if you want to allow a follow-up question to also be approachable directly due to the context.

If you really don't like to create two intents for the same response, I think you would be able to workout this scenario by creating two intents and dropping the contextual flow. Just create a HowManyLeavesAvailableIntent and a HowToApplyForLeaveIntent without any context and train the HowToApplyForLeaveIntent to trigger on phrases that would follow-up HowManyLeavesAvailableIntent and direct questions for HowToApplyForLeaveIntent. Due to the missing context, this might not be ideal because it can create weird mappings to intents, but it would allow you to have just one intent for how to apply for leave.



来源:https://stackoverflow.com/questions/57782957/what-is-the-right-approach-for-handling-direct-and-contextual-questions-in-dialo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!