Configuration Scenario
This section describes how to configure a task-oriented robot.
Scenario
The following flowchart shows a scenario where a hospital uses the intelligent voice navigation (IVN) to complete a simple robot-based appointment flow.
Note: The blue steps are performed by the IVN.
- A customer dials the hospital customer service hotline 123456.
- Initialize the language (Chinese or English).
- Play the greeting.
- The customer speaks.
- Match the customer's words with existing intentions. If no appointment intention is matched, notify the customer of an unknown intention.
- If the appointment intention (with four mandatory slots: appointed department, doctor, date, and time) is matched, ask the customer for the appointed department, doctor, date, and time.
- If the customer replies the preceding information, notify the customer of the appointment information and ask the customer whether to confirm the appointment.
- The customer replies.
- Match the customer's words with existing intentions (whether to confirm the appointment).
- If the intention of confirming the appointment is matched, go to the next step and notify the customer that the appointment is successful.
- If the intention of not confirming the appointment is matched, return the previous appointment information to the intention recognition in 5.
- If the intention of an incorrect date is matched:
- Ask the customer whether to change the appointed date.
- The customer replies.
- Match the customer's words with existing intentions (whether to change the date).
- If the intention of not changing the date is matched, go to the next step and notify the customer that the appointment is successful. If the intention of changing the date is matched, ask the customer for the new date.
- The customer replies.
- Return the customer's reply and the previous appointment information to the intention recognition in 5.
- If no intention is matched, notify the customer of an unknown intention.
- Notify the customer that the appointment is successful.
- The customer hangs up.
Requirement Analysis
Based on the preceding flow, the following resources and configurations are required.
Step |
Resource |
Diagram Element |
Node Attribute Settings |
Remarks |
---|---|---|---|---|
Start |
- |
|
- |
- |
Initialize the language. |
Business interface for initializing the language |
|
Variable name: GLOBAL.language Variable value: "en_US" |
In the actual application scenario, you can invoke a real interface to determine the language. In this robot configuration example, this diagram element is used to assign a value. You can directly add a cache variable and assign a value to it to initialize the language, without selecting an interface to be invoked. For example, to initialize English, set Response Attribute to the following value: "en_US" |
Play the greeting. |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to FLOW.welcome. Set Reply Mode to Recognition after playback. |
Add a flow variable as follows: Set Variable Name to welcome. Set Data Type to Character. Set Default Value to Welcome to the self-service appointment system. |
Obtain the customer's reply. |
Business interface for caching the dialog interaction result. |
|
Variable name: FLOW.ask Variable value: IVRREQUEST.input |
You can directly add a variable without selecting an interface to be invoked. Add a flow variable as follows: Set Variable Name to ask. Set Data Type to Character. Set Default Value to Appoint ${FLOW.docSlot}'s ${FLOW.roomSlot} at ${FLOW.timeSlot} on ${FLOW.dateSlot}. |
Recognize intentions (whether intentions are matched). |
Intention template for appointment |
|
Set Semantic Recognition Content to FLOW.ask. Set the following variables:
In Judgment Conditions, set the following conditions:
|
Add flow variables as follows: Set Variable Name to roomSlot. Set Data Type to Character. Set Variable Name to docSlot. Set Data Type to Character. Set Variable Name to dateSlot. Set Data Type to Character. Set Variable Name to timeSlot. Set Data Type to Character. |
Obtain the department that the customer needs to appoint. (The room condition is matched.) |
Business interface for querying departments |
|
Variable name: FLOW.answer Variable value: FLOW.room+TOC.ChatBotRespContent |
You can directly add a variable without selecting an interface to be invoked. Add flow variables as follows: Set Variable Name to answer. Set Data Type to Character. Set Variable Name to room. Set Data Type to Character. Set Default Value to Currently, the available departments are Internal Medicine and Surgery. |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to FLOW.answer. Set Reply Mode to Recognition after playback. |
- |
|
Obtain the doctor that the customer needs to appoint. (The doctor condition is matched.) |
Business interface for querying doctors in a department |
|
Variable name: FLOW.answer Variable value: FLOW.doctor+TOC.ChatBotRespContent |
You can directly add a variable without selecting an interface to be invoked. Add flow variables as follows: Set Variable Name to answer. Set Data Type to Character. Set Variable Name to doctor. Set Data Type to Character. Set Default Value to Dr. Liu and Dr. Li are on duty in the current department. |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to FLOW.answer. Set Reply Mode to Recognition after playback. |
- |
|
Notify the customer of the appointment information. (The finish condition is matched.) |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to TOC.ChatBotRespContent. Set Reply Mode to Playback only. |
- |
Send the default reply. (No condition is matched.) |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to TOC.ChatBotRespContent. Set Reply Mode to Playback only. |
NOTE:
If no condition is matched on a connection line, the flow goes to the default branch. |
Ask whether to confirm the appointment information. |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to FLOW.check. Set Reply Mode to Interruption recognition. |
Add a flow variable as follows: Set Variable Name to check. Set Data Type to Character. Set Default Value to Are you sure you want to confirm the preceding information? |
Recognize intentions (whether intentions are matched). |
Intention template for confirmation |
|
In Judgment Conditions, set the following conditions:
|
- |
Use a cache variable to cache data and recognize semantics to confirm the customer's appointment information. (The no condition is matched.) |
- |
|
Variable name: FLOW.ask Variable value: 'Appoint ' |
You can directly add a variable without selecting an interface to be invoked. |
Confirm whether the customer wants to change the date. (The part condition is matched.) |
Reply template for confirming whether to change the date |
|
Set Reply Way to TTS. Set Reply Source to Reply Template. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Template to redate. Set Reply Mode to Interruption recognition. |
Add a reply template. |
Intention template for confirmation |
|
In Judgment Conditions, set the following conditions:
|
- |
|
Ask for the new date and recognize semantics to confirm the appointment information. (The no condition is matched.) |
|
Variable name: FLOW.dateSlot Variable value: '' Variable name: FLOW.answer Variable value: 'What date would you like to appoint?' ' |
You can directly add a variable without selecting an interface to be invoked. |
|
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to FLOW.answer. Set Reply Mode to Interruption recognition. |
- |
||
|
Variable name: FLOW.dateSlot Variable value: IVRREQUEST.input Variable name: FLOW.ask Variable value: 'Appoint '+FLOW.docSlot+''s '+FLOW.roomSlot+' at '+FLOW.timeSlot+' on '+FLOW.dateSlot |
You can directly add a variable without selecting an interface to be invoked. |
||
Notify the customer of the appointment information and play a thank-you message. (The yes condition is matched.) |
- |
|
Set Reply Way to TTS. Set Reply Source to Reply Variable. (The TTS dynamically plays a voice based on the value returned by the variable.) Set Reply Variable to FLOW.thanks. Set Reply Mode to Playback only. |
Add a flow variable as follows: Set Variable Name to thanks. Set Data Type to Character. Set Default Value to The appointment is successful. Thank you. Goodbye. |
End |
- |
|
- |
- |
To ensure fault tolerance, you need to configure an unknown intention for situations where no intention is matched.
In intention recognition, the following information needs to be further analyzed. The following takes the appointment intention as an example. Other intentions can be analyzed using a similar method.
- Statements that the customer may use to reply appointment information. (corpus)
- I want to see a doctor.
- Appointment
- I want to make an appointment.
- I want to appoint Dr. Li's Internal Medicine at 16:00 tomorrow afternoon.
Consider as many scenarios as possible to ensure the accuracy of intention matching.
- Information that needs to be obtained from the customer's reply. (slot and entity)
For example, if the customer replies "Appoint 16:00", "16:00" is the slot information that needs to be obtained. You need to add the slot information to the intention. The slot information needs to be associated with a time entity, so you need to check whether a similar entity exists in entity configuration. In this example, you can use the system entity @system.time.
If the customer replies "Appoint Dr. Li", "Dr. Li" is the slot information that needs to be obtained. You need to add the slot information to the intention. The slot information needs to be associated with a doctor entity but the entity does not exist among system entities, so you need to manually add the entity.
- Command word used for intention matching, that is, the value of TOC.ChatBotIntentCode required by the Semantic Recognition diagram element, which must be globally unique. (response)
Branch conditions can be set for responses in the intention. You can directly add branches to reply different values of TOC.ChatBotIntentCodes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot