brunch
매거진 이슈잇슈

제미나이(Gemini)로 자동응답 슬랙봇 만들기

Gemini API를 통해 데이터를 학습시키켜 해당 내용 토대로 답변하기

by 코코

요즘 제미나이(Gemini) API를 통해 다양한 방식으로 자동화를 실험해보는 사람들이 많이 있는 것 같다.

AI 기술을 활용하여 또 하나의 재미있는 발견을 하여 그 기록을 남겨볼까한다.




만들어볼 챗봇 :

1. 사용자가 슬랙봇에게 ChatGPT 처럼 무엇이든 아무렇게나 물어본다

2. 해당 슬랙봇은 스프레드시트에 저장되어 있는 데이터를 기반으로 학습하여 질문에 답변을 만들어준다

3. 만들어진 답변을 사용자에게 발송한다.




준비물 :

1. 미리 만들어진 슬랙봇 (방법은 지난 포스팅 참고)

2. 슬랙봇의 토큰값 (방법은 지난 포스팅 참고)

3. 스프레드시트에 저장된 학습 데이터(아무 정보)






STEP 1 - 학습데이터 만들기


구글스프레드시트에 학습할 데이터부터 만들어본다.

업무가이드, 법률 사전, 나무위키, 용어 사전 등등 무궁무진한 데이터 아무거나 상관없다.

우선 테스트용도로 축구스타 메시의 나무위키 내용 중 일부를 발췌했다



Screenshot 2025-05-25 at 5.10.02 PM.png

1-1) 학습데이터를 만들어준다

- 원하는 학습데이터를 A1셀에 입력한다

- 요청사항을 A2셀에 입력한다



� 주의 사항)

--- 학습데이터 ------요청--- 같은 부분은 반드시 포함해야한다

Gemini에게 전달할 프롬프터를 명확히하기 위한 절차이다.

- 시트의 탭이름은 '학습데이터'로 지정해줘야한다(따움표 없이)



STEP 2 - 슬랙봇 셋팅하기


질문을 입력받고 답변을 전달해줄 슬랙봇을 셋팅하는 순서이다.

슬랙 API 사이트에서 간편하게 설정이 가능하다.

하나도 빠짐없이 꼼꼼하게 따라하되 워크스페이스의 환경(개인 or 기업, 유료 or 무료)에 따라 보안 및 설정 상세 내용이 다르기 때문에 주의해야한다!

(이번 실습의 경우 무료+개인 워크스페이스 버전이다)



Screenshot 2025-05-25 at 4.42.09 PM.png

2-1) 슬랙 API 사이트에 접속한다

- https://api.slack.com/

- 로그인이 필요한 경우 슬랙아이디로 로그인 필요




Screenshot 2025-05-25 at 4.42.17 PM.png
Screenshot 2025-05-25 at 4.42.25 PM.png

2-2) Create an App을 클릭 > From scratch 클릭




Screenshot 2025-05-25 at 4.42.32 PM.png
Screenshot 2025-05-25 at 4.43.01 PM.png

2-3) 슬랙봇을 만들 워크스페이스 선택 > Create App 선택




Screenshot 2025-05-25 at 4.43.29 PM.png
Screenshot 2025-05-25 at 4.43.48 PM.png

2-4) OAuth&Permissions > Scopes > Add an OAuth Scope

- Chat:write를 검색해서 추가해준다

� 주의 사항) User Token Scopes가 아닌 Bot Token Scopes로 추가해줘야함




Screenshot 2025-05-25 at 4.57.23 PM.png
Screenshot 2025-05-25 at 4.57.28 PM.png

2-5) OAuth&Permissions > Install to workspace 선택 > 허용 클릭




Screenshot 2025-05-25 at 4.57.38 PM.png

2-6) OAuth&Permissions > OAuth Token > Bot User OAuth Token

- 발급받은 토큰키는 메모장 혹은 소중한 장롱속에 고이고이 저장하고 보안에 유의해야한다.




STEP 3 - Gemini API 키 발급 받기


Gemini를 활용하기 위해 API 키를 발급받아야한다.




Screenshot 2025-05-23 at 8.09.59 PM.png
Screenshot 2025-05-23 at 8.10.13 PM.png

3-1) gemini api 검색 > Google Gemini API 사이트 접속 > Go to Google AI Studio 접속




Screenshot 2025-05-23 at 8.10.31 PM.png
Screenshot 2025-05-23 at 8.10.40 PM.png

3-2) Get API Key > API 키 만들기 클릭




Screenshot 2025-05-23 at 8.11.16 PM.png
Screenshot 2025-05-23 at 8.11.27 PM.png

3-3) 기존 프로젝트에서 API 키 만들기 > API 키 복사

- 발급받은 토큰키는 메모장 혹은 소중한 장롱속에 고이고이 저장하고 보안에 유의해야한다.





STEP 4 - 코드 작성하기


구글 스프레드시트 Apps Script를 통해 코드를 작성하여 마무리해준다



Screenshot 2025-05-23 at 8.16.05 PM.png

4-1) 확장프로그램 > Apps Script 클릭




Screenshot 2025-05-25 at 6.39.24 PM.png

4-2) geminiChatbot 코드 작성

- 기본셋팅 + 프롬프트 구성 코드 + Gemini API 답변 생성 작성 부분 3가지 파트로 구성되어 있다.

- Gemini버전은 2.0 flash로 우선 설정했다(2025년 5월 기준 API에서는 2.0만 작동 가능)


� 주의 사항)

- YOUR API KEY 부분에서 고이고이 모셔두었던 Gemini API Key를 넣어주기로 한다.

(YOUR API KEY로 그대로 입력하면 안됨)




Screenshot 2025-05-25 at 5.12.29 PM.png

4-3) geminiSendResult 코드 작성

- gemini로 부터 질문을 받고 생성된 답변을 받아서 메시지를 다시 사용자에게 전달하는 부분이다.

간단하게 답변을 발송해주는 기능이라고 생각하면 편하다


� 주의 사항)

- YOUR BOT TOKEN KEY 부분에서 고이고이 모셔두었던 Bot User OAuth Token값을 넣어주기로 한다.

(YOUR BOT TOKEN KEY로 그대로 입력하면 안됨)


Gemini API Key랑 Bot User OAuth Token을 헷갈리면 안됨!




Screenshot 2025-05-25 at 5.11.54 PM.png

4-4) doPost(e) 코드 작성

- 사용자로부터 답변을 받아 gemini로 부터 답변을 생성하는 부분이다.

이번 코드 중에서 가장 중요한 핵심 부분!


� 주의 사항)

- params.api_app_id == '가려진 부분'은 App ID를 입력하면 된다.

Screenshot 2025-05-25 at 4.43.11 PM.png

App ID 확인하는 방법 > Basic Information > App ID 확인






STEP 5 - 챗봇 배포하기(Final)


마지막 단계,

실제 챗봇 배포하여 테스트해보는 단계이다.






Screenshot 2025-05-25 at 5.00.16 PM.png

5-1) 배포 > 새 배포 클릭





Screenshot 2025-05-25 at 5.00.31 PM.png
Screenshot 2025-05-25 at 5.00.37 PM.png

5-2) 설정버튼 > 웹 앱 > 나 > 모든사용자 설정 > 배포 클릭

- 나의 코드를 슬랙봇에 적용하는 과정으로 배포한다(필수로 진행해줘야하는 과정)

� 주의 사항)

- 설정을 꼭 나 / 모든 사용자로 해줘야한다(안그러면 큰일!)




Screenshot 2025-05-25 at 7.07.57 PM.png

5-3) 결과로 나오는 URL을 꼭 복사!





Screenshot 2025-05-25 at 5.01.25 PM.png

5-4) Event Subscriptions > Request URL

- 방금 전 복사해줬던 URL을 Request URL에 넣는다

- 하단 Add Bot User Event 버튼을 클릭

1.message.im 클릭하여 추가

2. message.channels 클릭하여 추기

- Save Changes 클릭하여 저장




Screenshot 2025-05-25 at 5.02.01 PM.png

5-5) App Home > Show Tabs

- Message Tab을 On으로 변경







완성! 테스트!



Screenshot 2025-05-25 at 5.08.51 PM.png

질문) 메시가 득점왕 받은지 여부

- 학습데이터를 토대로 답변해주는 모습을 볼 수 있다!




Screenshot 2025-05-25 at 7.17.46 PM.png

말도 안되지만 학습데이터에 메시가 궁중 떡볶이를 좋아한다는 내용을 추가해봤다.




Screenshot 2025-05-25 at 7.30.28 PM.png

질문) 메시가 가장 좋아하는 음식 질문

- 궁중 떡볶이를 좋아한다는 답변을 전달해주고 있다.






결론

오늘은 Gemini API를 활용해서 학습데이터를 토대로 답변을 생성하여 슬랙봇으로 답변받는 챗봇을 만들어봤다.

다양한 업무에 활용이 가능하고 그 확장 가능성은 무한하다


개선점

- 1질문 1답변의 형태로 맥락이 이어지지 않는다

- 어떤 질문이 왔고 어떤 답변이 나갔는지 log기록을 추가하면 더욱 더 좋을듯

- 질문의 답변이 스레드로 쌓이면 UX적으로 더 좋을 것 같다



다음번에는 맥락을 유추하면서도 UX를 헤치지 않는 좀 더 발전된 형태의 챗봇으로 ver.2를 만들어보는 포스팅으로 제작 후기를 만들어보려고 한다

keyword
매거진의 이전글[업무자동화] 매주 주간보고 양식 자동 업데이트