안녕하세요,
아과노트입니다.
오늘은 지난 시간에 이어 ChatGTP를 이용해서 챗봇 만들기 위한 작업에 앞서
먼저 텔레그램으로 챗봇을 만드는 기본에 대해서 알아보겠습니다
이 문서는 이전 글에 연결됩니다!!
2023.03.02 - [파이썬] - 파이썬 / ChatGPT API (openai) 기본 사용법 (공식문서 기준) / 아과노트
챗봇을 만들기 위해서는 가장 대중적으로 쓰는 것이 텔레그램을 이용한 챗봇 만들기입니다.
이미 많은 포스팅들이 있지만 실제 텔레그램 공식 문서를 이용해서 챗봇을 만드는 과정을 알아보겠습니다.
참고한 문서는 아래 문서입니다.
https://core.telegram.org/bots/samples
파이썬 챗봇을 만드는 과정을 다음과 같습니다.
- 텔레그램에서 BotFater에게 챗봇 생성 요청
- 파이썬에서 텔레그램봇 라이브러리 설치
- 챗봇 토큰을 이용해서 메시지 보내기
그럼 하나하나 시작해 보겠습니다.
1. 텔레그램에서 BotFater에게 챗봇 생성 요청
먼저 텔레그램에서 BotFater를 검색합니다.
검색된 BotFater를 누르면 대화창으로 이동합니다
과거에는 명령어를 다 외워야 했는데...
이제는 대화창옆에 "Menu"라는 것이 추가되었습니다.
여기 누르면 편하게 명령어들을 볼 수가 있네요 ㅎㅎㅎ
혹시라도 궁금한 것이 있으면 /help를 입력하면 상세하게 설명해 줍니다.
다만 영어로... ㅎㅎㅎ
이제 우리는 절차에 따라 봇을 생성해 보겠습니다.
"/newbot"을 선택해 주세요.
그러면 우리의 봇파더(BotFather)께서
"좋아, 새로운 봇이야. 어떻게 부를래?? 봇의 이름을 정해봐!"라고 물어봐 줍니다.
봇의 이름을 이쁘게 잘 지어주세요
저는 그냥 아과노트(agwanote)라고 지었습니다.
그러면 봇파더께서
"훌륭해. 이제 네가 만든 봇의 사용자 이름을 정해보자! 이름의 끝은 bot으로 끝나야 해!"
라고 알려줍니다.
이게 실질적인 ID처럼 구분자가 됩니다. 이름을 잘 정해 줍니다.
저는 작명센스가 뛰어나지 않아서... agwanote_bot으로 정했습니다.
그러면 드디어 우리에게 토큰(token)을 발급해 줍니다.
이 토큰을 이용해서 텔레그램으로 만들어야 하니 잘 알아 두세요
다음 그림의 빨간 박스 친 부분입니다.
보안을 위해 내용은 안 보이게 해 두었습니다.
텔레그램 봇은 봇파더(BotFather)를 통해 생성합니다
-아과노트-
그럼 여기까지 텔레그램(Telegram)의 챗봇 생성입니다.
2. 파이썬에서 텔레그램봇 라이브러리 설치
파이썬 텔레그램봇 라이브러리 설치는 간단합니다.
공식문서에 다음과 같이 입력하라고 합니다
터미널에서 다음과 같이 입력해 주세요
pip install python-telegram-bot --upgrade
pip install python-telegram-bot --upgrade
아래의 메시지를 보시면 설치 완료한 것입니다.
3. 챗봇 토큰을 이용해서 메세지 보내기
다음 공식 문서에서 안내하는 대로 첫 메시지를 보내보겠습니다.
https://github.com/python-telegram-bot/python-telegram-bot/wiki/Extensions-%E2%80%93-Your-first-Bot
소스는 다음과 같습니다.
import logging
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
if __name__ == '__main__':
token = "여기에 발급받은 Token을 입력하세요"
application = ApplicationBuilder().token(token).build()
start_handler = CommandHandler('start', start)
application.add_handler(start_handler)
application.run_polling()
여러분이 token이란 변수에 1번에서 챗봇에서 생성하면서 발급받은 토큰(Token)을 넣어주세요
"숫자숫자숫자:문자문자숫자문자문자" 이런 형태로 토큰이 있을 것입니다.
통째로 넣으면 됩니다.
그리고 실행을 해서 확인해 봅니다.
프로그램은 이렇게만 뜰 것입니다.
그럼 실제 대화는 어떻게 할 것인가?!
텔레그램에서 여러분이 만든 봇을 검색해 주세요
저는 agwanote라고 적었기 때문에 agwanote라고 검색하겠습니다.
여러분의 봇을 꾹 누르면 다음처럼 하단에 "START" 가 보입니다. 명령어가 이미 있네요 ㅎㅎ
꾸욱 눌러보세요
그러면 다음처럼 "나는 봇입니다. 나에게 얘기해 보세요"라고 봇이 영어로 말합니다.
처음 웰컴 메시지를 수정하고 싶으시다면 위의 소스에서 다음 부분을 수정하시면 됩니다.
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text="여기에 환영인사말을 넣어보세요")
파이썬 소스를 다시 실행하고, 텔레그램 챗봇에 /start를 입력해 줍니다. 위의 /start를 눌러도 됩니다.
잘 나옵니다 ㅎㅎㅎ
여기까지 챗봇 기본 메세지를 보내보았습니다.
오늘 여러분은 텔레그램 챗봇을 생성하고, 텔레그램으로 소스를 만들어 첫 대화를 할 수 있도록 만들었습니다
다음 이 시간에는 좀 더 다양한 명령어로 챗봇을 활용해 보겠습니다.
고생하셨습니다!