안녕하세요, 지난 OpenAI DevDay에서 PDF 등 문서를 업로드하여 이를 기반으로 질문을 하고 GPT 모델이 답을 해주는 Assistants API가 발표되었는데요, 단순히 브라우저에서 사용할 수 있는 것에서 그치지 않고 Python/JavaScript 라이브러리를 통해 개발 중인 어플리케이션과 손쉽게 연동할 수 있는 것이 큰 특징입니다. Assistants의 동작 방식은 여기에서 자세히 확인하실 수 있습니다.
이번 포스트에서는 어플리케이션을 손쉽게 배포할 수 있는 클라우드타입을 활용하여 OpenAI Assistants와 연동한 슬랙봇을 만들어 보겠습니다. AI에게 학습시킬 PDF는 최근 관심도가 높은 2023년 귀속 연말정산 안내 책자입니다.
OpenAI의 기능을 외부에서 활용하기 위한 API 키 발급과 문서를 학습하고 답해주는 Assistant 생성이 필요합니다.
OpenAI 대시보드에서 API Keys 페이지로 이동한 후 Create new secret key 버튼을 누릅니다. API 키의 이름은 용도에 따라 식별할 수 있는 이름으로 입력합니다.
생성된 API 키는 생성 당시 최초 1회만 조회할 수 있기 때문에 외부에 노출되지 않는 안전한 곳에 저장합니다.
OpenAI 대시보드에서 Assistants 페이지로 이동한 후 Create 버튼을 누릅니다. 입력 필드 및 설정은 아래를 참고하여 입력합니다.
Assistant 생성 후 Name 입력 필드 하단에 생성되는 Assistant ID를 안전한 곳에 별도로 보관합니다.
Test 버튼을 누르면 Assistant가 잘 작동하는지 질문하고 답변을 확인할 수 있습니다.
슬랙의 워크스페이스명을 클릭하고 설정 및 관리 > 앱 관리 로 진입합니다.
우측 상단의 구축 버튼을 누르고 이어서 Create New App 버튼을 누릅니다. 이어서 From scratch 를 클릭합니다.
앱의 이름을 적절히 작성하고 봇을 사용할 워크스페이스를 선택합니다.
앱 생성 후 Basic Information 페이지의 App Credentials 항목에서 Signing Secret을 확인하고 안전한 곳에 저장합니다.
Basic Information 페이지의 App-Level Tokens 항목에서 Generate Token and Scopes 버튼을 클릭합니다. 이어서 Token Name에는 적절한 이름을 입력해주고 하단의 드롭다운에서 connections:write
를 선택한 후 Create 버튼을 눌러 앱 토큰을 생성합니다.
생성된 앱 토큰은 외부에 노출되지 않는 안전한 곳에 저장합니다.
OAuth & Permissions 페이지로 이동하여 Scopes - Bot Token Scopes 에서 Add an OAuth Scope 버튼을 누른 후 다음의 항목을 추가합니다.
channels:history
chat:write
commands
groups:history
App Home 페이지로 이동하여 Your App's Presence in Slack 에서 Edit 버튼을 누르고 워크스페이스에서 노출되는 슬랙봇의 이름과 username을 설정합니다.
Install App 페이지로 이동하여 Install to Workspace 버튼을 누르고 권한 요청 페이지에서 허용 버튼을 누릅니다. 정상적으로 설치가 완료되면 생성된 봇 토큰을 확인할 수 있으며, 이를 안전한 곳에 보관합니다.
클라우드타입 대시보드의 +
버튼을 누르고 AI ChatBot - Slack 템플릿을 검색한 후 선택합니다. 이어서 Slack Command Name에는 워크스페이스에서 사용할 슬래시 명령어, Slack Bot Title에는 메세지에 표시되는 제목을 입력하고 나머지 필드에는 미리 보관해두었던 값들을 모두 입력한 후 배포하기 버튼을 누릅니다.
배포된 슬랙봇 서버의 상태가 실행 중으로 바뀌면 터미널 아이콘을 눌러 서버가 정상 구동되었는지 확인합니다.
슬랙에서 이벤트를 수신하여 서버에서 처리할 수 있도록 하기 위해서는 서버의 URL을 슬랙의 앱 설정에 등록해야 합니다. 배포된 슬랙봇 서버의 연결 탭에서 표시된 URL을 보관해둡니다.
Slash Command 페이지에서 Create New Command 버튼을 누르고 다음을 참고하여 값을 입력합니다.
/ + 명령어
형식으로 입력<슬랙봇 서버 URL>/slack/events
형식으로 입력Event Subscription 페이지에서 Enable Events 를 활성화 하고 Request URL 항목에 <슬랙봇 서버 URL>/slack/events
를 입력합니다. 정상적으로 인증이 되면 Verified 라는 메세지가 표시됩니다.
이어서 하단의 Subscribe to bot events 에서 다음의 이벤트를 추가하고 Save Changes 버튼을 누릅니다.
message.channels
message.groups
슬랙봇을 사용할 채널을 클릭하고 통합 탭에서 앱 추가 버튼을 누릅니다.
생성한 AI슬랙봇 앱의 추가 버튼을 누릅니다.
슬래시 명령어 /연말정산
을 메세지 창에 입력하고 원하는 질문을 이어서 입력한 후 메세지를 전송합니다.
OpenAI의 Assistant API를 통해 수신된 정보를 AI 슬랙봇의 답변으로 확인할 수 있습니다.
회사에 너무 도입하고 싶은데 ㅠ.ㅠ 관련해서 조언을 구해도 될까요?