The dialogue generator is an agent that generates the robot utterance in human-robot interaction. When the user utterance and user information taken as input values, the robot utterance is generated using the given information. The user information is obtained from the Task Manager through ROS protocol. After the robot utterance created, the generated robot utterance is forwarded to the Task Manager again through the ROS protocol.
- 2.1 Maintainer status: maintained
- 2.2 Maintainer: Yuri Kim ([email protected]), Eunsoo Lee ([email protected])
- 2.3 Author: Yuri Kim ([email protected])
- 2.4 License (optional):
- 2.5 Source git: https://github.com/DeepTaskHY/DM_Generator
When creating the robot utterance, we define several tasks that consider sociality for natural dialogue with the user. Each task generates various utterances according to social information(e.g. user profile, health information, schedule information). The social information is updated by the Knowledge manager that manages knowledge in the form of ontology.
- ros:noetic
- Python 3.7+
- Go to Author's Google Drive and download the JSON file (authorization key), and put it in the authorization folder.
- After copying the configuration.json.example to the configuration.json, edit the authentication key file name, etc.
To test this module, you can execute the following command line.
common
$ docker-compose --env-file=.env up dm-default # or
$ docker-compose --env-file=.env up dm-linux
homecare
$ roslaunch dm_generator dm_launcher.launch SCENARIO_NAME:=homecare
reception
$ roslaunch dm_generator dm_launcher.launch SCENARIO_NAME:=reception
testbench
$ python dm_generator/tests/testbench.py [-h] --testbench {homecare,reception} [--starts STARTS] [--delay DELAY]
{
"header": {
"id": 1,
"timestamp": "1563980674.262554407",
"source": "planning",
"target": ["dialog"],
"content": ["dialog_generation"],
},
"dialog_generation": {
"intent": "transmit_information_health_advice",
"human_speech": "안 먹었어.",
"social_context": {
"name": "이병현",
"medicine_schedule": "식후 30분 후 복용"
}
}
}
○ header (header/taskExecution): contain information about published time, publisher name, receiver name.
- id: id
- timestamp: published time
- source: publish the module name
- target: receive module name
- content: role of this ROS topic name
○ dialog_generation (dialog_generation/taskExecution): contain required information to generate robot utterance sentence. (Import from Knowledge Manager)
- intent: sub-task name
- social_context: required information to generate a robot utterance sentence. (Import from knowledge manager)
{
"header": {
"id": 1,
"timestamp": "1563980674.262554407",
"source": "dialog",
"target": ["planning"],
"content": ["dialog_generation"]
},
"dialog_generation": {
"dialog": "다음에는 빠뜨리시면 안 돼요. 식후 30분 후 복용하셔야 해요.",
"result": "completion"
}
}
○ header (header/taskExecution): contain information about published time, publisher name, receiver name.
- id: id
- timestamp: published time
- source: publish module name
- target: receive module name
- content: role of this ROS topic name
○ dialog_generation (dialog_generation/taskExecution): contain generated robot speech sentence, id, result.
- dialog: generated robot speech
- result: task progress result
None
None