채팅 서비스에서의 생성형 AI 활용: Prompt Engineering과 Function Calling

Blog cover Prompt Engineering Function Calling
Oct 10, 2023
Luke Cha
Software Engineer
SBM blog CTA mobile 1

옴니채널 비즈니스 메시징으로 당신의 비즈니스를 성장 시키고 비용을 줄이세요

생성형 AI, 특히 ChatGPT와 같은 채팅 서비스는 우리 일상에 점점 더 흔해지고 있습니다. 이 AI는 우리의 질문에 어떻게 반응하는지, 그 동작 원리는 무엇인지 궁금하신가요? 주요 핵심 중 하나는 '프롬프트'입니다.

Prompt Engineering이란

프롬프트는 Generative AI, 즉 생성형 AI의 언어 모델에게 우리의 요구나 질문을 전달하는 입력 값입니다. 그럼 AI는 이 프롬프트를 바탕으로 답변을 생성하게 됩니다.

Prompt Engineering이 중요한 이유

여러분이 검색 엔진에서 검색할 때, 키워드를 어떻게 입력하느냐에 따라 결과가 달라지곤 합니다. 이와 유사하게, AI에게 정보를 요청할 때 어떻게 질문하느냐에 따라 답변의 질이나 내용도 달라질 수 있습니다. 그래서 최적의 프롬프트를 찾는 과정, 즉 'Prompt Engineering'이 중요한 것입니다.

Prompt Engineering이 중요한 이유

예를 들어 "이메일을 발명한 사람은 누구야?"와 "이메일을 발명한 사람에 대해 자세히 설명해줘."는 의미가 비슷해 보이지만, 후자의 질문은 더 구체적인 응답을 요구하고 있습니다. 이렇게 질문의 구체성에 따라 AI의 응답도 달라질 수 있습니다.

U Ikit Mobile content offer background

The only UIKit you need.

GPT를 효율적으로 사용하는 방법

OpenAI에서는 GPT를 조금 더 잘 사용할 수 있도록 가이드를 제공하고 있습니다. 모델을 최대한 효율적으로 사용하기 위해서는 몇 가지 방법을 알아둬야 합니다.

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 기술을 활용해 동적으로 추가하는 방식을 채택하였습니다.

Sendbird의 스마트 어시스턴트와 Chat AI 위젯

Chat AI 위젯

이렇게 구성된 내용을 사용자에게 보여주기 위해서는 'Chat AI 위젯'을 활용할 수 있습니다.

Chat AI 위젯은 Sendbird 스마트 어시스턴트의 AI 기능을 웹사이트나 어플리케이션에 쉽게 임베드 할 수 있게 해주는 도구입니다. 이를 통해 사용자는 별도의 설정 없이 AI 기반의 채팅 기능을 바로 활용할 수 있게 됩니다.

Chat AI 위젯
github.com/sendbird/chat-ai-widget

Function Calling

OpenAI에서는 최근에 'Function Calling'이라는 기능을 발표했습니다.

OpenAI에서는 최근에 'Function Calling'이라는 기능을 발표했습니다.

기존의 GPT는 자체 데이터만을 기반으로 응답을 했지만, Function Calling을 통해 실시간으로 외부 데이터를 받아와 답변을 생성할 수 있게 되었습니다. 예를 들면, 사용자가 실시간 날씨 정보를 요구하면, GPT는 특정 API를 통해 실제 날씨 데이터를 가져와 응답을 제공할 수 있습니다.

이를 활용해서 외부 데이터와 연동할 수 있는 다양한 유스케이스를 구현할 수 있습니다.

이를 활용해서 외부 데이터와 연동할 수 있는 다양한 유스케이스를 구현할 수 있습니다.

Function Calling을 활용한 유스케이스

또한, Function Calling 기능을 이용하여 전자상거래나 헬스케어 분야에서 사용되는 AI 챗봇은 사용자의 질문에 실시간으로 외부 데이터를 활용해 더욱 정확하고 상세한 답변을 제공할 수 있게 되었습니다. 

전자상거래, 헬스케어

https://github.com/sendbird/ecommerce-ai-chatbot, https://github.com/sendbird/healthcare-ai-chatbot

맺음말

이렇게 Sendbird와 같은 서비스는 OpenAI의 기술을 활용하여 실제 비즈니스 환경에서 어떻게 AI 챗봇을 효율적으로 활용할 수 있는지를 보여주며, 이는 미래의 다양한 산업 분야에서의 AI 활용 가능성을 확대하고 있습니다.

결론적으로, 생성형 AI는 우리 일상과 비즈니스 환경 모두에서 큰 변화를 가져오고 있습니다. 특히 Sendbird와 같은 서비스를 통해 AI 챗봇의 활용 범위와 기능이 계속해서 발전하고 있음을 확인할 수 있습니다. 이러한 발전은 사용자 경험을 향상시키고, 더욱 다양하고 효율적인 서비스 제공을 가능하게 만들어 줍니다.

Ebook Grow Mobile content offer background

비즈니스 성과로 이어지는 디지털 커뮤니케이션

센드버드와 함께, 지금 바로 시작해보세요