Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive
On this page

Configuration Scenario

Updated on 2025-01-23 GMT+08:00

Scenario

The following flowchart shows a scenario where a hospital uses the intelligent voice navigation (IVN) to complete a simple robot-based appointment flow.

Figure 1 Robot-based appointment flow

Note: The blue steps are performed by the IVN.

  1. A customer dials the hospital customer service hotline 123456.
  2. Initialize the language (Chinese or English).
  3. Play the greeting.
  4. The customer speaks.
  5. Match the customer's words with existing intentions. If no appointment intention is matched, notify the customer of an unknown intention.
  6. 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.
  7. If the customer replies the preceding information, notify the customer of the appointment information and ask the customer whether to confirm the appointment.
  8. The customer replies.
  9. Match the customer's words with existing intentions (whether to confirm the appointment).
    1. If the intention of confirming the appointment is matched, go to the next step and notify the customer that the appointment is successful.
    2. If the intention of not confirming the appointment is matched, return the previous appointment information to the intention recognition in 5.
    3. If the intention of an incorrect date is matched:
      1. Ask the customer whether to change the appointed date.
      2. The customer replies.
      3. Match the customer's words with existing intentions (whether to change the date).
      4. 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.
      5. The customer replies.
      6. Return the customer's reply and the previous appointment information to the intention recognition in 5.
    4. If no intention is matched, notify the customer of an unknown intention.
  10. Notify the customer that the appointment is successful.
  11. The customer hangs up.

Requirement Analysis

Based on the preceding flow, the following resources and configurations are required.

Table 1 Requirement analysis

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:

  • Variable for obtaining the department that matches intentions
    • Variable name: FLOW.roomSlot
    • Variable value: TOC.ChatBotroom
  • Variable for obtaining the doctor that matches intentions
    • Variable name: FLOW.docSlot
    • Variable value: TOC.ChatBotdoctor
  • Variable for obtaining the date that matches intentions
    • Variable name: FLOW.dateSlot
    • Variable value: TOC.ChatBotdate
  • Variable for obtaining the time that matches intentions
    • Variable name: FLOW.timeSlot
    • Variable value: TOC.ChatBottime

In Judgment Conditions, set the following conditions:

  • Condition when the configured appointment intention is matched
    • Set Condition to finish.
    • Set Condition Expression to TOC.ChatBotIntentCode=='finish'.
  • Condition when the command word of the mandatory department slot of the configured appointment intention is matched
    • Set Condition to room.
    • Set Condition Expression to TOC.ChatBotIntentCode=='room'.
  • Condition when the command word of the mandatory doctor slot of the configured appointment intention is matched
    • Set Condition to doctor.
    • Set Condition Expression to TOC.ChatBotIntentCode=='doctor'.

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:

  • Condition when the intention of confirming the appointment information is matched
    • Set Condition to yes.
    • Set Condition Expression to TOC.ChatBotconfirm=='yes'.
  • Condition when the intention of not confirming the appointment information is matched
    • Set Condition to no.
    • Set Condition Expression to TOC.ChatBotconfirm=='no'.
  • Condition when the intention of an incorrect date is matched
    • Set Condition to part.
    • Set Condition Expression to TOC.ChatBotconfirm=='incorrect date'.

-

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:

  • Condition when the intention of not changing the date is matched
    • Set Condition to yes.
    • Set Condition Expression to TOC.ChatBotconfirm=='yes'.
  • Condition when the intention of changing the date is matched
    • Set Condition to no.
    • Set Condition Expression to TOC.ChatBotconfirm=='no'.

-

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

-

-

-

NOTICE:

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.

We use cookies to improve our site and your experience. By continuing to browse our site you accept our cookie policy. Find out more

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback