KR102619621B1 - 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 - Google Patents
챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 Download PDFInfo
- Publication number
- KR102619621B1 KR102619621B1 KR1020180015069A KR20180015069A KR102619621B1 KR 102619621 B1 KR102619621 B1 KR 102619621B1 KR 1020180015069 A KR1020180015069 A KR 1020180015069A KR 20180015069 A KR20180015069 A KR 20180015069A KR 102619621 B1 KR102619621 B1 KR 102619621B1
- Authority
- KR
- South Korea
- Prior art keywords
- chatbot
- conversation
- server
- personal information
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title description 14
- 238000004891 communication Methods 0.000 claims abstract description 46
- 238000013475 authorization Methods 0.000 claims abstract description 11
- 238000001514 detection method Methods 0.000 claims 1
- 230000004044 response Effects 0.000 description 62
- 238000013473 artificial intelligence Methods 0.000 description 57
- 230000006870 function Effects 0.000 description 40
- 235000013550 pizza Nutrition 0.000 description 29
- 238000007726 management method Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- 235000002595 Solanum tuberosum Nutrition 0.000 description 5
- 244000061456 Solanum tuberosum Species 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000007257 malfunction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000638 stimulation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/50—Business processes related to the communications industry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- G06Q50/30—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Tourism & Hospitality (AREA)
- Artificial Intelligence (AREA)
- Marketing (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Operations Research (AREA)
Abstract
다양한 실시 예들에 따른 시스템은, 사용자 인터페이스와 통신 회로를 포함하는 제1 전자 장치, 상기 제1 전자 장치의 일부이거나 또는 상기 제1 전자 장치와 원격적으로(remotely) 통신하는 적어도 하나의 프로세서, 및 상기 제1 전자 장치에 또는 상기 제1 전자 장치의 외부에 존재하는(reside) 적어도 하나의 메모리를 포함할 수 있다. 상기 적어도 하나의 메모리는, 상기 프로세서에 작동적으로(operatively) 연결되는 동안, 실행되면, 상기 사용자 인터페이스를 통해, 문자 및/또는 음성 기반의 대화(chat)에 챗봇(chatbot)을 호출하는 것과 관련된 제1 사용자 요청을 수신하고, 상기 챗봇을 상기 대화에 참여(join)하도록 야기(cause)하고, 상기 사용자 인터페이스를 통해, 상기 챗봇에 대한 태스크를 위한 제2 사용자 요청을 수신하고, 상기 제2 사용자 요청은 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부를 포함하지 않고, 상기 정보의 적어도 일부는, 상기 적어도 하나의 메모리에 저장되고, 상기 사용자 인터페이스를 통해, 상기 정보의 적어도 일부를 공유하기 위한 사용자 승인(user authorization)을 수신하고, 상기 정보의 적어도 일부를 상기 챗봇에게 제공하도록 상기 적어도 하나의 프로세서를 야기하는 명령어들을 저장할 수 있다.
Description
본 발명의 다양한 실시 예들은 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법에 관한 것이다.
디지털 기술의 발달과 함께, 사람의 언어를 이해하기 위한 장치 및 상기 장치와 연계되고, 다양한 전자 장치들에서 실행되기 위한 어플리케이션(예: 음성 인식 어플리케이션)이 발달하고 있다. 사람의 언어를 이해하기 위한 장치는, 텍스트 데이터 형태로 입력된 문장으로부터 사용자의 의도(intent)를 획득할 수 있고, 상기 의도를 표현하는데 필요한 파라미터(parameter)를 획득할 수 있다. 사람의 언어를 이해하기 위한 장치를 이용함으로써, 다양한 전자 장치들은 사용자에게, 자연어에 기반하여 다양한 전자 장치들과 대화할 수 있는 서비스를 제공할 수 있다.
전자 장치는, 사람의 언어를 이해하기 위한 하나의 장치(예: 인공 지능 장치 또는 인공 지능 프로그램)와 대화하기 위한 사용자 인터페이스를 제공할 수 있다. 그러나, 디지털 기술의 발달에 따라, 다양한 목적을 가지는 다양한 인공 지능 장치가 발달할 수 있다. 따라서, 전자 장치의 사용자가 하나 이상의 인공 지능 장치들과 대화하기 위한 사용자 인터페이스의 제공이 요구될 수 있다. 또한, 전자 장치의 사용자가 하나 이상의 인공 지능 장치들과 하나의 사용자 인터페이스를 통해 대화하는 동안, 사용자에 대한 원하지 않은 정보가 외부 장치로 전달 될 수 있다.
다양한 실시 예들은, 하나 이상의 인공 지능 장치 또는 인공 지능 프로그램과 대화할 수 있는 사용자 인터페이스를 제공하기 위한 전자 장치 및 방법을 제공할 수 있다.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시 예들에 따른 시스템은, 사용자 인터페이스와 통신 회로를 포함하는 제1 전자 장치, 상기 제1 전자 장치의 일부이거나 또는 상기 제1 전자 장치와 원격적으로(remotely) 통신하는 적어도 하나의 프로세서, 및 상기 제1 전자 장치에 또는 상기 제1 전자 장치의 외부에 존재하는(reside) 적어도 하나의 메모리를 포함할 수 있다. 상기 적어도 하나의 메모리는, 상기 프로세서에 작동적으로(operatively) 연결되는 동안, 실행되면, 상기 사용자 인터페이스를 통해, 문자 및/또는 음성 기반의 대화(chat)에 챗봇(chatbot)을 호출하는 것과 관련된 제1 사용자 요청을 수신하고, 상기 챗봇을 상기 대화에 참여(join)하도록 야기(cause)하고, 상기 사용자 인터페이스를 통해, 상기 챗봇에 대한 태스크를 위한 제2 사용자 요청을 수신하고, 상기 제2 사용자 요청은 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부를 포함하지 않고, 상기 정보의 적어도 일부는, 상기 적어도 하나의 메모리에 저장되고, 상기 사용자 인터페이스를 통해, 상기 정보의 적어도 일부를 공유하기 위한 사용자 승인(user authorization)을 수신하고, 상기 정보의 적어도 일부를 상기 챗봇에게 제공하도록 상기 적어도 하나의 프로세서를 야기하는(cause) 명령어들을 저장할 수 있다.
다양한 실시 예들에 따른 전자 장치는, 통신 모듈, 입력 장치, 출력 장치, 및 대화 어플리케이션에 관한 사용자 인터페이스를 통해 챗봇과 대화(chat)하고, 상기 대화는 상기 입력 장치를 통해 수신된 메시지를 상기 통신 모듈을 통해 상기 챗봇에게 송신하는 동작 또는 상기 챗봇으로부터 상기 통신 모듈을 통해 수신된 메시지를 상기 출력 장치를 통해 출력하는 동작을 포함하고, 상기 대화하는 동안, 상기 대화에 개인 정보 봇을 참여시키기 위한 적어도 하나의 명령어를 실행하기 위한 이벤트를 검출하고, 상기 사용자 인터페이스를 이용하여, 상기 챗봇에게 제공하기 위한 컨텐트에 관한 상기 개인 정보 봇과의 대화를 출력하고, 상기 개인 정보 봇과 대화(chat)하는 동안 상기 개인 정보 봇과의 대화에 관한 정보를 상기 챗봇에게 송신하는 것을 제한하고, 상기 챗봇에게 상기 컨텐트에 관한 정보를 제공하기 위한 사용자 입력을 수신하는 것에 기반하여, 상기 컨텐트에 관한 정보를 상기 챗봇에게 송신하도록 설정된 적어도 하나의 프로세서를 포함할 수 있다.
다양한 실시 예들에 따른 전자 장치는, 메모리, 및 제1 전자 장치로부터 수신된 제1 메시지를 챗봇에게 송신하고, 상기 수신된 제1 메시지에 대한 응답 메시지를 상기 제1 전자 장치에게 송신하고, 상기 응답 메시지는, 상기 챗봇의 기능을 수행하기 위한 제1 자연어 이해 모듈을 이용하여 획득되고, 상기 제1 메시지 또는 상기 응답 메시지 중 적어도 하나에 기반하여, 상기 제1 전자 장치의 사용자의 개인 정보에 관한 대화를 수행하기 위한 이벤트를 식별하고, 상기 식별에 기반하여, 상기 사용자의 개인 정보에 관한 대화를 수행하기 위한 제2 자연어 이해 모듈을 이용하여, 상기 사용자와 자연어 기반의 대화를 수행하고, 상기 제2 자연어 이해 모듈을 이용하여 대화를 수행하는 동안 상기 제1 전자 장치로부터 수신된 제2 메시지를 상기 챗봇에게 송신하는 것을 제한하고, 상기 제1 전자 장치로부터, 상기 제2 메시지의 적어도 일부를 상기 챗봇에게 제공하기 위한 신호를 수신하는 것에 기반하여, 상기 제2 메시지의 적어도 일부에 관한 정보를 상기 챗봇에게 송신하도록 설정된 적어도 하나의 프로세서를 포함할 수 있다.
다양한 실시 예들에 따른 장치 및 방법은, 전자 장치의 사용자가 하나 이상의 인공 지능 장치들과 사용자 인터페이스를 통해 대화하는 동안, 사용자가 의도한 정보를 하나 이상의 인공 지능 장치들에게 전송할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블럭도이다.
도 2는 다양한 실시 예들에 따른 전자 장치, 서버, 및 챗봇(chatbot) 서버를 포함하는 네트워크 환경(environment)의 예를 도시한다.
도 3은 다양한 실시 예들에 따른 전자 장치의 예를 도시한다.
도 4는 다양한 실시 예들에 따른 전자 장치, 서버, 및 챗봇 서버 사이의 신호 흐름의 예를 도시한다.
도 5는 다양한 실시 예들에 따른 전자 장치의 동작의 예를 도시한다.
도 6은 다양한 실시 예들에 따른 전자 장치의 동작의 다른 예를 도시한다.
도 7은 다양한 실시 예들에 따른 대화(chat) 어플리케이션에 관한 그래픽 사용자 인터페이스(graphical user interface, GUI)의 예를 도시한다.
도 8은 다양한 실시 예들에 따른 대화(chat) 어플리케이션에 관한 인공 지능(artificial intelligence, AI) 스피커의 예를 도시한다.
도 9는 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 전자 장치의 동작의 예를 도시한다.
도 10은 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 GUI의 예를 도시한다.
도 11은 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 AI 스피커의 예를 도시한다.
도 12는 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 AI 스피커의 다른 예를 도시한다.
도 13은 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화에 관련된 정보를 저장하기 위한 동작의 예를 도시한다.
도 14는 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화에 관련된 정보를 저장하기 위한 GUI의 예를 도시한다.
도 15는 다양한 실시 예들에 따른 전자 장치에서, 챗봇에게 제공 가능한 컨텐트를 출력하기 위한 동작의 예를 도시한다.
도 16은 다양한 실시 예들에 따라 챗봇에게 제공 가능한 컨텐트를 출력하는 GUI의 예를 도시한다.
도 17은 다양한 실시 예들에 따라 챗봇에게 제공 가능한 컨텐트를 출력하는 GUI의 다른 예를 도시한다.
도 2는 다양한 실시 예들에 따른 전자 장치, 서버, 및 챗봇(chatbot) 서버를 포함하는 네트워크 환경(environment)의 예를 도시한다.
도 3은 다양한 실시 예들에 따른 전자 장치의 예를 도시한다.
도 4는 다양한 실시 예들에 따른 전자 장치, 서버, 및 챗봇 서버 사이의 신호 흐름의 예를 도시한다.
도 5는 다양한 실시 예들에 따른 전자 장치의 동작의 예를 도시한다.
도 6은 다양한 실시 예들에 따른 전자 장치의 동작의 다른 예를 도시한다.
도 7은 다양한 실시 예들에 따른 대화(chat) 어플리케이션에 관한 그래픽 사용자 인터페이스(graphical user interface, GUI)의 예를 도시한다.
도 8은 다양한 실시 예들에 따른 대화(chat) 어플리케이션에 관한 인공 지능(artificial intelligence, AI) 스피커의 예를 도시한다.
도 9는 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 전자 장치의 동작의 예를 도시한다.
도 10은 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 GUI의 예를 도시한다.
도 11은 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 AI 스피커의 예를 도시한다.
도 12는 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 AI 스피커의 다른 예를 도시한다.
도 13은 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화에 관련된 정보를 저장하기 위한 동작의 예를 도시한다.
도 14는 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화에 관련된 정보를 저장하기 위한 GUI의 예를 도시한다.
도 15는 다양한 실시 예들에 따른 전자 장치에서, 챗봇에게 제공 가능한 컨텐트를 출력하기 위한 동작의 예를 도시한다.
도 16은 다양한 실시 예들에 따라 챗봇에게 제공 가능한 컨텐트를 출력하는 GUI의 예를 도시한다.
도 17은 다양한 실시 예들에 따라 챗봇에게 제공 가능한 컨텐트를 출력하는 GUI의 다른 예를 도시한다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시 예들에 따른 전자 장치, 서버, 및 챗봇(chatbot) 서버를 포함하는 네트워크 환경(environment)의 예를 도시한다.
도 2를 참조하면, 네트워크 환경(200)은, 전자 장치(101), 서버(108), 및 챗봇 서버(201)를 포함할 수 있다. 서버(108)는, 지능형 서버로써, 전자 장치(101)에서 구동될 인공 지능 어플리케이션(예: 음성 인식 어플리케이션, 지능형 어플리케이션, 인공 지능 비서 어플리케이션 등) 또는 대화(chat) 어플리케이션 중 적어도 하나와 관련될 수 있다. 서버(108)는, 전자 장치(101)에서 구동될 인공 지능 어플리케이션 또는 대화(chat) 어플리케이션을 제공 또는 지원할 수 있다. 전자 장치(101)는, 서버(108)에 의해 제공되는 인공 지능 어플리케이션 또는 대화(chat) 어플리케이션을 저장할 수 있다. 전자 장치(101)는, 서버(108)에 의해 제공되는 인공 지능 어플리케이션 또는 대화(chat) 어플리케이션을 이용하여, 서버(108)를 통해 챗봇 서버(201)와 통신할 수 있다. 이하에서, 전자 장치(101)에 저장된 대화(chat) 어플리케이션을 통해 챗봇(또는 개인 정보 봇)과 대화하기 위한 방법 및 장치의 예가 기술될 것이다. 하지만, 다양한 실시 예들은 이에 한정되지 않는다. 전자 장치(101)는, 대화(chat) 어플리케이션뿐만 아니라, 인공 지능 어플리케이션(예: 음성 인식 어플리케이션, 지능형 어플리케이션, 인공 지능 비서 어플리케이션 등)을 통해서도, 전자 장치(101)의 사용자와 챗봇(또는 개인 정보 봇)이 대화하기 위한 사용자 인터페이스를 제공할 수 있다.
다양한 실시 예들에서, 챗봇 또는 개인 정보 봇은, 챗봇 서버(201), 서버(108), 또는 전자 장치(101) 중 적어도 하나에 의해 실행될 수 있다. 예를 들면, 챗봇은, 챗봇 서버(201), 서버(108)에 포함된 챗봇을 위한 자연어 이해(natural language understanding, NLU) 모듈, 서버(108)에 포함된 대화 모듈(230), 또는 전자 장치(101)에 포함된 대화 클라이언트(또는 대화 어플리케이션, 인공 지능 어플리케이션) 중 적어도 하나를 이용하여 실행될 수 있다. 예를 들면, 개인 정보 봇은, 서버(108)에 포함된 개인 정보를 위한 NLU 모듈, 서버(108)에 포함된 대화 모듈(230), 서버(108)에 포함된 개인 정보 관리 모듈(250), 또는 전자 장치(101)에 포함된 대화 클라이언트(또는 대화 어플리케이션, 인공 지능 어플리케이션) 중 적어도 하나를 이용하여 실행될 수 있다.
챗봇 서버(201)는, 서버(108)를 통해 전자 장치(101)의 사용자와 대화하기 위한 챗봇의 적어도 일부 기능을 지원할 수 있다. 챗봇 서버(201)는, 서버(108)의 대화 모듈(230)에 기반하여, 전자 장치(101)에 저장된 대화 어플리케이션(또는 인공 지능 어플리케이션)을 통해, 전자 장치(101)의 사용자와 대화할 수 있는 챗봇의 적어도 일부 기능을 지원할 수 있다. 예를 들면, 챗봇 서버(201)는, 서버(108)에 포함된 자동 음성 인식(automatic speech recognition)(ASR) 모듈(210) 또는 자연어 이해(natural language understanding)(NLU) 모듈(220)을 이용하여, 전자 장치(101)의 사용자와 대화하기 위한 챗봇을 구현할 수 있다. 상기 대화는, 텍스트 또는 음성 중 하나 이상에 기반할 수 있다. 상기 대화를 위해, 챗봇 서버(201)는 전자 장치(101)로부터, 서버(108)(예: 대화 모듈(230))를 통해, 전자 장치(101)의 사용자의 입력을 수신할 수 있다. 예를 들면, 챗봇 서버(201)는, 사용자로부터 입력된 텍스트 데이터 또는 사용자의 발화로부터 변환된 텍스트 데이터를 수신할 수 있다. 상기 대화를 위해 챗봇 서버(201)는, 서버(108)(예: 대화 모듈(230))를 통해 전자 장치(101)에게, 수신된 사용자 입력에 응답하는 메시지를 송신할 수 있다.
예를 들면, 챗봇 서버(201)는, 도 2에 도시된 바와 같이, 프로세서 기반의 외부 장치(예: 외부 서버)일 수 있다. 다른 예를 들면, 챗봇 서버(201)의 적어도 일부 기능은, 서버(108)에 의해 수행될 수 있다. 또 다른 예를 들면, 챗봇 서버(201) 대신, 챗봇을 구동하기 위한 컴퓨터 프로그램 또는 명령어들의 집합체가 서버(108)(예: 서버(108)의 메모리) 내부에 구현될 수 있다.
일부 실시 예들에서, 챗봇 서버(201)는, 챗봇의 기능의 적어도 일부를 실행하기 위해 구현된 자연어 이해(natural language understanding)(NLU) 모듈(미도시)을 포함할 수 있다. 예를 들어, 챗봇 서버(201)에 구현된 챗봇이 피자 업체와 관련된 경우, 챗봇 서버(201)는, 피자 메뉴, 피자 주문, 또는 피자 배달과 관련된 자연어 이해 모듈(이하, 챗봇을 위한 NLU 모듈)을 포함할 수 있다. 챗봇 서버(201)는, 챗봇을 위한 NLU 모듈을 이용하여, 수신된 사용자 입력에 응답하는 메시지를 결정 또는 생성할 수 있다. 일 실시 예에 따라, 챗봇을 위한 NLU 모듈은, 서버(108)에 포함될 수 있다. 예를 들면, 챗봇을 위한 NLU 모듈은, 서버(108)의 자연어 이해 모듈(220)을 이용하여 구현될 수 있다. 서버(108)에 포함된 챗봇을 위한 NLU 모듈은, 서버(108)의 자연어 이해 모듈(220)과 논리적으로 독립될 수 있다. 챗봇을 위한 NLU 모듈은, 챗봇의 기능(예: 피자 주문에 관한 대화 수행)을 위해 이용될 수 있고, 서버(108)의 자연어 이해 모듈(220)은, 전자 장치(101)의 인공 지능 어플리케이션을 위해 이용될 수 있다.
다른 일부 실시 예들에서, 챗봇 서버(201)는, 자연어 이해가 아닌, 키워드에 기반하여 동작할 수 있다. 예를 들면, 챗봇 서버(201)는, 수신된 사용자 입력으로부터(from among), 지정된 단어나 어구를 식별할 수 있다. 챗봇 서버(201)는, 식별된 단어나 어구에 대응하는 응답 메시지를 출력(또는 획득)할 수 있다.
일 실시 예에 따르면, 챗봇 서버(201)는, 다수의 챗봇들을 구현(또는 제작)하기 위한 서비스(예: 웹페이지)를 제공할 수 있다. 챗봇 서버(201)는, 상기 서비스를 이용하여 구현된 다수의 챗봇들을 구동할 수 있다. 예를 들면, 챗봇 서버(201)는, 다수의 챗봇들 각각에 대응하는 다수의 NLU 모듈들을 포함할 수 있다. 다른 예를 들면, 서버(108)가, 자연어 이해 모듈(220)을 이용하여 구현된, 다수의 챗봇들 각각에 대응하는 다수의 NLU 모듈들을 포함할 수도 있다. 챗봇 서버(201)는, 챗봇 서버(201) 또는 서버(108)에 포함된 상기 다수의 NLU 모듈들을 이용하여 사용자 입력으로부터 사용자의 의도(intent) 또는 상기 의도를 표현하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))를 획득할 수 있다. 챗봇 서버(201)는, 획득된 의도(intent) 또는 파라미터(parameter)에 기반하여, 사용자에게 제공할 서비스(또는 액션, 태스크)를 결정할 수 있다. 챗봇 서버(201)는, 상기 결정에 기반하여, 전자 장치(101)에서 출력하기 위한 응답 메시지를, 서버(108)(예: 대화 모듈(230))를 통해 전자 장치(101)에게 송신할 수 있다.
챗봇 서버(201)는, 다수의 챗봇들과 외부 서비스(예: 서버(108), 3rd party 서버(202))의 연결을 지원하는 서버를 포함할 수 있다. 예를 들면, 챗봇 서버(201)는, 챗봇 서버(201)에서 구현된 챗봇의 기능을 수행하기 위해, 3rd party 서버(202)(예: 날씨 서버 등)로부터 수신된 정보를 이용할 수 있다.
서버(108)는, 자동 음성 인식(automatic speech recognition)(ASR) 모듈(210), 자연어 이해(natural language understanding)(NLU) 모듈(220), 대화(chat) 모듈(230), 또는 개인 정보 관리 모듈(250)을 포함할 수 있다. 서버(108)는, 통신 회로, 메모리 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 메모리에 저장된 명령어를 실행하여 자동 음성 인식 모듈(210), 자연어 이해 모듈(220), 대화(chat) 모듈(230), 또는 개인 정보 관리 모듈(250)을 구동시킬 수 있다. 서버(108)의 메모리는, 개인 정보 데이터베이스(database, DB)(240)(또는 context DB)를 포함할 수 있다. 개인 정보 DB(240)는, 개인 정보 관리 모듈(250)과 연결될 수 있다. 예를 들면, 개인 정보 관리 모듈(250)은, 개인 정보 DB(240)에 저장된 정보를 식별하고, 추출할 수 있다. 서버(108)는, 상기 통신 회로를 통해 전자 장치(101) 또는 챗봇 서버(201)와 데이터(또는 정보)를 송수신할 수 있다.
자동 음성 인식(automatic speech recognition)(ASR) 모듈(210)은 전자 장치(101)로부터 수신된 사용자 입력을 텍스트 데이터로 변환할 수 있다. 예를 들어, 자동 음성 인식 모듈(210)은 발화 인식 모듈을 포함할 수 있다. 상기 발화 인식 모듈은 음향(acoustic) 모델 및 언어(language) 모델을 포함할 수 있다. 예를 들어, 상기 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 상기 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 상기 발화 인식 모듈은 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화를 텍스트 데이터로 변환할 수 있다. 상기 음향 모델 및 언어 모델에 대한 정보는, 예를 들어, 자동 음성 인식 데이터베이스(automatic speech recognition database)(ASR DB)에 저장될 수 있다.
자연어 이해(natural language understanding)(NLU) 모듈(220)은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 발화의 의도 또는 문장의 의도를 파악할 수 있다. 자연어 이해 모듈(220)은, 전자 장치(101)로부터 수신된 사용자 입력의 의도를 파악하거나, 챗봇 서버(201)로부터 수신된 입력의 의도를 파악할 수 있다. 상기 문법적 분석은, 사용자 입력을 문법적 단위(예: 단어, 구, 형태소 등)로 나누고, 상기 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 상기 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 이에 따라, 자연어 이해 모듈(220)은 사용자 입력 또는 챗봇 서버(201)로부터의 입력에 대응하는 도메인(domain), 의도(intent) 또는 상기 의도를 표현하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))를 얻을 수 있다.
일부 실시 예들에서, 자연어 이해 모듈(220)은, 챗봇을 위한 NLU 모듈(NLU for chatbot)을 포함할 수 있다. 챗봇을 위한 NLU 모듈은, 챗봇의 기능과 관련된 대화를 이해할 수 있다. 예를 들면, 챗봇 서버(201)에 구현된 챗봇이 피자 업체와 관련된 경우, 챗봇을 위한 NLU 모듈은, 피자 메뉴, 피자 주문, 또는 피자 배달과 관련된 문장 또는 발화를 이해할 수 있다. 챗봇을 위한 NLU 모듈은, 챗봇과 전자 장치(101)의 사용자 사이의 대화와 관련된 의도(intent) 및 파라미터(parameter)를 식별할 수 있다. 챗봇을 위한 NLU 모듈이 식별할 수 있는 의도(intent)는, 예를 들면, 피자 주문의 의도 또는 사이드 메뉴 주문의 의도를 포함할 수 있다. 챗봇을 위한 NLU 모듈은, 상기 의도(intent)에 관한 기능을 수행하기 위해 필요한 파라미터(parameter)를 식별할 수 있다. 예를 들면, 주문의 의도와 관련된 파라미터는, 상품명, 사이즈, 수량, 날짜 등을 포함할 수 있다. 예를 들면, "포테이토 피자 라지 사이즈 한 판 주문해줘"라는 사용자 입력(발화 또는 텍스트)으로부터, 챗봇을 위한 NLU 모듈은, 피자 주문의 의도(intent)를 식별할 수 있다. 챗봇을 위한 NLU 모듈은, 파라미터로써, 상품명은 포테이토 피자로, 사이즈는 라지로, 수량은 1로 식별할 수 있다. 날짜는, 예를 들면, 현재 날짜로 자동으로 입력될 수 있다. 일 실시 예에서, 상술한 바와 같이 식별된 주문 정보는, 전자 장치(101)로부터 주문 확정을 나타내는 사용자 입력이 수신되면, 개인 정보 DB(240)에 저장될 수 있다.
상술한 바와 같은 챗봇뿐만 아니라, 다양한 챗봇들(예: 챗봇 서버(201)에서 구현된 챗봇들)을 위한 다양한 NLU 모듈들이 서버(108)에 저장될 수 있다. 예를 들면, 서버(108)는, 다양한 사업자들에게 전자 장치(101)의 사용자와 대화하기 위한 챗봇을 구현할 수 있는 대화 플랫폼(예: 대화 모듈(230))을 제공할 수 있다.
상술한 바와 같은 챗봇을 위한 NLU 모듈은, 자연어 이해 모듈(220)에 포함되지 않고, 별도의 외부 장치(예: 외부 서버 또는 챗봇 서버(201))에서 구현될 수 있다. 상술한 바와 같은 챗봇의 대화 이해는, NLU 모듈에 기반하지 않을 수도 있다. 예를 들면, 챗봇(또는 챗봇 서버(201))은, 키워드(예: 지정된 단어나 어구)를 식별하는 것에 기반하여 상술한 바와 같은 의도 및 파라미터를 식별할 수 있다.
다양한 실시 예들에서, 자연어 이해 모듈(220)은, 개인 정보(personal information, PI)를 위한 NLU 모듈(NLU for PI)을 포함할 수 있다. 예를 들면, 전자 장치(101)의 사용자가 대화 어플리케이션(또는 인공 지능 어플리케이션)을 이용하여, 서버(108)의 대화 모듈(230)을 통해 챗봇 서버(201)에 의해 구현된 챗봇과 대화하는 동안, 챗봇에게 사용자의 개인 정보를 제공할 필요가 발생할 수 있다. 예를 들면, 전자 장치(101)의 사용자가 챗봇 서버(201)를 이용한 피자 업체의 챗봇과 피자 주문을 위해 대화(chat)하는 동안, 주소지, 카드 정보, 또는 이메일 주소 등의 입력이 요구될 수 있다. 개인 정보(PI)를 위한 NLU 모듈은, 전자 장치(101)의 사용자의 개인 정보를 챗봇(또는 챗봇 서버(201))에게 제공하기 위한 대화를 이해할 수 있다. 개인 정보(PI)를 위한 NLU 모듈이 구동되는 동안, 전자 장치(101)로부터 수신된 사용자 입력은, 챗봇을 위한 NLU 모듈 대신 개인 정보를 위한 NLU 모듈에게 제공될 수 있다. 개인 정보(PI)를 위한 NLU 모듈이 구동되는 동안, 전자 장치(101)로부터 수신된 사용자 입력은, 챗봇 서버(201)에게 제공되지 않을 수 있다. 개인 정보(PI)를 위한 NLU 모듈이 구동되는 동안, 전자 장치(101)의 사용자와 대화하는 주체는, 챗봇과는 다른 개인 정보 봇의 형태로 전자 장치(101)에서 출력될 수 있다. 개인 정보 봇(personal information bot, PI bot)은, 전자 장치(101)의 대화 어플리케이션(또는 인공 지능 어플리케이션)을 통한 챗봇과의 대화(chat)에 이어서 출력될 수 있다.
예를 들면, 개인 정보를 위한 NLU 모듈은, 서버(108)의 자연어 이해 모듈(220)을 이용하여 구현될 수 있다. 서버(108)에 포함된 개인 정보를 위한 NLU 모듈은, 서버(108)의 자연어 이해 모듈(220)과 논리적으로 독립될 수 있다. 다른 예를 들면, 개인 정보를 위한 NLU 모듈은, 자연어 이해 모듈(220)의 외부에 구현될 수도 있다.
대화(chat) 모듈(230)은, 전자 장치(101)에 저장되는 대화(chat) 어플리케이션을 구동 가능한 플랫폼(platform)일 수 있다. 대화 모듈(230)은, 예를 들면, 대화(chat) 어플리케이션을 구동 가능한 하드웨어 아키텍쳐(architecture) 또는 소프트웨어 프레임워크를 포함할 수 있다. 대화 모듈(230)은, 서버(108)의 메모리에 저장된 소프트웨어일 수 있다. 대화 모듈(230)의 적어도 일부는 서버(108)의 프로세서에 포함될 수 있고, 대화 모듈(230)은, 소프트웨어와 하드웨어의 결합으로 구현될 수 있다. 대화 모듈(230)은, 서버(108)의 외부에 구현될 수도 있다.
대화 모듈(230)은, 전자 장치(101)와 챗봇 서버(201)에서 구동되는 챗봇 사이의 대화 세션을 형성할 수 있다. 대화 모듈(230)은 상기 대화 세션을 통해, 전자 장치(101)로부터 수신된 데이터를 챗봇 서버(201)(또는 챗봇)에게 송신할 수 있고, 챗봇 서버(201)(또는 챗봇)로부터 수신된 데이터를 전자 장치(101)에게 송신할 수 있다.
대화 모듈(230)은, 전자 장치(101)로부터 수신된 데이터(예: "주문할래"라는 텍스트 데이터 또는 발화로부터 변환된 텍스트 데이터)를 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 송신할 수 있다. 대화 모듈(230)은, 챗봇 서버(201)로부터 수신된 응답 메시지에 관한 데이터를, 대화 세션을 이용하여, 전자 장치(101)에게 송신할 수 있다. 챗봇 서버(201)로부터 수신된 챗봇의 응답 메시지는, 전자 장치(101)의 그래픽 사용자 인터페이스 또는 음향 출력 장치를 통해 출력될 수 있다.
다양한 실시 예들에서, 챗봇 서버(201)에 의해 수행되는 챗봇과의 대화(chat) 동안, 챗봇(또는 챗봇 서버(201))에게 사용자의 개인 정보(예: 주소지, 카드 정보, 또는 이메일 주소 등)를 제공할 필요가 발생할 수 있다. 개인 정보 봇(PI bot)은, 챗봇(또는 챗봇 서버(201))에게 사용자의 개인 정보 제공이 요구되는 경우, 개인 정보에 관한 대화(chat)를 수행하기 위해, 서버(108)(예: 개인 정보를 위한 NLU 모듈)에서 구현될 수 있다. 개인 정보 봇은, 챗봇과의 대화(chat)에 참여하는 형태로, 전자 장치(101)를 통해 출력될 수 있다.
대화 모듈(230)(또는 프로세서)은, 상기 대화 세션에서 챗봇과의 대화가 진행되는 동안, 상기 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
일부 실시 예들에서, 대화 모듈(230)(또는 프로세서)은, 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출하기 위해, 대화 세션을 통해 수신된 데이터로부터 개인 정보와 관련된 키워드를 식별할 수 있다. 예를 들면, 대화 모듈(230)은, 전자 장치(101)로부터 수신된 "주소 정보 알려줘"에 관한 데이터 또는 챗봇 서버(201)로부터 수신된 "주소지를 입력해주세요"에 관한 데이터로부터, 키워드 "주소"를 식별할 수 있다. 대화 모듈(230)(또는 프로세서)은, 대화 세션을 통해 수신된 데이터로부터 지정된 키워드를 식별하는 것에 기반하여, 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
다른 일부 실시 예들에서, 대화 모듈(230)(또는 프로세서)은, 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출하기 위해, 개인 정보를 위한 NLU 모듈을 이용하여, 대화(chat)(예: "주소 정보 알려줘" 또는 "주소지를 입력해주세요")의 의도(intent)를 식별할 수 있다. 대화 모듈(230)(또는 프로세서)은, 개인 정보를 위한 NLU 모듈을 이용하여 대화(chat)의 의도가 개인 정보 입력(예: 주소 입력)의 의도임을 식별하는 것에 기반하여, 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
또 다른 일부 실시 예들에서, 대화 모듈(230)(또는 프로세서)은, 전자 장치(101)로부터 수신된 데이터로부터(from among) 지정된 단어(또는 인공 지능 비서를 호출하기 위한 단어)를 식별하는 것에 기반하여, 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 예를 들면, 대화 모듈(230)(또는 프로세서)은, 전자 장치(101)로부터 수신된 "빅스비, 주소 정보 알려줘"에 관한 데이터로부터, 지정된 단어 "빅스비"를 식별하는 것에 기반하여, 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 다른 예를 들면, 대화 모듈(230)은, 사용자 입력에서 지정된 단어가 식별된 경우, 자연어 이해 모듈(220)(또는 개인 정보를 위한 NLU 모듈)을 이용하여 사용자 입력의 의도(intent)를 파악함으로써 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 대화 모듈(230)은, 사용자 입력으로부터, 음성 비서에게 태스크를 수행할 것을 요구하는 의도(intent)를 식별하는 것에 기반하여 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
또 다른 일부 실시 예들에서, 대화 모듈(230)(또는 프로세서)는, 전자 장치(101)로부터, 대화 세션에 개인 정보 봇을 참여시키기 위한 제어 신호를 수신할 수 있다. 예를 들면, 전자 장치(101)(예: 대화 클라이언트)는, 챗봇과의 대화 세션에 개인 정보 봇을 참여시키기 위한 사용자 입력(예: 물리적 버튼에 대한 입력, 아이콘에 대한 입력, 지정된 단어(예: 빅스비)가 포함된 발화 등)을 수신할 수 있다. 전자 장치(101)는, 사용자 입력에 기반하여 제어 신호를 서버(108)(예: 대화 모듈(230) 또는 프로세서)에게 송신할 수 있다. 서버(108)(예: 대화 모듈(230) 또는 프로세서)는, 상기 제어 신호를 수신하는 것에 기반하여, 챗봇과의 대화 세션에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
대화 모듈(230)(또는 프로세서)은, 개인 정보 봇을 참여시키기 위한 이벤트를 검출하면, 전자 장치(101)로부터 대화(chat) 어플리케이션을 통해 수신된 사용자 입력에 관한 데이터를, 챗봇 서버(201)에게 송신하는 것을 제한할 수 있다. 대화 모듈(230)(또는 프로세서)는, 개인 정보 봇을 참여시키기 위한 이벤트를 검출하는 것에 기반하여, 전자 장치(101)로부터 대화(chat) 어플리케이션을 통해 수신된 데이터를, 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 송신하지 않고, 개인 정보를 위한 NLU 모듈에게 제공할 수 있다. 대화 모듈(230)(또는 프로세서)는, 개인 정보를 위한 NLU 모듈을 이용하여 생성된(또는 결정된) 응답 메시지를 전자 장치(101)에게 송신할 수 있다. 상기 응답 메시지는, 전자 장치(101)의 대화(chat) 어플리케이션에서, 챗봇과는 다른 개인 정보 봇(personal information bot, PI bot)의 응답 메시지로써 출력될 수 있다.
개인 정보 관리 모듈(250)(또는 프로세서)은, 개인 정보를 위한 NLU 모듈을 이용하여 개인 정보 봇(PI bot)의 형태로 전자 장치(101)의 사용자와 대화하는 동안, 개인 정보 DB(240)로부터 필요한 개인 정보(예: 주소)를 식별(또는 검색(retrieve))할 수 있다. 대화 모듈(230)(또는 프로세서)은, 개인 정보 DB(240)로부터 식별된 개인 정보에 관한 메시지를, 전자 장치(101)에게 송신할 수 있다. 대화 모듈(230)(또는 프로세서)은, 개인 정보를 위한 NLU 모듈을 이용하여 개인 정보 봇(PI bot)의 형태로 전자 장치(101)의 사용자와 대화하는 동안, 상기 식별된 개인 정보를 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 송신하지 않을 수 있다. 대화 모듈(230)(또는 프로세서)는, 전자 장치(101)로부터, 상기 개인 정보를 챗봇 서버(201)에게 제공하기 위한 승인 또는 인증을 수신하는 것에 기반하여, 상기 개인 정보를 챗봇 서버(201)에게 송신할 수 있다.
다양한 실시 예들에서, 서버(108)의 프로세서(예: 대화 모듈(230), 개인 정보 관리 모듈(250))는, 후술되는 도 5 내지 도 17을 통해 설명되는 기능들의 적어도 일부를 수행할 수 있다.
서버(108)의 메모리는, 개인 정보 DB(240)를 포함할 수 있다. 개인 정보 DB(240)(또는 context DB)는, 예를 들면, 전자 장치(101)의 사용자의 개인 정보(예: 주소, 이메일, 카드 정보 등)를 저장할 수 있다. 다른 예를 들면, 개인 정보 DB(240)는, 챗봇의 목적 또는 기능과 관련된 정보를 저장할 수 있다. 예를 들어, 챗봇 서버(201)에 구현된 챗봇이 피자 업체와 관련된 경우, 개인 정보 DB(240)는, 사용자 별 주문 이력을 저장할 수 있다. 개인 정보 DB(240)는, 예를 들면, 피자 업체와 관련된 챗봇뿐만 아니라 다양한 챗봇들의 목적 또는 기능과 관련된 정보를, 전자 장치의 사용자(예: 사용자 ID)에 따라 저장할 수 있다. 개인 정보 DB(240)에 저장되는 정보에 관한 상세한 설명은, 표 1 및 표 2에서 후술된다.
상술한 바와 같은 서버(108)의 동작의 적어도 일부는, 전자 장치(101)에 의해 수행될 수도 있다. 전자 장치(101)에 관한 상세한 설명은, 도 3에서 후술된다.
도 3은 다양한 실시 예들에 따른 전자 장치(101)의 예를 도시한다.
도 3을 참조하면, 전자 장치(101)는, 입력 장치(150), 출력 장치(350), 프로세서(120), 및 메모리(130)를 포함할 수 있다.
다양한 실시 예들에 따른 전자 장치(101)는, 디스플레이(예: 표시 장치(160) 또는 디스플레이(360))을 포함하는 장치(예: 스마트폰, 태블릿 PC, 웨어러블 장치 등) 또는 디스플레이를 포함하지 않는 장치(예: 인공 지능(artificial intelligence, AI) 스피커)를 포함할 수 있다. 전자 장치(101)(예: 메모리(130))는, 서버(108)의 대화 모듈(230)과 연결되는 대화(chat) 클라이언트(client)(예: 대화 어플리케이션(330))를 저장할 수 있다. 전자 장치(101)는, 서버(108)과 연결된 대화 클라이언트(예: 대화(chat) 어플리케이션(330))를 통해, 인공 지능 비서(AI assistant) 기능을 수행할 수 있다. 예를 들면, 대화 클라이언트는, 챗봇(또는 개인 정보 봇)과 사용자 간의 대화를 전자 장치(101)에서 출력(또는 표시)하는 역할을 수행할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 키보드, 또는 터치 패널을 포함할 수 있다. 입력 장치(150)(예: 터치 패널)는, 출력 장치(350)(예: 디스플레이(360))의 적어도 일부와 결합되어 구현될 수 있다.
출력 장치(350)는, 디스플레이(360) 또는 음향 출력 장치(155) 중 적어도 하나를 포함할 수 있다. 디스플레이(260)는, 예를 들면, 도 1의 표시 장치(160)에 상응할 수 있다. 음향 출력 장치(155)는, 스피커를 포함할 수 있다. 예를 들면, 전자 장치(101)(예: AI 스피커)는, 출력 장치(350)로써 디스플레이(360)를 포함하지 않고, 음향 출력 장치(155)만을 포함할 수 있다.
디스플레이(360)는, 화면을 표시할 수 있다. 디스플레이(360)은, 대화(chat) 어플리케이션(330)의 그래픽 사용자 인터페이스(graphical user interface, GUI)를 표시할 수 있다. 디스플레이(360)는, 대화 어플리케이션(330)의 GUI 내에서, 챗봇 또는 개인 정보 봇을 나타내는 객체(또는 이미지)를 표시할 수 있다. 디스플레이(360)는, 대화 어플리케이션(330)의 GUI 내에서, 챗봇(또는 챗봇 서버(201))으로부터 수신된 메시지를 표시할 수 있다. 디스플레이(360)는, 서버(108)의 개인 정보를 위한 NLU 모듈을 이용하여 획득된 메시지를, 대화 어플리케이션(330)의 GUI 내에서, 개인 정보 봇의 메시지로써 표시할 수 있다.
음향 출력 장치(155)는, 소리를 출력할 수 있다. 음향 출력 장치(155)는, 대화(chat) 어플리케이션(330)을 통해, 챗봇의 메시지(예: 말, 대화) 또는 개인 정보 봇의 메시지(예: 말, 대화)를 출력할 수 있다. 일 실시 예에 따르면, 음향 출력 장치(155)는, 챗봇의 메시지와 개인 정보 봇의 메시지를 서로 다른 음성(목소리)으로 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(101)가 AI 스피커인 경우, 대화(chat) 어플리케이션(330)의 사용자 인터페이스는 마이크 및 음향 출력 장치(155)(예: 스피커)를 포함할 수 있다.
프로세서(120)는, 전자 장치(101)의 전반적인 동작을 제어할 수 있다. 프로세서(120)는, 다른 구성 요소들(예: 입력 장치(150), 출력 장치(350), 디스플레이(360), 음향 출력 장치(155), 및 메모리(130) 등)의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있으며, 해석된 명령에 따라서 계산을 수행하거나 데이터를 처리할 수 있다. 프로세서(120)는, 소프트웨어로 구현될 수도 있고, 칩(chip), 회로(circuitry) 등과 같은 하드웨어로 구현될 수도 있으며, 소프트웨어 및 하드웨어의 집합체로 구현될 수도 있다. 프로세서(120)는, 하나일 수도 있고, 복수의 프로세서들의 집합체일 수도 있다.
프로세서(120)는, 메모리(130)에 저장되고, 서버(108)(또는 대화 모듈(230))에 의해 지원될 수 있는 대화(chat) 어플리케이션(330)(예: 어플리케이션(143))을 실행할 수 있다. 프로세서(120)는 대화 어플리케이션(330)을 이용하여, 서버(108)를 통해, 챗봇(또는 챗봇 서버(201))과 메시지(또는 대화)에 관한 데이터를 송수신할 수 있다. 프로세서(120)는 대화 어플리케이션(330)을 이용하여, 개인 정보 봇(또는 서버(108))과 메시지(또는 대화)에 관한 데이터를 송수신할 수 있다.
프로세서(120)는, 입력 장치(150)를 통해 수신된 사용자 입력을, 디스플레이(360)를 통해, 대화 어플리케이션(330)의 GUI 내에서 출력할 수 있다. 프로세서(120)는, 전자 장치(101)가 AI 스피커인 경우, 입력 장치(150)(예: 마이크)를 통해 수신된 사용자 입력을, 음향 출력 장치(155)(예: 스피커)를 통해 출력할 있다.
프로세서(120)는, 입력 장치(150)를 통해 수신된 사용자 입력(예: 텍스트 데이터 또는 음성 데이터)를 서버(108)에게 송신할 수 있다. 프로세서(120)는, 챗봇 서버(201)로부터 서버(108)를 통해, 상기 사용자 입력에 대한 챗봇의 응답 메시지를 수신할 수 있다. 프로세서(120)는, 서버(108)의 대화 모듈(230)로부터 전자 장치(101)의 대화 어플리케이션(330)을 통해, 챗봇의 응답 메시지를 수신할 수 있다. 프로세서(120)는, 수신된 응답 메시지를, 출력 장치(350)를 통해 출력할 수 있다. 예를 들면, 프로세서(120)는 수신된 응답 메시지를, 디스플레이(360)를 통해, 대화 어플리케이션(330)의 GUI 내에서, 챗봇의 메시지로써 표시할 수 있다. 다른 예를 들면, 프로세서(120)는 수신된 응답 메시지를, 음향 출력 장치(155)를 통해, 챗봇이 말하는 것처럼 출력할 수 있다.
프로세서(120)는, 대화 어플리케이션(330)을 통해 챗봇 서버(201)와 데이터를 송수신하는 동안, 챗봇 서버(201)에서 구동되는 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 예를 들면, 프로세서(120)는, 챗봇 서버(201)로부터 수신된 데이터로부터 개인 정보에 관한 지정된 키워드를 식별하거나, 개인 정보 봇을 호출하기 위한 사용자 입력(예: 물리적 버튼에 대한 입력, 아이콘에 대한 입력, 지정된 단어(예: 빅스비)가 포함된 발화 등)을 식별할 수 있다. 프로세서(120)는, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 제어 신호를 서버(108)에게 송신할 수 있다. 다른 예를 들면, 프로세서(120)는, 서버(108)로부터, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 제어 신호를 수신할 수도 있다.
프로세서(120)는, 챗봇 서버(201)에서 구동되는 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출하는 것에 기반하여, 대화 어플리케이션(330)을 통해, 개인 정보 봇과 대화(chat)할 수 있다. 예를 들면, 프로세서(120)는 서버(108)로부터, 개인 정보를 위한 NLU 모듈(NLU for PI)를 이용하여 획득된 메시지를 수신할 수 있다. 프로세서(120)는, 수신된 메시지를 개인 정보 봇의 메시지로써 출력 장치(350)를 통해 출력할 수 있다. 프로세서(120)는, 챗봇 서버(201)에서 구동되는 챗봇과의 대화 세션에 개인 정보 봇이 참여한 것처럼 개인 정보 봇의 메시지를 출력할 수 있다. 예를 들면, 프로세서(120)는, 디스플레이(360)를 통해, 대화 어플리케이션(330)의 GUI(예: 챗봇과의 대화방) 내에서, 개인 정보 봇을 나타내는 객체(예: 이미지) 및 개인 정보 봇의 메시지를 표시할 수 있다. 다른 예를 들면, 프로세서(120)는, 음향 출력 장치(155)를 통해, 개인 정보 봇의 메시지를 개인 정보 봇이 말하는 것처럼 출력할 수 있다. 프로세서(120)는 음향 출력 장치(155)를 통해, 챗봇의 음성과는 다른 음성으로, 개인 정보 봇의 메시지를 출력할 수 있다.
프로세서(120)는, 예를 들면, 대화 어플리케이션(330)을 통해 개인 정보 봇과 대화(chat)하는 동안, 개인 정보 봇의 메시지 또는 사용자 입력을, 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 송신하는 것을 제한할 수 있다. 프로세서(120)는, 예를 들면, 개인 정보 봇과 대화하는 동안, 메모리(130)의 개인 정보 DB(340)에 저장된 개인 정보를 식별할 수 있다. 예를 들면, 프로세서(120)는, 메모리(130)의 개인 정보 DB(340) 중에서, 개인 정보 봇과의 대화에 대응하는 개인 정보를 식별하고, 식별된 개인 정보에 관한 대화를 출력할 수 있다. 상술한 바와 같은 동작의 적어도 일부는, 서버(108)에서 수행될 수 있다. 예를 들면, 서버(108)의 프로세서(예: 대화 모듈(230))은, 전자 장치(101)가 개인 정보를 위한 NLU 모듈을 이용하여 개인 정보 봇과 대화(chat)하는 동안, 개인 정보 봇과의 대화를 챗봇 서버(201)에게 송신하는 것을 제한할 수 있다. 예를 들면, 서버(108)의 프로세서(예: 개인 정보 관리 모듈(250))는, 서버(108)의 개인 정보 DB(240)에 접근하여, 개인 정보 봇과의 대화에 대응하는 개인 정보를 식별할 수 있다. 서버(108)의 프로세서(예: 대화 모듈(230))는, 식별된 개인 정보에 관한 개인 정보 봇의 메시지를, 전자 장치(101)에게 송신할 수 있다.
프로세서(120)는, 개인 정보 봇과의 대화로써 출력된 개인 정보를, 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 제공하기 위한 사용자 입력(예: "공유해줘"라는 발화 또는 텍스트)을 수신할 수 있다. 프로세서(120)(또는 서버(108)의 프로세서(예: 대화 모듈(230)))는, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 개인 정보를 챗봇 서버(201)(또는 챗봇)에게 제공(또는 송신)할 수 있다.
프로세서(120)는, 상기 개인 정보를 챗봇 서버(201)에게 제공하기 위한 추가적인 인증을 수행할 수도 있다. 프로세서(120)는, 전자 장치(101)의 사용자의 목소리 정보, 홍채 정보, 얼굴 인식 정보, 지문 정보, 또는 비밀번호 중 적어도 하나에 기반하여 개인 정보를 챗봇 서버(201)에게 제공하기 위한 추가적인 인증을 수행할 수 있다. 예를 들면, 프로세서(120)는, 상기 개인 정보를 챗봇 서버(201)에게 제공하기 위한 사용자 입력(예: "공유해줘"라는 발화)으로부터, 심리스하게(seamlessly) 인증을 위한 목소리 정보를 획득할 수 있다. 프로세서(120)는, 상기 사용자 입력으로부터 획득된 목소리 정보가 전자 장치(101)의 사용자의 목소리에 상응함을 식별하는 것에 기반하여, 상기 사용자 입력을 인증할 수 있다. 다른 예를 들면, 프로세서(120)는, 상기 개인 정보 봇과의 대화 중 카메라 모듈(180)(예: 이미지 센서)을 이용하여 전자 장치(101)의 사용자의 얼굴 인식 정보를 획득할 수 있다. 프로세서(120)는, 상기 개인 정보 봇과의 대화 중 센서 모듈(176)(예: 홍채 센서, 지문 센서)을 이용하여 전자 장치(101)의 사용자의 홍채 정보 또는 지문 정보를 획득할 수 있다. 프로세서(120)는, 획득된 얼굴 인식 정보, 홍채 정보, 또는 지문 정보에 기반하여, 상기 사용자 입력을 인증할 수 있다. 또 다른 예를 들면, 프로세서(120)는, 전자 장치(101)의 사용자로부터 비밀번호를 입력 받는 것에 기반하여, 상기 사용자 입력을 인증할 수 있다. 일 실시 예에 따르면, 프로세서(120)는, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출하는 것에 응답하여 상기 인증 동작을 수행될 수도 있다.
프로세서(120)는, 개인 정보를 챗봇 서버(201)에게 제공하기 위한 사용자 입력을 수신하고, 및 상술한 바와 같은 인증을 수행하는 것에 기반하여, 상기 개인 정보를 챗봇 서버(201)에게 제공(또는 송신)할 수 있다.
프로세서(120)는, 개인 정보를 챗봇 서버(201)에게 제공(또는 송신)하기 위해, 개인 정보 봇과의 대화를 종료할 수 있다. 또는, 프로세서(120)는, 개인 정보를 챗봇 서버(201)에게 제공(또는 송신)하는 것에 기반하여, 개인 정보 봇과의 대화를 종료할 수 있다. 프로세서(120)는, 개인 정보 봇과의 대화를 종료하는 것에 기반하여, 개인 정보 봇과의 대화에 이어서 챗봇 서버(201)를 통해 구동되는 챗봇과 대화할 수 있다.
상술한 바와 같은 프로세서(120)의 동작의 적어도 일부는, 서버(108)에 의해 수행될 수 있다. 다양한 실시 예들에서, 프로세서(120)는, 후술되는 도 5 내지 도 17을 통해 설명되는 기능들의 적어도 일부를 수행할 수 있다.
메모리(130)는, 하나 이상의 메모리 집합을 의미할 수 있다. 메모리(130)는, 프로세서(120)와의 시그널링에 기반하여 메모리(130)에 저장된 명령어들을 실행할 수 있다. 메모리(130)은, 다른 구성 요소들(예: 프로세서(120), 입력 장치(150), 출력 장치(350), 디스플레이(360) 등)로부터 수신되거나 다른 구성 요소들에 의해 생성된 데이터 및/또는 명령을 저장할 수 있다.
다양한 실시 예들에서, 메모리(130)는, 서버(108)의 대화 모듈(230)과 연결되는 대화(chat) 어플리케이션(330)을 저장할 수 있다. 전자 장치(101)는, 전자 장치(101)의 대화 어플리케이션(330) 및 서버(108)의 대화 모듈(230)을 통해, 챗봇 서버(201)에 의해 구동되는 챗봇과의 대화(chat)를 지원할 수 있다. 메모리(130)는, 개인 정보 DB(340)를 저장할 수 있다. 개인 정보 DB(340)에 저장되는 정보에 관한 상세한 설명은, 표 1 및 표 2에서 후술된다.
feature | age | feature | gender | feature | credit card | ||
value | 36 | value | male | number | 5450 0123 0002 8431 | ||
source | samsung account | source | samsung account | valid date | 11/18 | ||
cvc | 721 | ||||||
source | user | ||||||
feature | birth day | feature | physical information | feature | credit card | ||
number | 1982-11-22 | height | 180 cm | number | 5450 0001 0002 0003 | ||
source | samsung account | weight | 77 kg | valid date | 12/20 | ||
source | samsung health | cvc | 777 | ||||
source | samsung pay | ||||||
feature | phone number | feature | address | feature | address | ||
number | 010 555 5554 | value | 경기도 수원시 영통 | value | 경기도 수원시 부천 | ||
source | contact | source | samsung account | source | user | ||
feature | email address | ||||||
value | testking@samsung.com | ||||||
source | samsung email | ||||||
표 1은 다양한 실시 예들에 따른 개인정보 데이터베이스(database, DB)의 예를 나타낸다. 표 1의 개인 정보 DB는, 전자 장치(101)의 메모리(130)(예: 개인 정보 DB(340)) 또는 서버(108)의 메모리(예: 개인 정보 DB(240)) 중 적어도 하나에 저장될 수 있다.
표 1을 참조하면, 개인 정보 DB(240 또는 340)는, 사용자 ID에 따른 개인 정보를 저장할 수 있다. 사용자 ID는, 사용자의 계정에 따라 부여될 수 있다. 사용자 ID는, 전자 장치(101)의 사용자를 다른 사용자로부터 구별하기 위해 이용될 수 있다. 하나의 사용자 계정에 등록된 다수의 기기가 존재하면, 사용자 ID는 다수의 기기의 ID와 연계될 수 있다.
예를 들면, 개인 정보 DB(240 또는 340)는, 사용자 ID 77778에, 나이, 성별, 카드 정보, 전화번호, 주소 등과 같은 개인 정보를 저장할 수 있다. 상기 개인 정보는, 다른 어플리케이션 또는 다른 서버로부터 수신될 수도 있고, 전자 장치(101)의 사용자로부터 입력될 수도 있다. 예를 들면, 개인 정보 DB(240 또는 340)는, 정보의 종류를 나타내는 특성(feature), 정보의 내용으로써 값(value)이나 숫자(number), 및 정보가 입력된 경로를 나타내는 소스(source)에 대한 데이터를 저장할 수 있다. 예를 들면, 개인 정보 DB(240 또는 340)는, 계정(account), 결제 어플리케이션, 건강 어플리케이션, 연락처(contact), 또는 이메일 계정 등으로부터, 어플리케이션 프로그래밍 인터페이스(application programming interface, API)를 통해 정보를 수신할 수 있다. 개인 정보 DB(240 또는 340)는, 사용자(user)로부터 정보를 입력 받을 수도 있다.
도 4는 다양한 실시 예들에 따른 전자 장치, 서버, 및 챗봇 서버 사이의 신호 흐름의 예를 도시한다.
도 4를 참조하면, 동작 401에서, 서버(108)은, 전자 장치(101)와 챗봇 서버(201)가 지원하는 챗봇 사이의 대화 세션을 형성할 수 있다. 다양한 실시 예들에 따르면, 서버(108)는 전자 장치(101)로부터, 챗봇 서버(201)가 지원하는 챗봇과 대화(chat)를 시작하기 위한 제어 신호를 수신할 수 있다. 예를 들면, 전자 장치(101)는, 사용자 입력에 기반하여 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)을 실행할 수 있다. 전자 장치(101)는, 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)의 GUI에 대한 입력을 수신하는 것 또는 마이크를 통해 챗봇과의 대화를 요청하는 사용자 발화를 수신하는 것에 기반하여, 서버(108)(예: 대화 모듈(230))에게, 챗봇 서버(201)에 포함된 챗봇과 대화를 시작하기 위한 제어 신호를 송신할 수 있다. 서버(108)는, 전자 장치(101)로부터 챗봇과 대화를 시작하기 위한 제어 신호를 수신하는 것에 기반하여, 전자 장치(101)와 챗봇을 포함하는 대화 세션을 형성할 수 있다.
동작 402에서, 전자 장치(101)는, 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)이 실행되는 동안, 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, 챗봇과 대화(chat)하기 위한 사용자의 텍스트 입력 또는 사용자 발화를 포함할 수 있다. 예를 들면, 전자 장치(101)는, 음식 또는 배달과 관련된 챗봇과의 대화에서, 챗봇에게 주문하기 위한 사용자 입력 또는 메뉴의 선택에 관한 사용자 입력을 수신할 수 있다.
동작 403에서, 전자 장치(101)는 대화 어플리케이션(330)을 통해, 수신된 사용자 입력에 관한 데이터를 서버(108)(또는 대화 모듈(230))에게 송신할 수 있다. 사용자 입력에 관한 데이터는, 텍스트 데이터 또는 사용자 발화에 관한 데이터를 포함할 수 있다. 서버(108)(또는 대화 모듈(230))는 전자 장치(101)(또는 대화 어플리케이션(330))로부터, 사용자 입력에 관한 데이터를 수신할 수 있다.
동작 404에서, 서버(108)는 챗봇 서버(201)에게, 사용자 입력에 관한 데이터를 송신할 수 있다. 챗봇 서버(201)에게 송신되는 사용자 입력에 관한 데이터는, 전자 장치(101)로부터 수신된 사용자 입력에 관한 데이터와 다른 형태일 수 있다.
서버(108)는, 전자 장치(101)로부터 수신된 사용자 입력에 관한 데이터가 사용자 발화에 관한 데이터인 경우, 자동 음성 인식(ASR) 모듈(210)을 이용하여 사용자 발화에 관한 데이터를 텍스트 데이터로 변환할 수 있다. 서버(108)는, 자동 음성 인식(ASR) 모듈(210)을 통해 변환된 텍스트 데이터 또는 전자 장치(101)로부터 수신된 텍스트 데이터를 챗봇을 위한 NLU 모듈(NLU for chatbot)에게 전송할 수 있다.
일부 실시 예들에서, 챗봇을 위한 NLU 모듈이 서버(108)에 포함되는 경우, 서버(108)는, 챗봇을 위한 NLU 모듈을 이용하여, 사용자 입력의 의도(intent) 및 파라미터(또는 슬롯(slot))을 식별할 수 있다. 서버(108)는, 챗봇을 위한 NLU 모듈을 이용하여 식별된, 사용자 입력의 의도(intent)에 관한 데이터 및 사용자 입력의 파라미터에 관한 데이터를 챗봇 서버(201)에게 송신할 수 있다. 챗봇 서버(201)는, 사용자 입력의 의도(intent)에 관한 데이터 및 사용자 입력의 파라미터에 관한 데이터를 수신할 수 있다.
다른 일부 실시 예들에서, 챗봇을 위한 NLU 모듈이 챗봇 서버(201)에 포함되는 경우, 서버(108)는, 사용자 입력에 관한 데이터(예: 자동 음성 인식(ASR) 모듈(210)을 통해 변환된 텍스트 데이터 또는 전자 장치(101)로부터 수신된 텍스트 데이터)를 챗봇 서버(201)에게 송신할 수 있다. 챗봇 서버(201)는, 상기 사용자 입력에 관한 데이터를 수신할 수 있다. 챗봇 서버(201)는, 챗봇을 위한 NLU 모듈을 이용하여, 수신된 사용자 입력에 관한 데이터(예: 텍스트 데이터)로부터, 사용자 입력의 의도(intent) 및 파라미터(또는 슬롯(slot))을 식별할 수 있다.
동작 405에서, 챗봇 서버(201)는, 사용자 입력에 대한 챗봇의 응답 메시지를 생성할 수 있다. 챗봇 서버(201)는, 사용자 입력의 의도(intent) 또는 파라미터(parameter)에 기반하여, 사용자에게 제공할 챗봇의 서비스(또는 액션, 태스크)를 결정할 수 있다. 챗봇 서버(201)는, 상기 결정에 기반하여, 전자 장치(101)에서 출력하기 위한, 챗봇의 응답 메시지를 결정 또는 획득할 수 있다.
동작 406에서, 챗봇 서버(201)는, 획득된 챗봇의 응답 메시지에 관한 데이터를 서버(108)(또는 대화 모듈(230))에게 송신할 수 있다. 서버(108)(또는 대화 모듈(230))는 챗봇 서버(201)로부터, 챗봇의 응답 메시지에 관한 데이터를 수신할 수 있다.
동작 407에서, 서버(108)(또는 대화 모듈(230))는 챗봇의 응답 메시지에 관한 데이터를 전자 장치(101)에게 송신할 수 있다. 서버(108)(또는 대화 모듈(230))는, 전자 장치(101)와 챗봇 사이의 대화 세션을 통해, 챗봇의 응답 메시지에 관한 데이터를, 전자 장치(101)에게 송신할 수 있다. 전자 장치(101)는 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)을 통해, 서버(108)(또는 대화 모듈(230))로부터, 챗봇의 응답 메시지에 관한 데이터를 수신할 수 있다.
동작 408에서, 전자 장치(101)는, 챗봇의 응답 메시지를 출력할 수 있다. 전자 장치(101)는, 대화 어플리케이션(330)의 GUI 내에서, 챗봇의 응답 메시지를 화면에 출력할 수 있다. 전자 장치(101)는 대화 어플리케이션(330)(또는 인공 지능 어플리케이션) 상에서, 마이크를 통해, 챗봇의 응답 메시지를 챗봇이 말하는 것처럼 출력할 수 있다.
동작 409에서, 서버(108)는, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 동작 409는, 동작 402 내지 동작 408이 수행되는 동안, 병렬적으로(또는 계속적으로) 수행될 수 있다. 서버(108)는, 개인 정보 봇을 참여시키기 위한 이벤트를 검출하지 않는 것에 기반하여, 동작 402 내지 동작 408을 반복적으로 수행함으로써, 전자 장치(101)의 사용자와 챗봇 서버(201)의 챗봇과의 대화를 지원할 수 있다. 동작 409의 적어도 일부는, 전자 장치(101)에 의해 수행될 수 있다.
예를 들면, 서버(108)는 개인 정보를 위한 NLU 모듈(NLU for PI)를 이용하여, 동작 403에서 전자 장치(101)로부터 수신된 사용자 입력(예: "주소 정보 알려줘")에 관한 데이터로부터, 사용자 입력의 의도(intent)를 식별할 수 있다. 서버(108)는 개인 정보를 위한 NLU 모듈(NLU for PI)를 이용하여, 동작 406에서 챗봇 서버(201)로부터 수신된 응답 메시지(예: "주소지를 입력해주세요")에 관한 데이터로부터, 챗봇의 응답 메시지의 의도(intent)를 식별할 수 있다. 서버(108)는, 사용자 입력의 의도(intent) 또는 챗봇의 응답 메시지의 의도(intent)가 개인 정보와 관련된 것을 식별하는 것에 기반하여, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
다른 예를 들면, 서버(108)는, 동작 403에서 전자 장치(101)로부터 수신된 사용자 입력(예: "주소 정보 알려줘")에 관한 데이터 또는 동작 406에서 챗봇 서버(201)로부터 수신된 응답 메시지(예: "주소지를 입력해주세요")에 관한 데이터로부터, 개인 정보와 관련된 키워드(예: "주소")를 식별할 수 있다. 서버(108)는, 상기 식별에 기반하여, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 또는, 전자 장치(101)가 상기 키워드를 식별할 수 있고, 서버(108)는, 상기 키워드를 식별한 전자 장치(101)로부터 개인 정보 봇을 참여시키기 위한 제어 신호를 수신할 수 있다.
또 다른 예를 들면, 동작 409의 적어도 일부는, 전자 장치(101)에 의해 수행될 수 있다. 예를 들면, 서버(108)의 대화 모듈(230)과 연결되고 전자 장치(101)에 포함된 대화 클라이언트는, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 예를 들어, 전자 장치(101)(예: 대화 클라이언트)는, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 사용자 입력(예: 물리적 버튼에 대한 입력, 아이콘에 대한 입력, 지정된 단어(예: 빅스비)가 포함된 발화 등)을 수신할 수 있다. 전자 장치(101)는 상기 수신에 기반하여 서버(108)에게, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 제어 신호를 송신할 수 있다. 서버(108)는, 전자 장치(101)로부터 상기 제어 신호를 수신하는 것에 기반하여, 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다.
동작 410에서, 서버(108)는, 챗봇과의 대화에 개인 정보 봇을 참여시키기 위한 이벤트를 검출하는 것에 기반하여, 개인 정보 봇을 호출 또는 구동할 수 있다. 예를 들면, 개인 정보 봇은, 서버(108)에 포함될 수 있다. 개인 정보 봇은, 서버(108)에 포함된 개인 정보를 위한 NLU 모듈, 서버(108)에 포함된 대화 모듈(230), 서버(108)에 포함된 개인 정보 관리 모듈(250), 또는 전자 장치(101)에 포함된 대화 클라이언트(또는 대화 어플리케이션, 인공 지능 어플리케이션) 중 적어도 하나를 통해 기능(즉, 개인 정보에 관한 대화)을 수행할 수 있다.
동작 411에서, 개인 정보 봇은, 개인 정보와 관련된 개인 정보 봇의 응답 메시지(예: "저장된 주소가 있습니다", "경기도 수원시 영통")를 생성할 수 있다.
예를 들면, 개인 정보 봇은, 상기 이벤트의 검출과 관련된 사용자 입력(예: "주소 정보 알려줘") 또는 챗봇의 응답 메시지(예: "주소지를 입력해주세요")로부터, 개인 정보를 위한 NLU 모듈(NLU for PI)을 이용하여, 사용자 입력의 의도(intent) 또는 챗봇의 응답 메시지의 의도(intent)를 식별할 수 있다. 개인 정보 봇은, 식별된 의도에 기반하여 개인 정보 관리 모듈(250)을 제어할 수 있다. 개인 정보 봇은, 개인 정보 관리 모듈(250)을 이용하여, 개인 정보 DB(240)로부터, 식별된 의도(예: 주소 입력에 관한 의도)와 관련된 정보(예: 주소)를 추출(또는 검색)할 수 있다. 개인 정보 봇은, 추출된 정보를 이용하여, 개인 정보 봇의 응답 메시지(예: 예: "저장된 주소가 있습니다", "경기도 수원시 영통")를 생성할 수 있다. 상기 개인 정보 봇의 기능은, 서버(108)의 프로세서에 의해 수행될 수 있다.
동작 411의 적어도 일부는 전자 장치(101)에서 수행될 수도 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)에 저장된 개인 정보 DB(340)로부터, 식별된 의도(예: 주소 입력에 관한 의도)와 관련된 정보(예: 주소)를 추출(또는 검색)할 수 있다. 전자 장치(101)는 서버(108)에게, 추출된 정보(예: 주소)를 송신할 수 있다. 개인 정보 봇은, 전자 장치(101)로부터 수신된 정보(예: 주소)에 기반하여, 개인 정보 봇의 응답 메시지를 생성할 수 있다.
동작 412에서, 개인 정보 봇은, 서버(108)(또는 대화 모듈(230))를 통해, 개인 정보 봇의 응답 메시지에 관한 데이터를 전자 장치(101)에게 송신할 수 있다. 개인 정보 봇은, 서버(108)의 대화 모듈(230))에 기반하여 전자 장치(101)와 챗봇 사이의 대화 세션을 통해, 개인 정보 봇의 응답 메시지에 관한 데이터를 전자 장치(101)에게 송신할 수 있다.
예를 들면, 서버(108)(또는 대화 모듈(230))는, 전자 장치(101)와 챗봇 사이의 대화 세션과 관련된 전자 장치(101)와 개인 정보 봇 사이의 대화 세션을 생성할 수 있다. 전자 장치(101)와 개인 정보 봇 사이의 대화 세션은, 전자 장치(101)와 챗봇 사이의 대화 세션과 연계될 수 있다. 전자 장치(101)와 개인 정보 봇 사이의 대화 세션은, 전자 장치(101)와 챗봇 사이의 대화 세션에 대한 하위 세션일 수 있다. 전자 장치(101)와 개인 정보 봇 사이의 대화 세션은, 전자 장치(101)와 챗봇 사이의 대화 세션 내부의 임시적이고 독립적인 세션일 수 있다. 서버(108)(또는 대화 모듈(230))는, 예를 들면, 상기 생성된 전자 장치(101)와 개인 정보 봇 사이의 대화 세션을 이용하여, 개인 정보 봇의 응답 메시지에 관한 데이터를 전자 장치(101)에게 송신할 수 있다.
서버(108)(또는 대화 모듈(230))는, 개인 정보 봇과의 대화(예: 동작 410 내지 동작 414) 동안, 개인 정보 봇의 응답 메시지(또는 사용자 입력)에 관한 데이터를 챗봇 서버(201)(또는 챗봇)에게 송신하는 것을 제한할 수 있다. 예를 들면, 서버(108)(또는 대화 모듈(230))는, 전자 장치(101)와 개인 정보 봇 사이의 대화 세션을 이용함으로써, 개인 정보 봇의 응답 메시지를 챗봇 서버(201)(또는 챗봇)에게 송신하는 것을 제한할 수 있다. 개인 정보 봇의 응답 메시지에 관한 데이터를 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 송신하는 것을 제한함으로써, 사용자의 개인 정보를 보호하고, 챗봇의 오동작을 방지할 수 있다. 상술한 바와 같은 동작은, 전자 장치(101)에 의해 수행될 수도 있다. 예를 들면, 전자 장치(101)는, 개인 정보 봇의 응답 메시지를 챗봇 서버(201)(또는 챗봇)에게 송신하는 것을 제한할 수 있다. 전자 장치(101)(예: 대화 클라이언트)는, 개인 정보 봇의 응답 메시지를, 전자 장치(101)를 통해 출력할 뿐, 개인 정보 봇의 응답 메시지에 관한 데이터를 서버(108)에게 송신하는 것을 제한할 수 있다. 전자 장치(101)(예: 대화 클라이언트)는, 대화 어플리케이션(330)에 관한 GUI(예: 챗봇과의 대화방)를 통해 개인 정보 봇의 응답 메시지를 표시할 뿐, 개인 정보 봇의 응답 메시지에 관한 데이터를 서버(108)의 대화 모듈(230)에게 송신하는 것을 제한할 수 있다. 개인 정보 봇의 응답 메시지에 관한 데이터를 서버(108)에게 송신하는 것을 제한함으로써, 전자 장치(101)는, 개인 정보 봇의 응답 메시지를 챗봇 서버(201)(또는 챗봇)에게 송신하는 것을 제한할 수 있다.
전자 장치(101)는 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)을 통해, 서버(108)(또는 대화 모듈(230))로부터, 개인 정보 봇의 응답 메시지에 관한 데이터를 수신할 수 있다.
동작 413에서, 전자 장치(101)는, 개인 정보 봇의 응답 메시지를 출력할 수 있다. 전자 장치(101)는, 대화 어플리케이션(330)의 GUI 내에서, 개인 정보 봇의 응답 메시지를 출력할 수 있다. 예를 들면, 전자 장치(101)는, 챗봇과의 대화방을 이용하여 개인 정보 봇의 응답 메시지를 출력할 수 있다. 전자 장치(101)는, 챗봇과의 대화방에 개인 정보 봇이 참여한 것처럼 개인 정보 봇의 응답 메시지를 출력할 수 있다.
전자 장치(101)는 대화 어플리케이션(330)(또는 인공 지능 어플리케이션) 상에서, 마이크를 통해, 개인 정보 봇의 응답 메시지를 개인 정보 봇이 말하는 것처럼 출력할 수 있다. 전자 장치(101)는, 챗봇 과의 대화에 개인 정보 봇이 참여한 것처럼 개인 정보 봇의 응답 메시지를 출력할 수 있다.
동작 414에서, 전자 장치(101)는, 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)을 통해 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, 개인 정보 봇과의 대화(chat)(즉, 개인 정보와 관련된 대화)를 위한 사용자의 텍스트 입력 또는 사용자 발화를 포함할 수 있다.
동작 415에서, 전자 장치(101)는, 대화 어플리케이션(330)(또는 인공 지능 어플리케이션)을 통해 사용자 입력에 관한 데이터를, 서버(108)(또는 대화 모듈(230))을 통해 개인 정보 봇에게 송신할 수 있다. 예를 들면, 전자 장치(101)는, 생성된 전자 장치(101)와 개인 정보 봇 사이의 대화 세션을 이용하여, 사용자 입력에 관한 데이터를 서버(108)(또는 대화 모듈(230))에게 송신할 수 있다. 개인 정보 봇은, 서버(108)의 대화 모듈(230)을 통해, 전자 장치(101)로부터 사용자 입력에 관한 데이터를 수신할 수 있다.
서버(108)는, 개인 정보 봇과의 대화(예: 동작 410 내지 동작 414) 동안, 사용자 입력에 관한 데이터를 챗봇 서버(201)에게 송신하는 것을 제한할 수 있다. 예를 들면, 서버(108)(또는 대화 모듈(230))는, 전자 장치(101)와 개인 정보 봇 사이의 대화 세션을 이용함으로써, 개인 정보 봇의 응답 메시지를 챗봇 서버(201)(또는 챗봇을 위한 NLU 모듈)에게 송신하는 것을 제한할 수 있다.
동작 416에서, 전자 장치(101)는, 개인 정보를 챗봇 서버(201)에게 제공하기 위한 사용자 입력(예: "공유해줘", "전달")을 수신할 수 있다. 동작 416은, 동작 411 내지 동작 415가 수행되는 동안, 병렬적으로(또는 계속적으로) 수행될 수 있다. 서버(108)는, 개인 정보를 챗봇 서버(201)에게 제공하기 위한 사용자 입력을 수신하지 않는 것에 기반하여, 동작 411 내지 동작 415를 반복적으로 수행함으로써, 전자 장치(101)의 사용자와 개인 정보 봇과의 대화를 지원할 수 있다.
동작 417에서, 전자 장치(101)는, 개인 정보를 챗봇 서버(201)에게 제공하기 위한 사용자 입력을 수신하는 것에 기반하여, 개인 정보(예: 주소)에 관한 데이터를 서버(108)에게 송신할 수 있다. 상기 개인 정보에 관한 데이터는, 개인 정보를 챗봇 서버(201)에게 제공하기 위한 제어 신호를 포함할 수 있다. 상기 개인 정보에 관한 데이터는, 사용자 입력에 기반하여 선택된 개인 정보(예: "경기도 수원시 영통")를 포함할 수 있다. 예를 들면, 상기 개인 정보에 관한 데이터는, 개인 정보 봇과의 대화(chat)로부터 필요한 파라미터(예: "경기도 수원시 영통")가 추출된 형태일 수 있다. 다른 예를 들면, 상기 개인 정보에 관한 데이터는, 개인 정보 봇의 응답 메시지의 형태일 수 있다.
서버(108)는 전자 장치(101)로부터, 개인 정보(예: 주소)에 관한 데이터를, 개인 정보를 챗봇 서버(201)에게 제공하기 위한 제어 신호와 함께 수신할 수 있다.
동작 418에서, 서버(108)(또는 대화 모듈(230))는, 챗봇 서버(201)에게, 개인 정보(예: 주소)에 관한 데이터를 송신할 수 있다. 서버(108)(또는 대화 모듈(230))는, 전자 장치(101)로부터 개인 정보를 챗봇 서버(201)에게 제공하기 위한 제어 신호를 수신하는 경우에만, 개인 정보에 관한 데이터를 챗봇 서버(201)에게 송신할 수 있다. 따라서, 사용자의 개인 정보가 보호되고, 챗봇의 오동작이 방지될 수 있다.
도 5는 다양한 실시 예들에 따른 전자 장치의 동작의 예를 도시한다. 도 5의 동작들은, 전자 장치(101) 또는 서버(108) 중 적어도 하나에 의해 수행될 수 있다.
도 5를 참조하면, 동작 501에서, 프로세서(120) 또는 서버(108)의 프로세서(예: 대화 모듈(230))는, 챗봇의 호출과 관련된 제1 사용자 요청을 수신할 수 있다. 예를 들면, 프로세서(120)는, 챗봇 서버(201)에 의해 구동되는 챗봇과 대화하기 위해 대화 어플리케이션(330)(예: 챗봇과의 대화방)에 진입하는 제1 사용자 요청을 수신하고, 제1 사용자 요청에 관한 신호를 서버(108)에게 송신할 수 있다. 서버(108)의 프로세서(예: 대화 모듈(230))는, 전자 장치(101)로부터 제1 사용자 요청에 관한 신호를 수신할 수 있다. 예를 들면, 제1 사용자 요청은 대화 어플리케이션의 GUI에 대한 입력일 수 있다. 다른 예를 들면, 제1 사용자 요청은, 마이크를 통해 입력되는, 지정된 단어를 포함하는 발화일 수 있다. 다만 이에 한정되지 않는다. 서버(108)의 프로세서(예: 대화 모듈(230))는, 챗봇 서버(201)의 챗봇을 대화에 참여하도록 야기(cause)할 수 있다. 예를 들면, 대화 모듈(230)은, 전자 장치(101)과 챗봇을 포함하는 대화 세션을 형성할 수 있다.
동작 503에서, 프로세서(120) 또는 서버(108)의 프로세서(예: 대화 모듈(230))는, 챗봇의 태스크에 관한 제2 사용자 요청을 수신할 수 있다. 챗봇의 태스크는, 예를 들면, 전자 장치(101)의 사용자에게 제공될 서비스(또는 챗봇의 기능)(예: 주문 등)을 나타낼 수 있다. 예를 들면, 챗봇의 태스크는, 제2 사용자 요청에 기반하여, 챗봇을 위한 NLU 모듈(NLU for chatbot)을 통해 결정될 수 있다.
예를 들면, 프로세서(120)는, 대화 어플리케이션(330)(예: 챗봇과의 대화방)을 통해 제2 사용자 요청(예: "주문할래"라는 발화 또는 텍스트)을 수신하고, 제2 사용자 요청에 관한 신호를 서버(108)에게 송신할 수 있다. 서버(108)의 프로세서(예: 대화 모듈(230))는, 전자 장치(101)로부터 제2 사용자 요청에 관한 신호를 수신할 수 있다.
일 실시 예에 따르면, 제2 사용자 요청(예: "주문할래")은, 상기 태스크(예: 주문)를 수행하기 위해 요구되는 정보의 적어도 일부(예: 개인 정보 또는 주문 정보)를 포함하지 않을 수 있다. 제2 사용자 요청(예: "주문할래")은, 상기 태스크를 수행하기 위한 완전한 정보를 포함하지 않을 수 있다. 예를 들어, 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부로써, 개인 정보는, 주소지, 카드 정보 등을 포함할 수 있고, 주문 정보는, 상품명, 사이즈, 수량, 날짜 등을 포함할 수 있다. 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부(예: 개인 정보 또는 주문 정보)는, 전자 장치(101)의 메모리(130)(예: 개인 정보 DB(340)) 또는 서버(108)의 메모리(예: 개인 정보 DB(240)) 중 적어도 하나에 저장될 수 있다.
동작 505에서, 프로세서(120) 또는 서버(108)의 프로세서(예: 대화 모듈(230))는, 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부를 공유하기 위한 사용자 승인(user authorization)을 수신할 수 있다.
예를 들면, 다양한 실시 예들에서, 프로세서(120)는, 메모리(130)에 저장되거나 서버(108)로부터 수신된, 태스크를 수행하기 위해 요구되는 정보의 적어도 일부를 식별할 수 있다. 프로세서(120)는, 식별된 정보에 관한 내용을, 대화 어플리케이션(330)(예: 챗봇과의 대화방) 상에서 출력할 수 있다. 예를 들면, 프로세서(120)는, 식별된 정보에 관한 내용을, 대화 어플리케이션(330)의 GUI 내에서 표시하거나, 음향 출력 장치(155)(예: 스피커)를 통해 출력할 수 있다. 프로세서(120)는, 상기 출력된 정보를 챗봇(또는 챗봇 서버(201))에게 공유하기 위한 사용자 승인(user authorization)을 수신할 수 있다.
예를 들면, 프로세서(120)는, 대화 어플리케이션(330)(예: 챗봇과의 대화방)을 통해, 사용자 승인으로써 "공유해줘"라는 발화 또는 텍스트를 수신하고, 상기 사용자 승인에 관한 신호를 서버(108)에게 송신할 수 있다. 서버(108)의 프로세서(예: 대화 모듈(230))는, 전자 장치(101)로부터 사용자 승인에 관한 신호를 수신할 수 있다.
동작 507에서, 프로세서(120) 또는 서버(108)의 프로세서(예: 대화 모듈(230))는, 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부를 챗봇(또는 챗봇 서버(201))에게 제공할 수 있다. 예를 들면, 서버(108)의 프로세서(예: 대화 모듈(230))는, 전자 장치(101)로부터 사용자 승인에 관한 신호를 수신하는 경우에만, 승인된 정보(예: 주소 등의 개인 정보)를 챗봇(또는 챗봇 서버(201))에게 송신할 수 있다.
도 6은 다양한 실시 예들에 따른 전자 장치의 동작의 다른 예를 도시한다. 도 6의 동작들은, 전자 장치(101) 또는 서버(108) 중 적어도 하나에 의해 수행될 수 있다. 도 7은 다양한 실시 예들에 따른 대화(chat) 어플리케이션(예: 대화 어플리케이션(330))에 관한 그래픽 사용자 인터페이스(graphical user interface, GUI)의 예를 도시한다. 도 8은 다양한 실시 예들에 따른 대화(chat) 어플리케이션(예: 대화 어플리케이션(330))(또는 인공 지능 어플리케이션)에 관한 인공 지능(artificial intelligence, AI) 스피커의 예를 도시한다.
도 6을 참조하면, 동작 601에서, 프로세서(120)는, 챗봇 서버(201)에 의해 구동되는 챗봇과 대화하고, 챗봇과의 대화를 출력할 수 있다. 챗봇과의 대화(chat)는, 입력 장치(150)을 통해 수신된 메시지(즉, 사용자 입력)를 서버(108)를 통해 챗봇 서버(201)에게 송신하는 동작 또는 챗봇 서버(201)로부터 서버(108)를 통해 수신된 메시지를 출력 장치(350)를 통해 출력하는 동작을 포함할 수 있다. 동작 601은, 도 5의 동작 503 및 동작 503의 다음에 수행되는 동작에 상응할 수 있다.
일부 실시 예들에서, 도 7을 참조하면, 프로세서(120)는, 대화 어플리케이션(330)에 관한 GUI(예: 챗봇과의 대화방)(700, 750)을 통해, 챗봇(701)과의 대화(710, 760)를 표시할 수 있다. 챗봇(701)과의 대화(710, 760)는, 문자 또는 음성 중 적어도 하나에 기반할 수 있다.
다른 일부 실시 예들에서, 도 8을 참조하면, 전자 장치(101)는 대화 어플리케이션에 관한 AI 스피커(801)를 포함할 수 있다. 프로세서(120)는, AI 스피커(801)를 통해, 사용자(802)와 챗봇과의 대화(810)를 수행할 수 있다. 사용자(802)와 챗봇과의 대화(810)는, 음성에 기반할 수 있다. 프로세서(120)는, 마이크를 통해 수신된 사용자(802)의 음성을 서버(108)를 통해 챗봇 서버(201)(또는 챗봇)에게 송신하고, 챗봇 서버(201)(또는 챗봇)으로부터 서버(108)를 통해 수신된 메시지를 AI 스피커(801)를 통해 출력할 수 있다.
동작 603에서, 프로세서(120)는, 챗봇(701)과의 대화에 개인 정보 봇(PI bot)(예: 도 7의 개인 정보 봇(702))을 참여시키기 위한 이벤트를 검출할 수 있다. 개인 정보 봇은, 대화 어플리케이션(330)에 관한 사용자 인터페이스 상에서, 챗봇(701)에게 제공하기 위한 컨텐트(예: 개인 정보, 주문 정보)에 관한 대화(chat)를 위해 이용될 수 있다.
일부 실시 예들에서, 도 7의 GUI(예: 챗봇과의 대화방)(700)을 참조하면, 프로세서(120)는, 챗봇(701)과의 대화(710)에 기반하여, 개인 정보 봇(702)을 대화에 참여시키기 위한 이벤트를 검출할 수 있다. 예를 들면, 프로세서(120) 또는 서버(108)의 프로세서는, 챗봇(701)과의 대화(710)로부터, 지정된 단어나 어구(예: 메시지(711)에 포함된 "주소")를 식별함으로써, 개인 정보 봇(702)을 대화에 참여시키기 위한 이벤트를 검출할 수 있다. 다른 예를 들면, 서버(108)의 프로세서는, 챗봇(701)을 위한 NLU 모듈을 이용하여, 대화(710)의 의도(intent)를 모니터할 수 있다. 서버(108)의 프로세서는, 챗봇(701)을 위한 NLU 모듈을 이용하여, 대화(710)에 포함된 메시지(711)의 의도가 주소 입력의 의도임을 식별하고, 상기 주소 입력의 의도에 관한 신호를 전자 장치(101)에게 송신할 수 있다. 프로세서(120)는, 서버(108)로부터 상기 주소 입력의 의도에 관한 신호를 수신함으로써, 개인 정보 봇(702)을 대화에 참여시키기 위한 이벤트를 검출할 수 있다.
다른 일부 실시 예들에서, 도 7의 GUI(예: 챗봇과의 대화방)(750)을 참조하면, 프로세서(120) 또는 서버(108)의 프로세서 중 적어도 하나는, 지정된 단어(예: "빅스비")를 수신하는 것에 기반하여, 개인 정보 봇(702)을 대화에 참여시키기 위한 이벤트를 검출할 수 있다. 예를 들면, 서버(108)는, 사용자로부터 수신된 메시지(771)에 포함된 단어 "빅스비"를 식별하는 것에 기반하여, 메시지(771)에 관한 정보를 챗봇 서버(201)(또는 챗봇(701))에게 송신하지 않을 수 있다.
또 다른 일부 실시 예들에서, 프로세서(120)는, 개인 정보 봇(702)을 호출하기 위한 사용자 입력(예: 물리적 버튼에 대한 입력, 아이콘에 대한 입력 등)을 수신함으로써, 개인 정보 봇(702)을 대화에 참여시키기 위한 이벤트를 검출할 수 있다.
도시되지는 않았지만, 도 8의 대화 어플리케이션에 관한 AI 스피커(801)도, 상술한 바와 같은 다양한 방법으로, 개인 정보 봇(예: 702)을 대화에 참여시키기 위한 이벤트를 검출할 수 있다. 예를 들면, 서버(108)는, 전자 장치(101)로부터, 개인 정보 봇(예: 702)을 대화에 참여시키기 위한 신호를 수신할 수 있다.
동작 605에서, 프로세서(120)는, 대화에 개인 정보 봇(PI bot)(예: 702)을 참여시키기 위한 이벤트를 검출하는 것에 기반하여, 개인 정보 봇(예: 702)과의 대화를 출력할 수 있다. 개인 정보 봇(예: 702)과의 대화는, 챗봇(예: 701)에게 제공하기 위한 컨텐트(예: 개인 정보 또는 주문 정보 등)에 관한 대화일 수 있다. 개인 정보 봇과의 대화는, 서버(108)의 개인 정보를 위한 NLU 모듈(NLU for PI)에 기반할 수 있다. 개인 정보 봇과의 대화는, 서버(108)의 개인 정보 DB(240) 또는 전자 장치(101)의 개인 정보 DB(340) 중 적어도 하나에 기반할 수 있다.
예를 들어, 도 7을 참조하면, 프로세서(120)는, 대화 어플리케이션에 관한 GUI(예: 챗봇과의 대화방) (700, 750) 내에서, 개인 정보 봇(702)과의 대화(720, 770)를 표시할 수 있다. 개인 정보 봇(702)과의 대화(720, 770)는, 문자 또는 음성 중 적어도 하나에 기반할 수 있다. 도시되지는 않았지만, 도 8의 대화 어플리케이션에 관한 AI 스피커(801)도, 음성에 기반하여 개인 정보 봇(예: 702)과의 대화를 출력할 수 있다.
예를 들면, 프로세서(120) 또는 서버(108)의 프로세서는, 대화 어플리케이션(330)을 통한 대화(chat)(예: 메시지(711 또는 771))로부터, 챗봇(701)에게 제공하기 위한 정보(예: 주소)를 식별할 수 있다. 프로세서(120) 또는 서버(108)의 프로세서는, 개인 정보 DB(240) 또는 개인 정보 DB(340)로부터(from among), 상기 식별된 정보에 대응하는 컨텐트(예: 주소)를 식별(또는 검색(retrieve))할 수 있다. 프로세서(120)는, 챗봇(701)에게 제공하기 위한 상기 컨텐트에 관한 개인 정보 봇(702)과의 대화(720, 770)를 출력할 수 있다.
프로세서(120) 또는 서버(108)의 프로세서는, 개인 정보 봇(702)과 대화(720, 770)하는 동안, 개인 정보 봇(702)과의 대화(720, 770)에 관한 정보를 챗봇(701)(또는 챗봇 서버(201))에게 송신하지 않을 수 있다. 따라서, 개인 정보 봇(702)과 대화하는 동안, 챗봇(701)에게 제공하기 위한 컨텐트에 관한 정보(예: 721, 722, 772)는, 챗봇(701)(또는 챗봇 서버(201))에게 송신되지 않을 수 있다. 개인 정보 봇과의 대화에 관한 정보를 챗봇 서버에게 송신하는 것을 제한함으로써, 개인 정보에 대한 보안을 유지할 수 있으며, 챗봇의 오동작을 방지할 수 있다.
일 실시 예에 따르면, 프로세서(120) 또는 서버(108)의 프로세서는, 챗봇과의 대화뿐만 아니라, 대화 어플리케이션(330)을 이용한 다른 전자 장치의 사용자들과의 대화(chat)에서도, 개인 정보 봇을 호출할 수 있다. 프로세서(120) 또는 서버(108)의 프로세서는, 다른 전자 장치의 사용자들과의 대화(chat) 동안, 개인 정보 봇을 참여시키기 위한 이벤트를 검출할 수 있다. 서버(108)의 프로세서는, 상기 이벤트를 검출하는 것에 기반하여, 개인 정보를 위한 NLU 모듈을 이용하여 전자 장치(101)의 사용자와 대화(chat)를 수행하도록, 개인 정보 봇을 구동할 수 있다. 서버(108)에 의해 구동되는 개인 정보 봇은, 전자 장치(101)의 사용자의 개인 정보에 관련된 대화(chat)를 수행할 수 있다. 전자 장치(101)의 사용자와 개인 정보 봇과의 대화는, 다른 전자 장치의 사용자들에게 송신되지 않을 수 있다. 프로세서(120) 또는 서버(108)의 프로세서는, 개인 정보를 다른 전자 장치에게 송신하기 위한 사용자 승인을 수신하는 것에 기반하여 개인 정보를 다른 전자 장치에게 송신할 수 있다.
도시되지는 않았지만, 도 8의 대화 어플리케이션에 관한 AI 스피커(801)도, 상술한 바에 상응하는 동작을 수행할 수 있다. 예를 들면, AI 스피커(801)의 프로세서(120)는, 음성에 기반한 챗봇(예: 701)과의 대화 중에, 개인 정보 봇(예: 702)을 참여시키기 위한 이벤트를 검출할 수 있다. 프로세서(120)는, 상기 이벤트를 검출하는 것에 기반하여, 챗봇(예: 701)과의 대화 에, 개인 정보 봇(예: 702)을 참여시킬 수 있다. AI 스피커(801)의 프로세서(120)는, 마이크를 통해 수신된 사용자 입력을 서버(108)에게 송신하고, 서버(108)로부터 송신된 개인 정보 봇의 응답 메시지를, AI 스피커(801)를 통해 음성으로 출력할 수 있다. AI 스피커(801)의 프로세서(120)는, 개인 정보 봇과의 개인 정보에 관한 대화에 관한 데이터를, 챗봇 서버(201)(또는 챗봇(예: 701))에게 송신하지 않을 수 있다. AI 스피커(801)의 프로세서(120)는, 개인 정보를 챗봇 서버(201)에게 송신하기 위한 사용자 승인을 수신하는 것에 기반하여 개인 정보를 챗봇 서버(201)에게 송신할 수 있다. AI 스피커(801)를 통한 개인 정보 봇과의 대화(chat)에 관한 상세한 설명은, 도 11 내지 도 12에서 후술된다.
동작 607에서, 프로세서(120)는, 챗봇(또는 챗봇 서버(201))에게 컨텐트를 제공하기 위한 사용자 입력을 수신하는지 여부를 확인할 수 있다. 예를 들어, 도 7을 참조하면, 챗봇(701)에게 컨텐트를 제공하기 위한 사용자 입력은, "공유해줘"라는 발화 또는 텍스트 입력일 수 있다. 다만 이에 한정되지 않는다. 프로세서(120)는, 챗봇(701)에게 컨텐트를 제공하기 위한 사용자 입력을 수신하기 전까지, 동작 605를 수행할 수 있다. 프로세서(120)는, 챗봇(701)에게 컨텐트를 제공하기 위한 사용자 입력을 수신하기 전까지, 개인 정보 봇(702)과의 대화(720, 770)를 출력할 수 있다.
프로세서(120)는, 챗봇에게 컨텐트를 제공하기 위한 사용자 입력을 수신하는 것에 기반하여, 동작 609에서, 컨텐트에 관한 정보를 챗봇에게 송신할 수 있다. 동작 607에서 사용자 입력을 수신하는 것은, 도 5의 동작 505에서 사용자 승인(user authentication)을 수신하는 것에 상응할 수 있다. 동작 609에서 컨텐트에 관한 정보를 송신하는 것은, 도 5의 동작 507에서, 정보를 챗봇에게 제공하는 것에 상응할 수 있다.
예를 들면, 프로세서(120)는, GUI(700)(예: 챗봇(701)과의 채팅방) 내에서, 개인 정보 봇(702)이 챗봇(701)에게 컨텐트(예: 주소)에 대한 정보를 제공하는 것(730)을 출력할 수 있다. 다른 예를 들면, 프로세서(120)는, GUI(750)(예: 챗봇(701)과의 채팅방) 내에서, 사용자가 챗봇(701)에게 컨텐트에 대한 정보를 제공하는 것(780)을 출력할 수도 있다. 메시지(780)은, 사용자 입력에 기반하지 않을 수 있다. 프로세서(120)는, 챗봇(701)에게 컨텐트를 제공하기 위한 사용자 입력(예: "공유해줘")을 수신하는 것에 기반하여, 메시지(730 또는 780)를 생성할 수 있다.
프로세서(120)는, 상기 컨텐트(예: 개인 정보 또는 주문 정보)를 챗봇 서버(201)에게 제공하기 위한 추가적인 인증을 수행할 수도 있다. 프로세서(120)는, 전자 장치(101)의 사용자의 목소리 정보, 홍채 정보, 얼굴 인식 정보, 지문 정보, 또는 비밀번호 중 적어도 하나에 기반하여 컨텐트를 챗봇 (701)에게 제공하기 위한 추가적인 인증을 수행할 수 있다. 예를 들면, 프로세서(120)는, 상기 컨텐트를 챗봇 서버(201)에게 제공하기 위한 사용자 입력(예: "공유해줘"라는 발화)으로부터, 심리스하게(seamlessly) 인증을 위한 목소리 정보를 획득할 수 있다. 프로세서(120)는, 상기 사용자 입력으로부터 획득된 목소리 정보가 전자 장치(101)의 사용자의 목소리에 상응함을 식별하는 것에 기반하여, 상기 사용자 입력을 인증할 수 있다. 프로세서(120)는, 컨텐트를 챗봇 서버(201)에게 제공하기 위한 사용자 입력을 수신하고, 및 상술한 바와 같은 인증을 수행하는 것에 기반하여, 상기 컨텐트를 챗봇(701)에게 제공(또는 송신)할 수 있다.
다양한 실시 예들에서, 챗봇(701)에게 제공하기 위한 컨텐트는, 주소 등의 개인 정보뿐만 아니라, 주문 정보를 포함할 수도 있다. 예를 들면, 개인 정보 DB(240), 개인 정보 DB(340) 또는 챗봇 서버(201)에 포함되거나 챗봇 서버(201)과 연결된 DB 중 적어도 하나는, 사용자마다(예: 사용자 ID마다) 주문 이력을 저장할 수 있다. 프로세서(120) 또는 서버(108)의 프로세서는, 저장된 주문 이력으로부터(from among), 주문 정보를 챗봇(701)에게 제공할 수 있다. 컨텐트로써 주문 정보를 챗봇(701)에게 제공하는 동작의 예에 관한 상세한 설명은, 도 16 내지 도 18에서 후술된다.
다양한 실시 예들에서, 프로세서(120) 또는 서버(108)의 프로세서는, 챗봇(예: 701) 또는 개인 정보 봇(예: 702)과의 대화(예: 710, 720, 760, 또는 770 등)를 통해, 챗봇에게 제공하기 위한 정보(예: 개인 정보, 주문 정보 등)를 확정(또는 결정)할 수 있다. 일 실시 예에 따르면, 프로세서(120) 또는 서버(108)의 프로세서는, 챗봇(예: 701)과의 대화 중 사용자 입력(예: 719, 729)에 기반하여 (예를 들면, 키워드 또는 챗봇을 위한 NLU 모듈을 이용하여) 챗봇에게 제공하기 위한 정보(예: 718, 722)를 결정할 수 있다. 예를 들어, GUI(예: 챗봇과의 대화방)(700)을 참조하면, 프로세서(120)는, 챗봇(701)과의 대화(710)에서, "주문 해줘"라는 사용자 입력(719)에 기반하여, 주문 정보(718)를 확정할 수 있다. 프로세서(120)는, 개인 정보 봇(702)과의 대화(720)에서 "공유해줘"라는 사용자 입력(729)에 기반하여, 주소 정보(722)를 확정할 수 있다.
프로세서(120)는, 확정된 정보를 서버(108)를 통해 챗봇 서버(201)에게 송신할 수 있다.
일부 실시 예들에서, 프로세서(120)는 확정된 정보를, 챗봇(예: 701)과의 대화방(즉, 서버(108)의 대화 모듈(230)에서 관리되는, 전자 장치(101)와 챗봇(예: 701) 사이의 대화 세션)을 이용하여, 챗봇(또는 챗봇 서버(201))에게 송신할 수 있다. 예를 들면, 프로세서(120)는, 확정된 정보에 대한 메시지(예: 718, 730 등)를, 챗봇(예: 701)과의 대화방을 통해, 서버(108)에게 송신할 수 있다. 서버(108)는, 챗봇(예: 701)과 전자 장치(101)의 대화 세션을 이용하여, 상기 정보에 대한 메시지(예: 718, 730 등)를, 챗봇(또는 챗봇 서버(201))에게 송신할 수 있다. 챗봇 서버(201)는, 예를 들면, 챗봇을 위한 NLU 모듈을 이용하여, 상기 대화 세션을 통해 수신된 메시지로부터 챗봇의 태스크(예: 주문에 관한 기능)를 수행하기 위해 필요한 파라미터를 추출할 수 있다. 예를 들면, 챗봇(701)(또는 챗봇 서버(201))은, 메시지(730)로부터 "경기도 수원시 영통"을 주소 파라미터로 추출할 수 있고, 메시지(718)로부터, 상품명, 사이즈, 수량 등의 파라미터를 추출할 수 있다.
다른 일부 실시 예들에서, 챗봇과 전자 장치(101)의 대화 어플리케이션(330)(또는 서버(108)의 대화 모듈(230)) 사이에, 지정된 파라미터를 공유할 수 있는 어플리케이션 프로그래밍 인터페이스(application programming interface, API)이 설정될 수 있다. 프로세서(120) 또는 서버(108)의 프로세서(예: 대화 모듈(230))는, 상기 API를 이용하여, 대화 세션을 통해 챗봇(701)(또는 챗봇 서버(201))에게 지정된 파라미터를 공유할 수 있다.
챗봇 서버(201)의 챗봇(701)은, 전자 장치(101)로부터 서버(108)을 통해 제공된 정보(또는 컨텐트)를 이용하여, 챗봇(701)의 태스크(예: 주문에 관한 기능)를 수행할 수 있다.
도 9는 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 전자 장치의 동작의 예를 도시한다. 도 9의 동작은 전자 장치(101)에 의해 수행될 수 있다. 일 실시 예에 따라, 도 9의 동작(예: 동작 903)의 일부는 서버(108)에 의해 수행될 수도 있다. 도 10은 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 GUI의 예를 도시한다. 도 11은, 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 AI 스피커의 예를 도시한다. 도 12는, 다양한 실시 예들에 따라, 챗봇과의 대화와 다른 방식으로 개인 정보 봇과의 대화를 출력하기 위한 AI 스피커의 다른 예를 도시한다.
도 9의 동작 901, 동작 903, 및 동작 905는, 도 6의 동작 601, 동작 603, 및 동작 605에 포함될 수 있다. 도 9의 동작들은, 도 6의 동작 605에서 개인 정보 봇과의 대화를 출력하는 동작의 하위 실시 예를 나타낼 수 있다.
도 9를 참조하면, 동작 901에서, 프로세서(120)는, 챗봇과의 대화를 출력할 수 있다. 동작 901은, 도 6의 동작 601에 상응할 수 있다.
예를 들어, 도 7을 참조하면, 프로세서(120)는, 챗봇(701)과의 대화(710, 760)을 출력할 수 있다. 다른 예를 들어, 도 10을 참조하면, 프로세서(120)는, 챗봇(1001)과의 대화(1010)을 출력할 수 있다. 또 다른 예를 들어, 도 11 또는 도 12를 참조하면, 프로세서(120)는, 챗봇과의 대화(1110) 또는 챗봇과의 대화(1210)를 출력할 수 있다.
동작 903에서, 프로세서(120) 또는 서버(108)의 프로세서는, 대화(예: 710, 760, 1010, 1110, 1210 등)에 개인 정보 봇(예: 702)을 참여시키기 위한 이벤트를 검출할 수 있다. 동작 903은, 도 6의 동작 603에 상응할 수 있다.
동작 905에서, 프로세서(120)는, 챗봇(예: 701, 1001)과의 대화(예: 710, 760, 1010, 1110, 1210 등)에 관한 사용자 경험(user experience)과는 구별되는 개인 정보 봇(예: 702, 1002)과의 대화에 관한 사용자 경험을 제공할 수 있다. 동작 905는, 도 6의 동작 605에 상응할 수 있다.
예를 들어, 도 7을 참조하면, 프로세서(120)는, GUI(예: 챗봇과의 대화방)(700, 750) 내에서, 챗봇(701)과의 대화(710, 760)와 다른 색상으로 개인 정보 봇(702)과의 대화(720, 770)를 표시할 수 있다.
다른 예를 들어, 도 10을 참조하면, 프로세서(120)는, GUI(예: 챗봇과의 대화방)(1000)에 중첩된(superimposed on) 개인 정보 봇(1002)과의 대화(1020)를 표시할 수 있다. 프로세서(120)는, GUI(1000)(또는 챗봇(1001)과의 대화방)와 구별되는 레이어(예: 팝업 윈도우)를 이용하여, 개인 정보 봇(1002)과의 대화(1020)를 표시할 수 있다.
또 다른 예를 들어, 도 11을 참조하면, 프로세서(120)는, 챗봇의 음성과 다른 음성으로, 개인 정보 봇의 메시지(1120)를 출력할 수 있다. 예를 들면, 프로세서(120)는, 챗봇의 메시지(1110)는, 남성(1101)의 목소리로, 개인 정보 봇의 메시지(1120)는 여성(1102)의 목소리로 출력할 수 있다. 다만, 이에 한정되지 않는다. 예를 들면, 프로세서(120)는, 억양, 빠르기, 노인의 목소리, 어린이의 목소리, 남성의 목소리, 또는 여성의 목소리 중 적어도 하나에 기반하여, 개인 정보 봇의 메시지(1120)를 챗봇의 메시지(1110)와 다르게 출력할 수 있다.
또 다른 예를 들어, 도 12를 참조하면, 프로세서(120)는, 챗봇과 대화(1210)하는 동안, 표시부(예: 발광 다이오드(light emitting diode, LED))를 통해 색상(1201)을 출력할 수 있다. 프로세서(120)는, 개인 정보 봇과 대화(1220)하는 동안, 표시부(예: LED)를 통해, 색상(1201)과는 다른 색상(1202)을 출력할 수 있다. 다만, 이에 한정되지 않는다. 예를 들면, 프로세서(120)는, 전자 장치(101)(예: AI 스피커)와 연결된 전구를 통해 출력되는 빛의 세기 또는 색상에 기반하여, 개인 정보 봇의 메시지(1220)를 챗봇의 메시지(1210)와 다르게 출력할 수 있다.
프로세서(120)는, 동작 905 이후에 도 6의 동작 607로 리턴할 수 있다. 예를 들어, 도 10을 참조하면, 프로세서(120)는, 개인 정보 봇(1002)과의 대화(1020)를 표시하는 동안, 챗봇(1001)에게 컨텐트(예: 주소)를 제공하기 위한 사용자 입력(예: "전달해줘"라는 사용자의 발화 또는 텍스트 입력)을 수신하는 것에 기반하여, 개인 정보 봇(1002)과의 대화(1020)를 표시하기 위한 레이어(예: 팝업 윈도우)를 삭제할 수 있다. 프로세서(120)는, 상기 사용자 입력을 수신하는 것에 기반하여, GUI(예: 챗봇과의 대화방) (1050)와 같이, 챗봇(1001)과 이어서 대화할 수 있다. GUI(예: 챗봇과의 대화방)(1050)는, 개인 정보 봇(1002)과의 대화(예: 1020)를 포함하지 않을 수 있다.
예를 들면, 개인 정보 봇(예: 702, 1002)과의 대화(예: 720, 770, 1020, 1120, 1220)는, 서버(108)의 대화 모듈(230)에서, 챗봇(예: 701, 1001)과의 대화 세션과는 별도의 세션을 통해 수행될 수 있다. 예를 들면, 서버(108)의 대화 모듈(230)(또는 프로세서)는, 개인 정보 봇과의 대화를 위해, 챗봇과의 대화 세션과는 다른 세션을 생성(또는 임시적으로(temporarily) 생성)할 수 있다. 챗봇과의 대화 세션과는 다른 세션을 통해 개인 정보 봇과 대화를 수행함으로써, 개인 정보 봇과의 대화는, 챗봇(예: 701, 1001)(또는 챗봇 서버(201))에게 송신되지 않을 수 있다. 전자 장치(101)에서는, 챗봇과의 대화 세션에 개인 정보 봇이 참여한 것처럼, 개인 정보 봇과의 대화가 출력될 수 있다.
도 13은 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화에 관련된 정보를 저장하기 위한 동작의 예를 도시한다. 도 13의 동작은 전자 장치(101)에 의해 수행될 수 있다. 일 실시 예에 따라, 도 13의 동작(예: 동작 1305)의 일부는 서버(108)에 의해 수행될 수도 있다. 도 14는 다양한 실시 예들에 따른 전자 장치에서, 챗봇과의 대화에 관련된 정보를 저장하기 위한 GUI의 예를 도시한다.
도 13을 참조하면, 동작 1301에서, 프로세서(120)는, 챗봇과의 대화에 관련된 정보(예: 주문 정보 등)를 저장하기 위한 대화를 출력할 수 있다. 상기 정보를 저장하기 위한 대화는, 예를 들면, 도 7의 메시지(718)에 상응할 수도 있고, 또는 도 5의 동작 507(또는 도 6의 동작 609)의 이후에 출력될 수도 있다.
예를 들어, 도 14를 참조하면, 프로세서(120)는, 챗봇(1401, 1402)과의 대화방을 나타내는 GUI(1400, 1450)에서, 주문 정보를 저장하기 위한 메시지(1410, 1460)를 출력할 수 있다. 예를 들면, 프로세서(120)는, 메시지(1410)에 포함된 정보가 저장 가능함을 나타내는 메시지(1410)를 출력할 수 있다. 다른 예를 들면, 프로세서(120)는, 메시지(1410)에 포함된 정보를 저장하기 위해 이용되는 객체(1461)(또는 버튼, 아이콘)을 포함하는 메시지(1460)를 출력할 수 있다.
동작 1303에서, 프로세서(120)는, 정보를 저장하기 위한 사용자 입력을 수신하는지 여부를 식별할 수 있다. 프로세서(120)는, 정보를 저장하기 위한 사용자 입력을 수신하지 않는 것에 기반하여 종료할 수 있다. 예를 들면, 프로세서(120)는, 정보를 저장하지 않고 챗봇(1401, 1402) 또는 개인 정보 봇과 대화를 이어갈 수 있다.
프로세서(120)는, 정보를 저장하기 위한 사용자 입력을 수신하는 것에 기반하여, 동작 1305에서, 챗봇과의 대화에 관련된 정보를 저장할 수 있다.
예를 들어, 도 14를 참조하면, 프로세서(120)는 GUI(예: 챗봇과의 대화방)(1400) 상에서, 메시지(1410)에 대한 입력(1415)(예: 롱 프레스, 호버링 입력 등)을 수신하는 것에 응답하여, 메시지(1410)에 포함된 정보를 저장할 수 있는 객체(1411)를 출력할 수 있다. 프로세서(120)는, 객체(1411)에 대한 입력(1416)을 수신하는 것에 기반하여, 메시지(1410)에 포함된 정보를 저장할 수 있다. 프로세서(120)는, GUI(1450) 상에서, 메시지(1460)에 포함된 객체(1461)에 대한 입력을 수신하는 것에 기반하여, 메시지(1460)에 포함된 정보를 저장할 수 있다.
일부 실시 예들에서, 프로세서(120)는, 메시지(1410)에 포함된 정보를, 메모리(130)(예: 개인 정보 DB(340))에 저장할 수 있다. 다른 일부 실시 예들에서, 프로세서(120)는, 서버(108)의 개인정보 DB(240) 또는 챗봇 서버(201)의 DB에 저장하도록, 메시지(1410)에 포함된 정보를, 서버(108)에게 송신할 수 있다. 일 실시 예에 따르면, 프로세서(120)는, 사용자 입력에 기반하여, 메시지(1410 또는 1460)에 포함된 정보를 다른 전자 장치의 사용자에게 공유할 수도 있다.
개인정보 DB(240 또는 340)에 저장되는, 챗봇과의 대화에 관련된 정보(예: 주문 정보 등)에 관한 상세한 설명은, 표 2에서 후술된다.
session ID: 12752 | ||
session ID: 78954 | intent ID | ID 256785 |
@prod | 포테이토 피자 | |
@size | large | |
@num | 2 | |
@date | 8월 12일 | |
intent ID | ID 256785 | |
@prod | 수퍼 슈프림피자 | |
@size | family | |
@num | 1 | |
@date | 8월 27일 | |
intent ID | ID 337754 | |
@prod | 버팔로윙 | |
@num | 1 | |
@date | 8월 27일 |
표 2는 다양한 실시 예들에 따라 챗봇의 기능과 관련된 정보를 저장하는 개인 정보 DB의 예를 나타낸다. 표 2의 개인 정보 DB는, 전자 장치(101)의 메모리(130)(예: 개인 정보 DB(340)), 서버(108)의 메모리(예: 개인 정보 DB(240)), 또는 챗봇 서버(201)에 포함되거나 챗봇 서버(201)과 연결된 DB 중 적어도 하나에 저장될 수 있다.
표 2를 참조하면, 개인 정보 DB(240 또는 340)는, 예를 들면, 전자 장치(101)의 사용자를 위해 저장된 정보를 나타낼 수 있다.
개인 정보 DB(240 또는 340)는, 세션(session) ID마다 정보를 저장할 수 있다. 세션 ID는, 챗봇마다 부여될 수 있다. 세션 ID는, 챗봇(예: 701)을 다른 챗봇(예: 1001)으로부터 구별하기 위해 이용될 수 있다. 예를 들면, 세션 ID 78954는, OO 피자에 관한 챗봇(예: 701)을 나타내는 식별 정보일 수 있다. 예를 들면, 세션 ID 12752는, 챗봇(예: 701)과는 다른 챗봇(예: 챗봇(1001) 또는 쇼핑몰 챗봇 등)을 나타내는 식별 정보일 수 있다. 복수의 챗봇들 각각은, 세션 ID를 이용하여, 복수의 챗봇들 각각이 저장한 정보 또는 복수의 챗봇들 각각이 이용할 수 있는 정보를 식별할 수 있다. 복수의 챗봇들 각각이 저장하는 정보는, 파라미터 또는 정보의 구조가 서로 다를 수 있다.
개인 정보 DB(240 또는 340)는, 각각의 세션 ID 내에서, 의도(intent)에 따라 정보를 저장할 수 있다. 예를 들면, 챗봇(예: 701)과 관련된 세션(즉, 세션 ID 78954)에서, 의도 ID 256785는, 피자 주문과 관련된 의도를 나타낼 수 있다. 의도 ID 337754는, 사이드 메뉴 주문과 관련된 의도를 나타낼 수 있다. 예를 들면, 챗봇은, "포테이토 피자 라지 사이즈 두 판 주문해줘"라는 사용자 입력(예: 발화 또는 텍스트 입력)으로부터, 사용자의 의도가 피자 주문과 관련된 의도(즉, 의도 ID 256785)임을 식별할 수 있다. 챗봇은, 상기 사용자 입력으로부터, 상기 의도(즉, 의도 ID 256785)에 관한 기능을 수행하기 위한 파라미터(예: 상품명, 사이즈, 수량, 날짜)를 식별할 수 있다. 예를 들면, 챗봇은, 챗봇 서버(201)에 저장되거나 서버(108)에 저장된 챗봇을 위한 NLU 모듈을 이용하여, 의도 및 파라미터를 식별할 수 있다. 챗봇(또는 챗봇 서버(201))은, 사용자 입력으로부터 날짜 파라미터를 식별할 수 없는 경우, 날짜 파라미터를 현재 날짜로 식별할 수 있다. 일 실시 예에 따르면, 챗봇이 식별할 수 있는 의도는, 피자 주문과 관련된 의도나 사이드 메뉴 주문과 관련된 의도뿐만 아니라, 주문 확인과 관련된 의도, 콜센터와 관련된 의도 등을 포함할 수 있다.
도 15는 다양한 실시 예들에 따른 전자 장치에서, 챗봇에게 제공 가능한 컨텐트를 출력하기 위한 동작의 예를 도시한다. 도 15의 동작은, 전자 장치(101) 또는 서버(108) 중 적어도 하나에 의해 수행될 수 있다. 도 16은 다양한 실시 예들에 따라 챗봇에게 제공 가능한 컨텐트를 출력하는 GUI(예: 챗봇과의 대화방)의 예를 도시한다. 도 17은 다양한 실시 예들에 따라 챗봇에게 제공 가능한 컨텐트를 출력하는 GUI(예: 챗봇과의 대화방)의 다른 예를 도시한다.
도 15을 참조하면, 동작 1501에서, 프로세서(120)는, 챗봇과의 대화를 출력할 수 있다. 동작 1501은, 도 6의 동작 601에 상응할 수 있다. 예를 들어, 도 16 및 도 17을 참조하면, 프로세서(120)는, 대화(chat) 어플리케이션(330)의 화면(1600, 1700)(예: 챗봇(1610, 1710)과의 대화방)을 통해, 챗봇(1610, 1710)과의 대화를 출력할 수 있다.
동작 1503에서, 프로세서(120)는, 챗봇과의 대화에 기반하여 챗봇에게 제공 가능한 컨텐트를 출력할 수 있다. 챗봇에게 제공 가능한 컨텐트란, 사용자의 의도(intent)에 대응하는 챗봇의 기능(예: 주문)을 수행하기 위한 컨텐트일 수 있다.
예를 들면, 챗봇 서버(201)(또는 서버(108))은, 챗봇을 위한 NLU 모듈 또는 키워드에 기반한 알고리즘을 이용하여, 전자 장치(101)의 대화 세션을 통해 수신되는 사용자 입력의 의도(intent)를 식별할 수 있다. 예를 들면, 챗봇 서버(201)(또는 서버(108))은, 도 16의 사용자 입력(1601)으로부터 주문 의도를 식별할 수 있다. 챗봇 서버(201)(또는 서버(108))은, 도 17의 사용자 입력(1701)으로부터 피자 주문의 의도를 식별할 수 있다.
챗봇 서버(201), 서버(108), 또는 프로세서(120) 중 적어도 하나는, 챗봇 서버(201)와 연결된 DB, 개인 정보 DB(240), 또는 개인 정보 DB(340) 중 적어도 하나로부터, 식별된 의도에 대응하는 정보를 검색(retrieve)할 수 있다. 예를 들면, 챗봇 서버(201), 서버(108), 또는 프로세서(120) 중 적어도 하나는, 표 2의 개인 정보 DB(240 또는 340)로부터, 챗봇과 관련된 세션 ID 및 피자 주문의 의도 ID에 기반하여, 챗봇에게 제공 가능한 컨텐트를 식별할 수 있다. 프로세서(120)는, 사용자의 의도에 대응하는 챗봇의 기능을 수행하기 위한, 챗봇에게 제공 가능한 컨텐트에 관한 정보를 출력할 수 있다.
예를 들어, 도 16을 참조하면, 프로세서(120)는, 사용자 입력(1601)의 주문 의도에 기반하여, 챗봇(1610)에게 제공 가능한 컨텐트에 관한 정보(1602)를 출력할 수 있다. 정보(1602)에서, 챗봇(1610)에게 제공 가능한 컨텐트는, 예를 들면, 표 2의 개인 정보 DB(240 또는 340)로부터, 피자 주문의 의도(즉, 의도 ID 256785)에 기반하여 결정될 수 있다.
다른 예를 들어, 도 17을 참조하면, 프로세서(120)는, 사용자 입력(1701)의 피자 주문 의도에 기반하여, 챗봇(1710)에게 제공 가능한 컨텐트에 관한 정보(1731, 1732)를 열람 가능한 알림창(1702)을 출력할 수 있다. 프로세서(120)는, 알림창(1702)에 대한 사용자 입력(1703)(예: 탭, 드래그, 스와이프 업 등)을 수신하는 것에 기반하여, 화면(1730)(예: 챗봇(1710)과의 대화방)에 중첩된(superimposed on), 컨텐트에 관한 정보(1731, 1732)가 포함된 카드 형태의 알림창(1733)을 출력할 수 있다. 일 실시 예에 따르면, 챗봇(1710)에게 제공 가능한 컨텐트가 다수인 경우, 카드 형태의 알림창(1733)은, 좌우 드래그(또는 스와이프) 입력에 기반하여, 다른 컨텐트를 표시할 수 있다.
예를 들면, 도 16에 도시된 바와 같이, 챗봇(1610)에게 제공 가능한 컨텐트에 관한 정보(1602)는, 챗봇(1610)의 메시지로써 출력될 수 있다. 다른 예를 들면, 도 17에 도시된 바와 같이, 컨텐트에 관한 정보(1731, 1732)를 열람 가능한 알림창(1702, 1733)은, 개인 정보 봇의 메시지로써 출력될 수 있다.
동작 1505에서, 프로세서(120)는, 챗봇의 기능을 수행하기 위한 컨텐트(예: 주문 정보)를 결정하기 위한 사용자 입력을 수신하는지 여부를 식별할 수 있다.
프로세서(120)는, 챗봇의 기능을 수행하기 위한 컨텐트(예: 주문 정보)를 결정하기 위한 사용자 입력을 수신하는 것에 기반하여, 동작 1507에서, 결정된 컨텐트에 관한 정보를 챗봇(또는 챗봇 서버(201))에게 송신할 수 있다.
예를 들어, 도 16을 참조하면, 프로세서(120)는, 챗봇(1610)의 기능(예: 피자 주문)의 기능을 수행하기 위한 컨텐트를 결정하기 위한 사용자 입력(1603)(예: "포테이토 피자 다시 주문"이라는 발화 또는 텍스트 입력)을 수신할 수 있다. 다른 예를 들어, 도 17을 참조하면, 프로세서(120)는, 챗봇(1710)의 기능(예: 피자 주문)을 수행하기 위한 컨텐트를 결정하기 위한 사용자 입력(1734)(예: 탭, 드래그, 스와이프 업 등)을 수신할 수 있다. 프로세서(120)는, 사용자 입력(1734)를 수신하는 것에 기반하여, 화면(1760)을 표시할 수 있다.
프로세서(120)는, 사용자 입력(예: 1603, 1734 등)에 기반하여 결정된 컨텐트에 관한 정보를, 서버(108)를 통해 챗봇(1610, 1710)(또는 챗봇 서버(201))에게 송신할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 화면(1760)에서, 개인 정보 봇(1769)을 이용하여 컨텐트(1762)에 관한 정보를, 챗봇(1710)에게 송신할 수 있다.
일부 실시 예들에서, 챗봇(1610, 1710)에게 제공하기 위한 주문 정보에 관한 메시지(예: 1602, 1704, 1733, 1761, 또는 1762 등)는, 다른 메시지와는 다른 색으로 강조될 수 있다. 일부 실시 예들에서, 개인 정보에 관한 메시지(예: 1604)는, 주문 정보에 관한 메시지(예: 1602)와 다른 색으로 강조될 수 있다.
상술한 바와 같은 다양한 실시 예들에 따른 시스템(예: 네트워크 환경(200))은, 사용자 인터페이스와 통신 회로(예: 통신 모듈(190))를 포함하는 제1 전자 장치(예: 전자 장치(101)), 상기 제1 전자 장치의 일부이거나 또는 상기 제1 전자 장치와 원격적으로(remotely) 통신하는 적어도 하나의 프로세서(예: 프로세서(120) 또는 서버(108)의 프로세서), 및 상기 제1 전자 장치에 또는 상기 제1 전자 장치의 외부에 존재하는(reside) 적어도 하나의 메모리(예: 메모리(130) 또는 서버(108)의 메모리)를 포함할 수 있다. 상기 적어도 하나의 메모리는, 상기 프로세서에 작동적으로(operatively) 연결되는 동안, 실행되면, 상기 사용자 인터페이스를 통해, 문자 및/또는 음성 기반의 대화(chat)에 챗봇(chatbot)(예: 챗봇(701, 1001, 1401, 1402 등))을 호출하는 것과 관련된 제1 사용자 요청을 수신하고, 상기 챗봇을 상기 대화에 참여(join)하도록 야기(cause)하고, 상기 사용자 인터페이스를 통해, 상기 챗봇에 대한 태스크를 위한 제2 사용자 요청을 수신하고, 상기 제2 사용자 요청은 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부(예: 개인 정보 또는 주문 정보)를 포함하지 않고, 상기 정보의 적어도 일부는, 상기 적어도 하나의 메모리에 저장되고, 상기 사용자 인터페이스를 통해, 상기 정보의 적어도 일부를 공유하기 위한 사용자 승인(user authorization)을 수신하고, 상기 정보의 적어도 일부를 상기 챗봇에게 제공하도록 상기 적어도 하나의 프로세서를 야기하는(cause) 명령어들을 저장할 수 있다.
다양한 실시 예들에서, 상기 사용자 인터페이스는, 터치스크린 디스플레이(예: 표시 장치(160) 또는 디스플레이(360)), 마이크(예: 입력 장치(150)), 또는 스피커(예: 음향 출력 장치(155)) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 메모리는, 사용자 계정(user account)을 저장하도록 설정되고, 상기 정보의 적어도 일부는, 상기 사용자 계정과 관련될 수 있다.
다양한 실시 예들에서, 상기 제1 전자 장치(예: 전자 장치(101))는, 상기 적어도 하나의 프로세서의 제1 프로세서(예: 프로세서(120))를 포함하고, 상기 시스템은, 상기 적어도 하나의 프로세서의 제2 프로세서(예: 서버(108)의 프로세서)를 포함하는 서버(예: 서버(108))를 더 포함할 수 있다.
예를 들면, 상기 명령어들은, 상기 사용자 인터페이스를 통해 상기 제1 사용자 요청을 수신하고, 상기 제1 사용자 요청을 수신한 뒤, 상기 제1 사용자 요청과 관련된 데이터를 상기 서버에게 송신하고, 상기 사용자 인터페이스를 통해, 상기 제2 사용자 요청을 수신하고, 상기 제2 사용자 요청을 수신한 뒤, 상기 제2 사용자 요청과 관련된 데이터를 상기 서버에게 송신하도록 상기 제1 프로세서(예: 프로세서(120))를 야기할 수 있다.
예를 들면, 상기 명령어들은, 상기 사용자 인터페이스를 통해 상기 사용자 승인(user authorization)을 수신하고, 상기 챗봇에게 제공되기 위한 상기 정보의 적어도 일부를 야기하도록 상기 제1 프로세서(예: 프로세서(120))를 야기할 수 있다.
예를 들면, 상기 명령어들은, 상기 제1 전자 장치(예: 전자 장치(101))로부터 상기 제1 사용자 요청과 관련된 데이터를 수신하고, 상기 제1 전자 장치로부터, 상기 제2 사용자 요청과 관련된 데이터를 수신하도록 상기 제2 프로세서(예: 서버(108)의 프로세서)를 야기할 수 있다.
예를 들면, 상기 명령어들은, 상기 제1 전자 장치(예: 전자 장치(101))로부터 상기 사용자 승인(user authorization)을 수신하고, 상기 정보의 적어도 일부를 상기 챗봇에게 제공하도록 상기 제2 프로세서(예: 서버(108)의 프로세서)를 야기할 수 있다.
다양한 실시 예들에서, 상기 명령어들은, 상기 사용자 승인(user authorization) 및/또는 상기 정보의 적어도 일부를 처리하도록 다른 챗봇(예: 개인 정보 봇)에게 제공하도록 상기 적어도 하나의 프로세서(예: 프로세서(120) 또는 서버(108)의 프로세서)를 야기할 수 있다.
예를 들면, 상기 명령어들은, 상기 정보의 적어도 일부(예: 개인 정보 또는 주문 정보)에 관한 제3 사용자 요청을 상기 다른 챗봇(예: 개인 정보 봇)에게 제공하고, 상기 제3 사용자 요청을 상기 다른 챗봇에게 제공하는 동안. 상기 제3 사용자 요청을 상기 챗봇에게 제공하는 것을 제한하고, 상기 사용자 승인을 수신하는 것에 기반하여, 상기 정보의 적어도 일부를 상기 챗봇 제공하도록 상기 적어도 하나의 프로세서(예: 프로세서(120) 또는 서버(108)의 프로세서)를 야기할 수 있다.
상술한 바와 같은 다양한 실시 예들에 따른 전자 장치(예: 전자 장치(101))는, 통신 모듈(예: 통신 모듈(190)), 입력 장치(예: 입력 장치(150)), 출력 장치(예: 출력 장치(350), 디스플레이(360), 음향 출력 장치(155), 또는 표시 장치(160)), 및 대화 어플리케이션에 관한 사용자 인터페이스를 통해 챗봇(예: 챗봇(701, 1001, 1401, 1402 등))과 대화(chat)하고, 상기 대화는 상기 입력 장치를 통해 수신된 메시지를 상기 통신 모듈을 통해 상기 챗봇에게 송신하는 동작 또는 상기 챗봇으로부터 상기 통신 모듈을 통해 수신된 메시지를 상기 출력 장치를 통해 출력하는 동작을 포함하고, 상기 대화(chat)하는 동안, 상기 대화(chat)에 개인 정보 봇을 참여시키기 위한 적어도 하나의 명령어를 실행하기 위한 이벤트를 검출하고, 상기 사용자 인터페이스를 이용하여, 상기 챗봇에게 제공하기 위한 컨텐트(예: 개인 정보 또는 주문 정보)에 관한 상기 개인 정보 봇과의 대화를 출력하고, 상기 개인 정보 봇과 대화(chat)하는 동안 상기 개인 정보 봇과의 대화에 관한 정보를 상기 챗봇에게 송신하는 것을 제한하고, 상기 챗봇에게 상기 컨텐트에 관한 정보를 제공하기 위한 사용자 입력을 수신하는 것에 기반하여, 상기 컨텐트에 관한 정보를 상기 챗봇에게 송신하도록 설정된 적어도 하나의 프로세서(예: 프로세서(120))를 포함할 수 있다.
다양한 실시 예들에서, 상기 챗봇과의 대화는, 상기 챗봇과 연결되고 상기 챗봇의 기능을 수행하기 위한 제1 자연어 이해 모듈(예: 챗봇을 위한 NLU 모듈(NLU for chatbot))을 이용하여 수행되고, 상기 개인 정보 봇과의 대화는, 상기 개인 정보 봇의 기능을 수행하기 위한, 상기 제1 자연어 이해 모듈과 다른 제2 자연어 이해 모듈(예: 개인 정보를 위한 NLU 모듈(예: NLU for PI))을 이용하여 수행되고, 상기 적어도 하나의 프로세서는, 상기 제2 자연어 이해 모듈을 이용하여, 상기 챗봇과의 대화로부터, 상기 대화에 개인 정보 봇을 참여시키기 위한 적어도 하나의 명령어를 실행하기 위한 이벤트를 검출하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는, 상기 챗봇과의 대화 또는 상기 개인 정보 봇과의 대화 중 적어도 하나에 포함된 메시지 중에서, 제1 메시지가 나타내는 정보 및 제2 메시지가 나타내는 정보에 기반하여, 제1 메시지 및 제2 메시지를 다르게 출력하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는, 상기 대화에 개인 정보 봇을 참여시키기 위한 적어도 하나의 명령어를 실행하기 위한 이벤트를 검출하는 것에 기반하여, 상기 전자 장치와 연결된 메모리(예: 메모리(130), 서버(108)의 메모리, 개인 정보 DB(240), 또는 개인 정보 DB(340))에 저장된 개인 정보 중, 상기 챗봇과의 대화 또는 상기 개인 정보 봇과의 대화 중 적어도 하나와 관련된 개인 정보에 관한 메시지를 출력하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는, 상기 챗봇과의 대화에 포함된 적어도 일부 정보를, 상기 전자 장치와 연결된 메모리(예: 메모리(130), 서버(108)의 메모리, 개인 정보 DB(240), 또는 개인 정보 DB(340))에 저장하기 위한 상기 사용자 인터페이스를 제공하도록 설정될 수 있다.
예를 들면, 상기 적어도 하나의 프로세서는, 상기 챗봇과의 다른 대화에서, 상기 사용자 인터페이스를 통해 저장된 상기 적어도 일부 정보를 출력하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는, 상기 챗봇과의 대화로부터 상기 개인 정보 봇을 참여시키기 위한 의도를 식별하는 것, 상기 챗봇과의 대화에서 지정된 단어(예: "빅스비")가 포함된 사용자 입력을 수신하는 것, 또는 지정된 버튼 또는 아이콘에 대한 입력을 수신하는 것 중 적어도 하나에 기반하여, 상기 대화에 개인 정보 봇을 참여시키기 위한 적어도 하나의 명령어를 실행하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는, 상기 챗봇과의 대화에 비해 강조된 상기 개인 정보 봇과의 대화를 출력하거나, 또는 상기 챗봇과의 대화가 출력된 사용자 인터페이스에 중첩된(superimposed on) 레이어를 통해 상기 개인 정보 봇과의 대화를 출력하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는, 상기 개인 정보 봇과 대화하는 동안, 상기 개인 정보 봇과 대화하기 위한 제1 사용자 입력에 관한 정보를 상기 개인 정보 봇에게 송신하고, 상기 제1 사용자 입력에 관한 정보를 상기 챗봇에게 송신하는 것을 제한하고, 상기 개인 정보 봇과의 대화를 종료하는 것에 기반하여, 사용자 인터페이스를 통해 입력된 제2 사용자 입력에 관한 정보를 상기 챗봇에게 송신하도록 설정될 수 있다.
상술한 바와 같은 다양한 실시 예들에 따른 전자 장치(예: 서버(108))는, 메모리(예: 서버(108)의 메모리), 및 제1 전자 장치(예: 전자 장치(101))로부터 수신된 제1 메시지를 챗봇(예: 챗봇(701, 1001, 1401, 1402 등))에게 송신하고, 상기 수신된 제1 메시지에 대한 응답 메시지를 상기 제1 전자 장치에게 송신하고, 상기 응답 메시지는, 상기 챗봇의 기능을 수행하기 위한 제1 자연어 이해 모듈(예: 예: 챗봇을 위한 NLU 모듈(NLU for chatbot))을 이용하여 획득되고, 상기 제1 메시지 또는 상기 응답 메시지 중 적어도 하나에 기반하여, 상기 제1 전자 장치의 사용자의 개인 정보에 관한 대화를 수행하기 위한 이벤트를 식별하고, 상기 식별에 기반하여, 상기 사용자의 개인 정보에 관한 대화를 수행하기 위한 제2 자연어 이해 모듈(예: 개인 정보를 위한 NLU 모듈(예: NLU for PI))을 이용하여, 상기 사용자와 자연어 기반의 대화를 수행하고, 상기 제2 자연어 이해 모듈을 이용하여 대화를 수행하는 동안 상기 제1 전자 장치(예: 전자 장치(101))로부터 수신된 제2 메시지를 상기 챗봇에게 송신하는 것을 제한하고, 상기 제1 전자 장치(예: 전자 장치(101))로부터, 상기 제2 메시지의 적어도 일부를 상기 챗봇에게 제공하기 위한 신호를 수신하는 것에 기반하여, 상기 제2 메시지의 적어도 일부에 관한 정보를 상기 챗봇에게 송신하도록 설정된 적어도 하나의 프로세서(예: 서버(108)의 프로세서)를 포함할 수 있다.
한편, 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (20)
- 시스템에 있어서,
사용자 인터페이스 및 통신 회로를 포함하는 제1 전자 장치;
상기 제1 전자 장치의 일부이거나 또는 상기 제1 전자 장치와 원격적으로(remotely) 통신하는 적어도 하나의 프로세서; 및
상기 제1 전자 장치의 내부에 또는 상기 제1 전자 장치의 외부에 존재하는(reside) 적어도 하나의 메모리를 포함하고,
상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 작동적으로(operatively) 연결되는 동안, 실행 시, 상기 적어도 하나의 프로세서가,
상기 사용자 인터페이스를 통해, 문자 및/또는 음성 기반의 대화(chat)에 챗봇(chatbot)을 호출하는 것과 관련된 제1 사용자 요청을 수신하고,
상기 챗봇이 상기 대화에 참여(join)하도록 야기(cause)하고,
상기 사용자 인터페이스를 통해, 상기 챗봇과 관련된 태스크를 위한 제2 사용자 요청을 수신하고, 상기 제2 사용자 요청은 상기 태스크를 수행하기 위해 요구되는 정보의 적어도 일부를 포함하지 않고, 상기 정보의 적어도 일부는 상기 적어도 하나의 메모리에 저장되어 있고,
상기 챗봇과의 대화가 진행되는 동안, 지정된 이벤트의 검출에 기반하여 개인정보 봇이 상기 대화에 참여하도록 야기하고,
상기 개인정보 봇과 대화하기 위한 사용자 입력을 수신하고,
상기 사용자 입력에 관련된 정보를 상기 개인정보 봇으로 전송하고,
상기 사용자 입력에 관련된 정보가 상기 챗봇으로 전송되는 것을 제한하고,
상기 사용자 인터페이스를 통해, 상기 사용자 입력에 관련된 상기 개인정보 봇과의 대화를 출력하고,
상기 개인정보 봇과의 대화가 종료되는 것에 기반하여, 상기 사용자 인터페이스를 통해 이루어지는 상기 정보의 적어도 일부를 상기 챗봇으로 전송하도록 하는 명령어들을 저장하는 시스템.
- 청구항 1에 있어서,
상기 사용자 인터페이스는,
터치스크린 디스플레이, 마이크, 또는 스피커 중 적어도 하나를 포함하는 시스템.
- 청구항 1에 있어서,
상기 적어도 하나의 메모리는, 사용자 계정(user account)을 저장하도록 설정되고,
상기 정보의 적어도 일부는, 상기 사용자 계정과 관련된 시스템.
- 청구항 1에 있어서,
상기 제1 전자 장치는,
상기 적어도 하나의 프로세서의 제1 프로세서를 포함하고,
상기 시스템은,
상기 적어도 하나의 프로세서의 제2 프로세서를 포함하는 서버를 더 포함하는 시스템.
- 청구항 4에 있어서,
상기 명령어들은,
상기 사용자 인터페이스를 통해, 상기 제1 사용자 요청을 수신하고,
상기 제1 사용자 요청을 수신한 이후, 상기 제1 사용자 요청과 관련된 데이터를 상기 서버로 전송하고,
상기 사용자 인터페이스를 통해, 상기 제2 사용자 요청을 수신하고,
상기 제2 사용자 요청을 수신한 이후, 상기 제2 사용자 요청과 관련된 데이터를 상기 서버로 전송하도록 상기 제1 프로세서를 야기하는(cause) 시스템.
- 청구항 4에 있어서,
상기 명령어들은,
상기 사용자 인터페이스를 통해, 상기 정보의 적어도 일부를 상기 챗봇으로 전송하기 위한 사용자 승인(user authorization)을 수신하도록 상기 제1 프로세서를 야기하는(cause) 시스템.
- 청구항 4에 있어서,
상기 명령어들은,
상기 제1 전자 장치로부터 상기 제1 사용자 요청과 관련된 데이터를 수신하고,
상기 제1 전자 장치로부터 상기 제2 사용자 요청과 관련된 데이터를 수신하도록 상기 제2 프로세서를 야기하는(cause) 시스템.
- 청구항 4에 있어서,
상기 명령어들은,
상기 제1 전자 장치로부터 상기 정보의 적어도 일부를 상기 챗봇으로 전송하기 위한 사용자 승인(user authorization)을 수신하고,
상기 정보의 적어도 일부를 상기 챗봇으로 전송하도록 상기 제2 프로세서를 야기하는(cause) 시스템. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180015069A KR102619621B1 (ko) | 2018-02-07 | 2018-02-07 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
PCT/KR2018/013543 WO2019156314A1 (ko) | 2018-02-07 | 2018-11-08 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
US16/965,751 US11646022B2 (en) | 2018-02-07 | 2018-11-08 | Electronic device for chatting with chatbot and operation method thereof |
KR1020230191563A KR20240007888A (ko) | 2018-02-07 | 2023-12-26 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180015069A KR102619621B1 (ko) | 2018-02-07 | 2018-02-07 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230191563A Division KR20240007888A (ko) | 2018-02-07 | 2023-12-26 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190100512A KR20190100512A (ko) | 2019-08-29 |
KR102619621B1 true KR102619621B1 (ko) | 2023-12-29 |
Family
ID=67549032
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180015069A KR102619621B1 (ko) | 2018-02-07 | 2018-02-07 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
KR1020230191563A KR20240007888A (ko) | 2018-02-07 | 2023-12-26 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230191563A KR20240007888A (ko) | 2018-02-07 | 2023-12-26 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11646022B2 (ko) |
KR (2) | KR102619621B1 (ko) |
WO (1) | WO2019156314A1 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731867B1 (ko) * | 2016-08-16 | 2017-05-04 | 주식회사 엔터플 | 챗봇 간에 사용자의 이벤트를 공유하는 방법 및 장치 |
KR102619621B1 (ko) * | 2018-02-07 | 2023-12-29 | 삼성전자주식회사 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
JP6818706B2 (ja) * | 2018-02-13 | 2021-01-20 | 日本電信電話株式会社 | 情報提供装置、情報提供方法、およびプログラム |
US20200364806A1 (en) * | 2019-05-15 | 2020-11-19 | Facebook, Inc. | Systems and methods for initiating conversations within an online dating service |
KR102173553B1 (ko) * | 2019-09-26 | 2020-11-03 | 주식회사 베니페 | 딥러닝 기술을 이용한 능동형 맞춤 운동시스템 |
US11119747B2 (en) * | 2019-11-21 | 2021-09-14 | Paypal, Inc. | System and method for application release orchestration and deployment |
KR20210066651A (ko) | 2019-11-28 | 2021-06-07 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
KR102307289B1 (ko) * | 2019-11-29 | 2021-09-30 | 주식회사 아토즈소프트 | 챗봇 기반의 낚시정보 제공 방법 및 그 장치 |
JP7396087B2 (ja) * | 2020-02-06 | 2023-12-12 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置およびプログラム |
KR102179768B1 (ko) * | 2020-04-27 | 2020-11-18 | 주식회사 한걸음컴퍼니 | 3차원 캐릭터에 기반하여 정보를 제공하는 전자 장치 및 방법 |
AU2021333763A1 (en) * | 2020-08-31 | 2023-03-09 | Genesys Cloud Services, Inc. | Systems and methods relating to post-purchase support of customers |
KR102518901B1 (ko) * | 2020-09-22 | 2023-04-07 | 에스케이플래닛 주식회사 | 블록 컴포넌트를 이용한 챗봇 서비스 제공 방법 및 장치 |
KR102555777B1 (ko) * | 2020-12-15 | 2023-07-13 | 주식회사 카카오엔터프라이즈 | 대화형 챗봇 서비스를 제공하는 단말기, 프로그램 및 그것의 제어 방법 |
US20220292578A1 (en) * | 2021-03-11 | 2022-09-15 | International Business Machines Corporation | One-touch intelligent online shopping assistant system |
US11881216B2 (en) | 2021-06-08 | 2024-01-23 | Bank Of America Corporation | System and method for conversation agent selection based on processing contextual data from speech |
US20230029014A1 (en) * | 2021-07-26 | 2023-01-26 | Kakao Corp. | Method and apparatus for providing counseling service |
US11734089B2 (en) * | 2021-10-11 | 2023-08-22 | Fmr Llc | Dynamic option reselection in virtual assistant communication sessions |
KR20230099246A (ko) * | 2021-12-27 | 2023-07-04 | 삼성전자주식회사 | 챗봇 참여 채팅 서비스 제공 방법 및 장치 |
US11962545B2 (en) | 2021-12-27 | 2024-04-16 | Samsung Electronics Co., Ltd. | Method and device for providing chatbot participating chat service |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731867B1 (ko) | 2016-08-16 | 2017-05-04 | 주식회사 엔터플 | 챗봇 간에 사용자의 이벤트를 공유하는 방법 및 장치 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8935006B2 (en) * | 2005-09-30 | 2015-01-13 | Irobot Corporation | Companion robot for personal interaction |
CA2892400C (en) * | 2012-11-30 | 2022-03-01 | Edatanetworks Inc. | Customer voice order triggered mutual affinity merchant donation |
WO2014093339A1 (en) | 2012-12-11 | 2014-06-19 | Nuance Communications, Inc. | System and methods for virtual agent recommendation for multiple persons |
KR20140144104A (ko) | 2013-06-10 | 2014-12-18 | 삼성전자주식회사 | 전자기기 및 이의 서비스 제공 방법 |
US9804820B2 (en) * | 2013-12-16 | 2017-10-31 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
EP3195145A4 (en) * | 2014-09-16 | 2018-01-24 | VoiceBox Technologies Corporation | Voice commerce |
US10116596B2 (en) * | 2014-09-29 | 2018-10-30 | International Business Machines Corporation | Personalizing data system components and data sources as chatbots in a group chat session |
US10460227B2 (en) * | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
KR20160139771A (ko) * | 2015-05-28 | 2016-12-07 | 삼성전자주식회사 | 전자 장치, 정보 제공 시스템 및 그 정보 제공 방법 |
KR20170027061A (ko) * | 2015-09-01 | 2017-03-09 | 삼성에스디에스 주식회사 | 인스턴트 메신저 상의 가상 도우미 애플리케이션 이용 방법 및 장치 |
JP2017151517A (ja) * | 2016-02-22 | 2017-08-31 | 富士ゼロックス株式会社 | ロボット制御システム |
JP6607111B2 (ja) * | 2016-03-24 | 2019-11-20 | 大日本印刷株式会社 | アバターロボット接続管理システム |
KR20180003324A (ko) * | 2016-06-30 | 2018-01-09 | 주식회사 엔터플 | 챗봇을 이용한 콘텐트 제공 방법 및 장치 |
US10650593B2 (en) * | 2016-07-12 | 2020-05-12 | Tyco Fire & Security Gmbh | Holographic technology implemented security solution |
KR101852540B1 (ko) * | 2016-07-22 | 2018-06-07 | 주식회사 텍스트팩토리 | 문자를 이용한 비서 서비스에서의 개인 정보의 선택적 암호화 방법 |
US10192551B2 (en) * | 2016-08-30 | 2019-01-29 | Google Llc | Using textual input and user state information to generate reply content to present in response to the textual input |
AU2017363273A1 (en) * | 2016-11-23 | 2019-06-06 | Alarm.Com Incorporated | Detection of authorized user presence and handling of unauthenticated monitoring system commands |
US10127227B1 (en) * | 2017-05-15 | 2018-11-13 | Google Llc | Providing access to user-controlled resources by automated assistants |
KR102619621B1 (ko) * | 2018-02-07 | 2023-12-29 | 삼성전자주식회사 | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 |
US10997963B1 (en) * | 2018-05-17 | 2021-05-04 | Amazon Technologies, Inc. | Voice based interaction based on context-based directives |
US11113691B2 (en) * | 2018-09-25 | 2021-09-07 | American Express Travel Related Services Company, Inc. | Voice interface transaction system using audio signals |
US11205422B2 (en) * | 2018-10-02 | 2021-12-21 | International Business Machines Corporation | Methods and systems for managing chatbots with data access |
US11393463B2 (en) * | 2019-04-19 | 2022-07-19 | Soundhound, Inc. | System and method for controlling an application using natural language communication |
US10867608B1 (en) * | 2019-05-31 | 2020-12-15 | Apple Inc. | Multi-user configuration |
US20210119802A1 (en) * | 2019-10-21 | 2021-04-22 | Vmware, Inc. | Two-way authentication for voice-activated devices |
US11657591B2 (en) * | 2021-01-15 | 2023-05-23 | Argo AI, LLC | Autonomous vehicle system for intelligent on-board selection of data for building a remote machine learning model |
-
2018
- 2018-02-07 KR KR1020180015069A patent/KR102619621B1/ko active IP Right Grant
- 2018-11-08 US US16/965,751 patent/US11646022B2/en active Active
- 2018-11-08 WO PCT/KR2018/013543 patent/WO2019156314A1/ko active Application Filing
-
2023
- 2023-12-26 KR KR1020230191563A patent/KR20240007888A/ko active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731867B1 (ko) | 2016-08-16 | 2017-05-04 | 주식회사 엔터플 | 챗봇 간에 사용자의 이벤트를 공유하는 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
US11646022B2 (en) | 2023-05-09 |
WO2019156314A1 (ko) | 2019-08-15 |
US20210035576A1 (en) | 2021-02-04 |
KR20240007888A (ko) | 2024-01-17 |
KR20190100512A (ko) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102619621B1 (ko) | 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법 | |
KR102426704B1 (ko) | 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치 | |
US11443744B2 (en) | Electronic device and voice recognition control method of electronic device | |
US11849256B2 (en) | Systems and methods for dynamically concealing sensitive information | |
KR102574593B1 (ko) | 챗봇을 이용한 서비스 제공 방법 및 그 장치 | |
US20180310144A1 (en) | Automated messaging | |
AU2014281049B9 (en) | Environmentally aware dialog policies and response generation | |
CN111819624A (zh) | 由数字助理在组设备环境中对命令的标识和处理 | |
KR102472010B1 (ko) | 전자 장치 및 전자 장치의 기능 실행 방법 | |
KR102365649B1 (ko) | 화면 제어 방법 및 이를 지원하는 전자 장치 | |
KR102347208B1 (ko) | 외부 장치를 이용한 태스크 수행 방법 및 이를 지원하는 전자 장치, 서버 및 저장 매체 | |
KR102440651B1 (ko) | 자연어 표현 제공 방법 및 이를 지원하는 전자 장치 | |
KR102508677B1 (ko) | 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법 | |
KR102447381B1 (ko) | 통화 중 인공지능 서비스를 제공하기 위한 방법 및 그 전자 장치 | |
US11972761B2 (en) | Electronic device for sharing user-specific voice command and method for controlling same | |
US11151995B2 (en) | Electronic device for mapping an invoke word to a sequence of inputs for generating a personalized command | |
US11915700B2 (en) | Device for processing user voice input | |
KR20180121760A (ko) | 사용자 발화를 처리하는 전자 | |
KR102419374B1 (ko) | 사용자 발화를 처리하는 전자 장치 및 그 전자 장치의 제어 방법 | |
KR102426411B1 (ko) | 사용자 발화을 처리하는 전자 장치 및 시스템 | |
KR20190011031A (ko) | 자연어 표현 생성 방법 및 전자 장치 | |
KR102543656B1 (ko) | 화면 제어 방법 및 이를 지원하는 전자 장치 | |
US11848791B2 (en) | Detection and presentation of video conference attendee different from logged-in attendees | |
US11722572B2 (en) | Communication platform shifting for voice-enabled device | |
KR102426123B1 (ko) | 사용자 발화를 처리하는 전자 장치 및 서버 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |