본문 바로가기

TIL/개인공부

[Slack] ChatGPT Slack 챗봇 만들기 (1편)

반응형

해당 포스팅은 제가 작업한 내용을 기록하기 위한 목적입니다. 설명이 많이 부족할수있는점 참고 부탁드리겠습니다.

 

주말에 개발을 한번 해보고자 요즘 핫한 ChatGPT를 활용하여 Slack 챗봇을 만들어보기로했다.

일단 해당 챗봇을 만들기 위한 요소들을 나열해보자면

  • Python
  • slack_sdk
  • FastAPI
  • AWS EC2 (또는 개인 컴퓨터)
  • Docker

등이 될것같다.

 

먼저 ChatGPT를 사용하기 위해서 OpenAI에 회원가입을 진행한다.

https://openai.com/api/

 

OpenAI API

OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity.

openai.com

회원가입을 하고 로그인을하면 오른쪽 상단에 프로필 클릭 -> View API keys로 이동한다.

그 다음 OpenAI API를 사용하기 위해서 새로운 Secret Key를 생성하고 해당 Key값을 기록해둔다.

그다음 Slack 챗봇을 사용하기위해서 새로운 앱을 생성해야한다. 아래 사이트로 접속하고 "Create an app"을 클릭한다.

https://api.slack.com/

 

Slack은 당신을 위한 Digital HQ입니다

Slack은 여러분의 팀과 소통할 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다.

slack.com

다음으로 "From scratch" 를 클릭해서 내가 원하는 챗봇의 이름을 지정해준다. 필자의 경우 "ChatGPTBot"으로 설정했다.

다음으로는 슬랙봇의 "권한"을 설정해줘야하는데. 슬랙 앱 설정화면에서 "OAuth & Permissions"로 접속하여 아래와같이 설정해준다. 이건 확실하진않지만 일단 대부분의 채팅기능은 다 활성화해준것같다.

그리고 마지막으로 챗봇을 사용하기 위해서 "Bot User OAuth Token"도 기록해준다.

여기 밑에 코드가 적혀있다.

자 이제 기본적으로 사용하는 API들의 토큰들을 발급 및 권한설정을 완료했다.

다음으로는 ChatGPT를 손쉽게 사용하기 위해서 아래와같은 파이썬 코드로 작성한다. 해당코드는 https://github.com/workdd/ChatGPT_with_Slack 해당 github repo를 참고하였다.

# chatgpt.py
# 발급받은 OpenAI API Key 기입
YOUR_API_KEY = ''


def ChatGPT(prompt, API_KEY=YOUR_API_KEY):
    # api key 세팅
    openai.api_key = API_KEY

    # ChatGPT API 호출 및 최신 언어 모델인 text-davinci-003을 가져옴
    completion = openai.Completion.create(
        engine='text-davinci-003'  # 'text-curie-001'  # 'text-babbage-001' #'text-ada-001'
        , prompt=prompt
        , temperature=0.5
        , max_tokens=1024
        , top_p=1
        , frequency_penalty=0
        , presence_penalty=0)

    return completion['choices'][0]['text']


def main():
    # 지문 입력 란
    prompt = input("Insert a prompt: ")
    print(ChatGPT(prompt).strip())


if __name__ == '__main__':
    main()

이후, 추가적인 파이썬 패키지들을 설치해준다.

pip install openai
pip install slack_sdk

 

여기까지 다했다면 일단 임시로 ChatGPT를 사용해볼수있다. 아래는 사용 예시이다.

반응형