채팅 서비스에서의 생성형 AI 활용: Prompt Engineering과 Function Calling
생성형 AI, 특히 ChatGPT와 같은 채팅 서비스는 우리 일상에 점점 더 흔해지고 있습니다. 이 AI는 우리의 질문에 어떻게 반응하는지, 그 동작 원리는 무엇인지 궁금하신가요? 주요 핵심 중 하나는 '프롬프트'입니다.
Prompt Engineering이란
프롬프트는 Generative AI, 즉 생성형 AI의 언어 모델에게 우리의 요구나 질문을 전달하는 입력 값입니다. 그럼 AI는 이 프롬프트를 바탕으로 답변을 생성하게 됩니다.
Prompt Engineering이 중요한 이유
여러분이 검색 엔진에서 검색할 때, 키워드를 어떻게 입력하느냐에 따라 결과가 달라지곤 합니다. 이와 유사하게, AI에게 정보를 요청할 때 어떻게 질문하느냐에 따라 답변의 질이나 내용도 달라질 수 있습니다. 그래서 최적의 프롬프트를 찾는 과정, 즉 'Prompt Engineering'이 중요한 것입니다.
예를 들어 "이메일을 발명한 사람은 누구야?"와 "이메일을 발명한 사람에 대해 자세히 설명해줘."는 의미가 비슷해 보이지만, 후자의 질문은 더 구체적인 응답을 요구하고 있습니다. 이렇게 질문의 구체성에 따라 AI의 응답도 달라질 수 있습니다.
The only UIKit you need.
GPT를 효율적으로 사용하는 방법
OpenAI에서는 GPT를 조금 더 잘 사용할 수 있도록 가이드를 제공하고 있습니다. 모델을 최대한 효율적으로 사용하기 위해서는 몇 가지 방법을 알아둬야 합니다.
자세한 정보를 입력하여 원하는 답변 받기
GPT는 우리의 마음을 읽을 수 없습니다. 그래서 구체적으로 원하는 정보를 질문하는 것이 중요합니다.
모델이 특정 역할을 맡도록 요청
GPT는 사용자의 의도를 추측할 수 없기 때문에, 명확하게 질문하는 것이 중요합니다. Sendbird Smart Assistant 에서는 'SYSTEM' 영역을 통해 Bot의 성격이나 Persona를 지정할 수 있습니다. 이 Persona 설정에 따라 AI의 응답 특성이 바뀔 수 있습니다.
입력값의 특정 부분을 강조하기 위해 구분 기호 표시
짧은 문장보다는 구분 기호를 포함한 질문을 더 잘 이해하는 경향이 있습니다. 예를 들어, 'Smart Assistant' 기능에서는 사용자의 질문에 더 정확한 답변을 제공하기 위해 이를 활용하고 있습니다.
Sendbird의 스마트 어시스턴트와 Chat AI 위젯
GPT API의 system_message 기능을 사용하면 우리에게 필요한 Bot을 만들 수 있습니다. 그러나 system_message에서 허용되는 토큰의 수 제한으로 인해 무한한 정보를 입력하는 것은 불가능합니다.
이러한 제약을 해결하기 위해 Sendbird는 스마트 어시스턴트 기능을 출시했습니다.
사용자의 질문이나 대화에 따라 가장 적절한 Knowledge base 내용을 동적으로 system_message에 설정할 수 있다면, 보다 고급 ChatBot을 구축할 수 있게 됩니다.
Sendbird의 스마트 어시스턴트는 사용자의 질문과 가장 연관된 내용을 Vector DB 기술을 활용해 동적으로 추가하는 방식을 채택하였습니다.
Chat AI 위젯
이렇게 구성된 내용을 사용자에게 보여주기 위해서는 'Chat AI 위젯'을 활용할 수 있습니다.
Chat AI 위젯은 Sendbird 스마트 어시스턴트의 AI 기능을 웹사이트나 어플리케이션에 쉽게 임베드 할 수 있게 해주는 도구입니다. 이를 통해 사용자는 별도의 설정 없이 AI 기반의 채팅 기능을 바로 활용할 수 있게 됩니다.
Function Calling
OpenAI에서는 최근에 'Function Calling'이라는 기능을 발표했습니다.
기존의 GPT는 자체 데이터만을 기반으로 응답을 했지만, Function Calling을 통해 실시간으로 외부 데이터를 받아와 답변을 생성할 수 있게 되었습니다. 예를 들면, 사용자가 실시간 날씨 정보를 요구하면, GPT는 특정 API를 통해 실제 날씨 데이터를 가져와 응답을 제공할 수 있습니다.
이를 활용해서 외부 데이터와 연동할 수 있는 다양한 유스케이스를 구현할 수 있습니다.
Function Calling을 활용한 유스케이스
또한, Function Calling 기능을 이용하여 전자상거래나 헬스케어 분야에서 사용되는 AI 챗봇은 사용자의 질문에 실시간으로 외부 데이터를 활용해 더욱 정확하고 상세한 답변을 제공할 수 있게 되었습니다.
전자상거래, 헬스케어
맺음말
이렇게 Sendbird와 같은 서비스는 OpenAI의 기술을 활용하여 실제 비즈니스 환경에서 어떻게 AI 챗봇을 효율적으로 활용할 수 있는지를 보여주며, 이는 미래의 다양한 산업 분야에서의 AI 활용 가능성을 확대하고 있습니다.
결론적으로, 생성형 AI는 우리 일상과 비즈니스 환경 모두에서 큰 변화를 가져오고 있습니다. 특히 Sendbird와 같은 서비스를 통해 AI 챗봇의 활용 범위와 기능이 계속해서 발전하고 있음을 확인할 수 있습니다. 이러한 발전은 사용자 경험을 향상시키고, 더욱 다양하고 효율적인 서비스 제공을 가능하게 만들어 줍니다.