KR-20260061784-A - METHOD AND SYSTEM FOR PROVIDING CHATBOT SERVICE
Abstract
챗봇 서비스 제공 방법이 제공된다. 몇몇 실시예에 따른 컴퓨팅 시스템에 의하여 수행되는 챗봇 서비스 제공 방법은, 사용자 단말로부터 수신한 질의 메시지에 대한 벡터를 획득하는 단계, 획득된 벡터와 임계값 이상의 유사도를 가지는 복수의 벡터를 포함하는 검색 목록을 제1 데이터베이스로부터 추출하는 단계, 질의 메시지와 관련된 프롬프트 및 검색 목록을 언어 모델로 제공하여, 질의 메시지의 답변과 관련된 식별자를 언어 모델로부터 수신하는 단계, 수신된 식별자에 기초하여 답변 메시지를 획득하는 단계 및 획득된 답변 메시지를 사용자 단말로 전송하는 단계를 포함할 수 있다.
Inventors
- 이윤희
- 석지은
- 홍주선
- 김성은
Assignees
- 삼성에스디에스 주식회사
Dates
- Publication Date
- 20260506
- Application Date
- 20241028
Claims (15)
- 컴퓨팅 시스템에 의하여 수행되는 챗봇 서비스 제공 방법에 있어서, 사용자 단말로부터 수신한 질의 메시지에 대한 벡터를 획득하는 단계; 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 복수의 벡터를 포함하는 검색 목록을 제1 데이터베이스로부터 추출하는 단계; 상기 질의 메시지와 관련된 프롬프트 및 상기 검색 목록을 언어 모델로 제공하여, 상기 질의 메시지의 답변과 관련된 식별자를 언어 모델로부터 수신하는 단계; 상기 수신된 식별자에 기초하여 답변 메시지를 획득하는 단계; 및 상기 획득된 답변 메시지를 상기 사용자 단말로 전송하는 단계를 포함하는, 챗봇 서비스 제공 방법.
- 제1항에 있어서, 상기 답변 메시지를 획득하는 단계는, 상기 수신된 식별자와 관련된 시나리오 내용을 제2 데이터베이스로부터 추출하는 단계; 및 상기 추출된 시나리오 내용에 기초하여 상기 답변 메시지를 생성하는 단계를 포함하는, 챗봇 서비스 제공 방법.
- 제2항에 있어서, 상기 제1 데이터베이스는, 복수의 시나리오 내용 및 복수의 시나리오명 중 적어도 하나와 관련된 복수의 벡터를 저장하고, 상기 제2 데이터베이스는 복수의 시나리오 식별자, 상기 복수의 시나리오명 및 상기 복수의 시나리오 내용을 저장하고, 상기 획득된 식별자는 특정 시나리오 식별자인 것인, 챗봇 서비스 제공 방법.
- 제1항에 있어서, 상기 프롬프트는, 상기 질의 메시지에 대한 답변을 상기 검색 목록 중에서 선택하는 것을 요구하는 텍스트를 포함하는, 챗봇 서비스 제공 방법.
- 제1항에 있어서, 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 벡터가 상기 제1 데이터베이스에서 검색되지 않은 경우, 폴백 메시지를 상기 사용자 단말로 전송하는 단계를 더 포함하는, 챗봇 서비스 제공 방법.
- 제1항에 있어서, 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 벡터가 상기 제1 데이터베이스에서 검색되지 않은 경우, 상기 질의 메시지에 대한 답변 생성을 상기 언어 모델로 요청하는 단계; 상기 질의 메시지에 대한 답변 메시지를 상기 언어 모델로부터 수신하는 단계; 및 상기 수신된 상기 답변 메시지를 상기 사용자 단말로 전송하는 단계를 더 포함하는, 챗봇 서비스 제공 방법.
- 제6항에 있어서, 상기 질의 메시지에 대한 답변 생성을 상기 언어 모델로 요청하는 단계는, 검색범위를 확장하는 것을 문의하는 문의 메시지를 상기 사용자 단말로 전송하는 단계; 및 상기 사용자 단말로부터 상기 문의 메시지에 대한 긍정 응답이 수신되는 경우에, 상기 질의 메시지에 대한 답변 생성을 상기 언어 모델로 요청하는 단계를 포함하는, 챗봇 서비스 제공 방법.
- 제6항에 있어서, 상기 언어 모델로부터 수신된 답변 메시지는 출처가 포함된, 챗봇 서비스 제공 방법.
- 제1항에 있어서, 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 하나의 벡터를 제1 데이터베이스로부터 추출하는 경우, 상기 하나의 벡터와 관련된 식별자를 식별하는 단계; 및 상기 식별자와 관련된 답변 메시지를 획득하고, 획득된 답변 메시지를 상기 사용자 단말로 전송하는 단계를 더 포함하는, 챗봇 서비스 제공 방법.
- 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 상기 컴퓨터 프로그램은, 사용자 단말로부터 수신한 질의 메시지에 대한 벡터를 획득하는 동작; 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 복수의 벡터를 포함하는 검색 목록을 제1 데이터베이스로부터 추출하는 동작; 상기 질의 메시지와 관련된 프롬프트 및 상기 검색 목록을 언어 모델로 제공하여, 상기 질의 메시지의 답변과 관련된 식별자를 언어 모델로부터 수신하는 동작; 상기 수신된 식별자에 기초하여 답변 메시지를 획득하는 동작; 및 상기 획득된 답변 메시지를 상기 사용자 단말로 전송하는 동작을 수행하기 위한 인스트럭션들을 포함하는, 컴퓨팅 시스템.
- 제10항에 있어서, 상기 답변 메시지를 획득하는 동작은, 상기 수신된 식별자와 관련된 시나리오 내용을 제2 데이터베이스로부터 추출하는 동작; 및 상기 추출된 시나리오 내용에 기초하여 상기 답변 메시지를 생성하는 동작을 포함하는, 컴퓨팅 시스템.
- 제10항에 있어서, 상기 컴퓨터 프로그램은, 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 벡터가 상기 제1 데이터베이스에서 검색되지 않은 경우, 상기 질의 메시지에 대한 답변 생성을 상기 언어 모델로 요청하는 동작; 상기 질의 메시지에 대한 답변 메시지를 상기 언어 모델로부터 수신하는 동작; 및 상기 수신된 상기 답변 메시지를 상기 사용자 단말로 전송하는 동작을 더 수행하기 위한 인스트럭션들을 포함하는, 컴퓨팅 시스템.
- 제12항에 있어서, 상기 질의 메시지에 대한 답변 생성을 상기 언어 모델로 요청하는 동작은, 검색범위를 확장하는 것을 문의하는 문의 메시지를 상기 사용자 단말로 전송하는 동작; 및 상기 사용자 단말로부터 상기 문의 메시지에 대한 긍정 응답이 수신되는 경우에, 상기 질의 메시지에 대한 답변 생성을 상기 언어 모델로 요청하는 동작을 포함하는, 컴퓨팅 시스템.
- 제10항에 있어서, 상기 컴퓨터 프로그램은, 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 하나의 벡터를 제1 데이터베이스로부터 추출하는 경우, 상기 하나의 벡터와 관련된 식별자를 식별하는 동작; 및 상기 식별자와 관련된 답변 메시지를 획득하고, 획득된 답변 메시지를 상기 사용자 단말로 전송하는 동작을 더 수행하기 위한 인스트력션들을 포함하는, 컴퓨팅 시스템.
- 컴퓨팅 장치와 결합되어, 사용자 단말로부터 수신한 질의 메시지에 대한 벡터를 획득하는 단계; 상기 획득된 벡터와 임계값 이상의 유사도를 가지는 복수의 벡터를 포함하는 검색 목록을 제1 데이터베이스로부터 추출하는 단계; 상기 질의 메시지와 관련된 프롬프트 및 상기 검색 목록을 언어 모델로 제공하여, 상기 질의 메시지의 답변과 관련된 식별자를 언어 모델로부터 수신하는 단계; 상기 수신된 식별자에 기초하여 답변 메시지를 획득하는 단계; 및 상기 획득된 답변 메시지를 상기 사용자 단말로 전송하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장된, 컴퓨터 프로그램.
Description
챗봇 서비스 제공 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING CHATBOT SERVICE} 본 개시는 챗봇 서비스 제공 방법에 대한 것이다. 보다 자세하게는, 사용자의 질의에 대해서 유연하게 대응할 수 있는 챗봇 서비스를 제공하는 방법 및 시스템에 관한 것이다. 챗봇 서비스는 컴퓨터 프로그램을 이용하여, 사용자의 질의에 대해서 자동으로 답변하는 서비스이다. 챗봇 서비스는 답변 시나리오와 관련된 룰셋(rule set)을 미리 저장하고, 룰셋에 기초하여 사용자 질의에 자동적으로 답변한다. 이러한 챗봇 서비스의 응답 정확성을 높이기 위해서는, 튜닝 작업(동의어, 검색 제외 단어, 룰, 스몰톡 등을 입력하는 작업)이 별도로 필요하다. 이러한 별도의 작업은 상당한 시간이 소요되므로 봇 생성의 사용성과 편리성을 저하시킨다. 또한, 봇 생성자가 입력한 검색 키워드 및 룰셋에 의존하여, 질의에 대한 답변이 제공되므로, 사용자가 오타를 입력하거나 부정확한 문장을 입력한 경우 폴백(Fallback)을 답변하는 빈도가 높아진다. 따라서 봇 생성자에게 튜닝 작업을 요구하지 않고 신속하게 봇을 만들 수 있으며, 사용자 질의에 유연하게 대응할 수 있는 챗봇 서비스에 대한 요구가 발생하고 있다. 도 1은 본 개시의 일 실시예에 따른, 챗봇 서비스 시스템이 적용되는 환경을 예시하는 도면이다. 도 2는 본 개시의 일 실시예에 따른, 챗봇 서비스 시스템(120)의 블록도를 예시하는 도면이다. 도 3은 본 개시의 일 실시예에 따른, 제2 DB에 저장된 시나리오 데이터를 예시하는 도면이다. 도 4는 본 개시의 일 실시예에 따른, 챗봇 서비스 시스템이 답변 메시지를 사용자 단말로 전송하는 방법을 설명하기 위한 신호 흐름도이다. 도 5는 본 개시의 다른 실시예에 따른, 챗봇 서비스 시스템이 답변 메시지를 사용자 단말로 전송하는 방법을 설명하기 위한 신호 흐름도이다. 도 6은 본 개시의 일 실시예에 따른, 사용자 단말에서 출력된 답변 메시지의 예시를 나타내는 도면이다. 도 7은 본 개시의 일 실시예에 따른, 사용자 단말에서 출력된 답변 메시지의 다른 예시를 나타내는 도면이다. 도 8은 본 개시의 일 실시예에 따른, 사용자 단말에서 출력된 폴백 메시지의 예시를 나타내는 도면이다. 도 9는 본 개시의 일 실시예에 따른, 챗봇 서비스를 제공하는 방법을 설명하기 위한 순서도이다. 도 10은 본 개시의 일 실시예에 따른, 도 9의 단계 S917를 더욱 상세하게 설명하기 위한 순서도이다. 도 11은 다양한 실시예에서 컴퓨팅 시스템을 구현할 수 있는 예시적인 하드웨어 구성도이다. 이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시 예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. 이하, 본 개시의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다. 도 1은 본 개시의 일 실시예에 따른, 챗봇 서비스 시스템이 적용되는 환경을 예시하는 도면이다. 도 1에 예시된 바와 같이, 챗봇 서비스 시스템(120)은 통신망(140)을 통해서, 사용자 단말(110)과 통신할 수 있다. 통신망(140)은 이동통신망과 유선통신망 등을 포함하는 것으로서, 본 발명에 있어서 주지의 관용기술에 해당하므로 자세한 설명은 생략하기로 한다. 사용자 단말(110)은 챗봇 서비스 시스템(120)으로 질의 메시지를 전송하고, 질의 메시지에 대한 답변 메시지를 수신할 수 있다. 사용자 단말(110)은 이동통신단말, 데스크톱 컴퓨터, 태블릿 컴퓨터 등으로, 통신망(140)을 통해서 챗봇 서비스 시스템(120)과 통신 가능한 장치라면 제한되지 않고 채택 가능하다. 스토리지(130)는 각종 데이터를 저장할 수 있는 데이터 저장수단일 수 있다. 스토리지(130)는 시나리오와 관련된 벡터를 저장하는 제1 데이터베이스 및 시나리오와 관련된 데이터를 저장하는 제2 데이터베이스를 포함할 수 있다. 챗봇 서비스 시스템(120)은 챗봇 서비스를 제공할 수 있는 컴퓨팅 시스템일 수 있다. 챗봇 서비스 시스템(120)은 하나 이상의 서버를 포함할 수 있다. 챗봇 서비스 시스템(120)은 사용자 단말(110)로부터 질의 메시지를 수신하고, 질의 메시지에 대한 답변 메시지를 사용자 단말(110)로 전송할 수 있다. 일 실시예에 따르면, 챗봇 서비스 시스템(120)은 질의 메시지에 대한 벡터를 획득하고, 획득된 벡터와 임계값 이상의 유사도를 가지는 복수의 벡터와 관련된 검색 목록을 스토리지(130)로부터 추출할 수 있다. 또한, 챗봇 서비스 시스템(120)은 추출된 검색 목록 및 질의 메시지와 관련된 프롬프트(prompt)를 언어 모델로 제공하여, 질의 메시지에 대한 답변과 관련된 식별자를 언어 모델로부터 획득할 수 있다. 또한, 챗봇 서비스 시스템(120)은 식별자를 기초로 답변 메시지를 획득하여 사용자 단말(110)로 전송할 수 있다. 여기서, 프롬프트는 언어 모델에 입력되는 텍스트일 수 있다. 또한, 언어 모델은 LLM(Large Language Model)일 수 있으며, 인공신경망을 포함하여 구성될 수 있다. 언어 모델은 언어를 벡터로서 표현하고, 벡터를 통해서 언어를 이해하도록 사전에 학습될 수 있다. 여기서, 벡터는 다차원 벡터로서, 텍스트 또는 문장의 특징(feature)을 가리킬 수 있다. 이하, 후술하는 실시예에서, 언어 모델이 LLM인 것으로 가정하여 설명한다. 도 2는 본 개시의 일 실시예에 따른, 챗봇 서비스 시스템(120)의 블록도를 예시하는 도면이다. 도 2를 참조하면, 챗봇 서비스 시스템(120)은 등록 처리부(210), 메시지 처리부(220) 및 봇 서비스부(230)를 포함할 수 있다. 또한, 스토리지(130)는 제1 데이터베이스(240, 이하, '제1 DB'로 지칭함) 및 제2 데이터베이스(250, 이하, '제2 DB'로 지칭함)를 포함할 수 있다. 또한, 챗봇 서비스 시스템(120)은 LLM(260)과 연동할 수 있다. 몇몇 실시예에서는, 챗봇 서비스 시스템(120)은 LLM(260)을 포함하여 구성될 수 있다. 제2 DB(250)는 복수의 시나리오 데이터를 저장할 수 있다. 구체적으로, 제2 DB(250)는 시나리오 식별자, 시나리오명 및 시나리오 내용을 포함하는 복수의 시나리오 데이터를 저장할 수 있다. 챗봇 서비스 시스템(120)은 시나리오 등록 툴(tool)을 봇 생성자에게 제공하고, 봇 생성자로부터 새로운 시나리오 데이터를 수신하여 제2 DB(250)에 저장할 수 있다. 또한, 챗봇 서비스 시스템(120)은 특정 시나리오 데이터에 대한 변경 정보를 봇 생성자로부터 수신하면, 제2 DB(250)에 저장된 특정 시나리오 데이터를 갱신할 수 있다. 도 3은 본 개시의 일 실시예에 따른, 제2 DB에 저장된 시나리오 데이터를 예시하는 도면이다. 도 3를 참조하면, 시나리오 데이터는 시나리오 식별자(ID), 시나리오명 및 시나리오 내용을 포함할 수 있다. 여기서, 시나리오 식별자는 시나리오 데이터를 구별하기 위하여 할당되는 식별자이고, 시나리오명은 시나리오의 이름을 지칭할 수 있다. 또한, 시나리오명은 질의 메시지와 관련될 수 있다. 또한, 시나리오 내용은 시나리오의 답변과 관련될 수 있다. 즉, 시나리오 내용이 특정 질의에 대한 답변 메시지로서 결정되어 사용자 단말(110)로 전송될 수 있다. 제1 DB(240)는 복수의 벡터 데이터를 저장할 수 있다. 일 실시예에 따르면, 벡터 데이터는 시나리오 식별자와 시나리오에 대한 벡터를 포함할 수 있다. 여기서, 벡터는 시나리오명 및 시나리오 내용 중 하나 이상에 대한 벡터일 수 있다. 즉, 시나리오명 및 시나리오 내용 중에서 하나 이상의 특징과 관련된 벡터가 제1 DB(240)에 저장될 수 있다. LLM(260)은 인공신경망을 포함하여 구성된 모델로서, 언어와 관련된 벡터를 통해서 언어를 이해하도록 사전에 학습될 수 있다. 일 실시예에 따르면, LLM(260)은 봇 서비스부(230)로부터 제2 프롬프트를 제공받고, 제2 프롬프트에 기초하여 답변 메시지를 생성하여, 봇 서비스부(230)로 제공할 수 있다. 제2 프