구름에서는 사내 소통 채널로 Slack을 사용하며, 점심 메뉴를 공유하는 ‘밥봇’, 생일을 알려주는 ‘생일 봇’ 등 다양한 봇이 운영되고 있었습니다.
나와 팀원은 인턴 미션으로 각각 ‘운세봇’과 ‘명언봇’ 개발을 맡았고, 구름 IDE 환경에서 Python을 활용해 개발을 진행했어요.
본격적인 기획에 앞서 Slack과 OpenAI API 모두 처음이었기 때문에, 우선 간단한 Slack 봇을 만들어보며 구현 가능한 범위를 파악하고자 했습니다. 마침 구름 기술 블로그에 슬랙봇 만들기 어렵지 않아요 라는 글이 있어, 이를 참고해 기본적인 봇을 구현해볼 수 있었어요.
무한 테스트(?)를 위해 테스트용 워크스페이스를 개설하고, 채널에서 봇을 태그한 뒤 hello
를 입력하면 인사를 반환하도록 만들었어요. 또, 응답 메시지에 포함된 Click Me
버튼을 누르면 봇이 다시 나를 태그하며 응답하도록 설정해 간단한 인터랙션까지 구현했습니다.
ChatGPT에게 생년월일을 기반으로 운세를 요청하려면, 먼저 Slack에서 해당 정보를 불러올 수 있어야 했습니다.
이를 위해 오늘의 운세 확인
버튼을 클릭하면, 봇이 Slack 프로필에 저장된 생년월일 정보를 읽어와 응답하도록 구현했어요.
개인적으로 ChatGPT 4o 유료 모델을 사용 중이라, 내 ChatGPT API 키를 활용해 운세 정보를 가져오는 것을 시도했어요. 하지만 사용량이 초과 되었다는 응답을 받았고, 오늘 너무 많이 사용할 탓일까 싶어 다음날에 다시 시도해 보았습니다. 하지만 여전히 운세 정보를 가져오지 못하네요..
혹시 엔터프라이즈 계정이 아니라서 그런 건 아닐까 싶어, 회사 워크플로우를 통해 GPT API 키를 요청했습니다.
승인 후 전달받은 키를 코드에 적용하니 곧바로 응답이 돌아왔는데, 첫 응답이 비록 일부 잘려 있었지만 max_tokens
값을 늘리자 더 길고 완전한 내용을 받을 수 있었어요.
모든 사람이 운세를 받기를 원하지 않을 수도 있기 때문에, 채널에서 오늘 운세 확인 🍀
버튼을 클릭할 경우에만 DM으로 메시지를 보내도록 설정했습니다. 또 Slack 프로필에 생년월일이 등록되지 않은 상태에서 해당 버튼을 누른다면, 생년월일을 추가해야한다는 메시지를 보내도록 구현했습니다.
대표님과 팀의 리더에게 직접 받은 미션이기에 함께 QA 진행하였고, 이때 받은 피드백을 정리해보았습니다.
QA 이후 가장 많이 신경 써서 수정했던 부분은 프롬프트 엔지니어링이었어요.
어떤 내용을 포함해야 하는지, 그리고 어떤 내용은 제외해야 하는지를 보다 구체적으로 명시하니, 내가 원하는 답변에 훨씬 더 가까운 결과를 얻을 수 있었습니다.
수정 후 일주일간 테스트를 진행하며 최종 점검을 마쳤고, 마침내 사내 운세봇의 런칭 일정이 확정되었습니다.
약 150명이 있는 워크스페이스에 봇을 설치하는 것 만으로도 너무 떨렸어요. 😱 이후 리더의 전사 공지를 통해 운세봇과 명언봇이 공식적으로 소개되었고, 덕분에 많은 관심을 받게 되었습니다..^-^ (사실 부담이 되기도)
이슈가 많았던 관계로 다음 글에서..^^