텔레그램 봇을 만들고 AWS에 배포하거나 다른 서비스를 이용하는 방법을 단계별로 설명해 드리겠습니다. 이 과정은 최대한 간단하…
페이지 정보
작성자 bryanai 작성일 25-02-21 09:55 조회 16 댓글 0본문
텔레그램 봇을 만들고 AWS에 배포하거나 다른 서비스를 이용하는 방법을 단계별로 설명해 드리겠습니다. 이 과정은 최대한 간단하고 빠르게 진행할 수 있도록 구성했습니다.
---
## **1. 텔레그램 봇 생성**
이 부분은 위 답변과 동일합니다.
1. **BotFather**와 대화하여 봇을 생성하고 API 토큰을 발급받습니다.
2. ChatGPT API 키를 [OpenAI](https://platform.openai.com/)에서 발급받습니다.
---
## **2. 코드 작성**
아래는 간단한 Python 코드입니다. 이를 기반으로 봇을 만듭니다.
### **필요한 패키지 설치**
```bash
pip install python-telegram-bot openai
```
### **코드 예제**
```python
import openai
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
# OpenAI API 키 설정
openai.api_key = "YOUR_OPENAI_API_KEY"
# 텔레그램 봇 토큰 설정
TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
# ChatGPT에 질문 보내기
async def ask_chatgpt(question):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": question}]
)
return response.choices[0].message['content']
# /start 명령 처리
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("안녕하세요! 무엇을 도와드릴까요?")
# 메시지 처리
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_message = update.message.text
bot_response = await ask_chatgpt(user_message)
await update.message.reply_text(bot_response)
# 에러 처리
async def error(update: Update, context: ContextTypes.DEFAULT_TYPE):
print(f"Update {update} caused error {context.error}")
# 메인 함수
def main():
app = Application.builder().token(TELEGRAM_BOT_TOKEN).build()
# 핸들러 등록
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
# 에러 핸들러 등록
app.add_error_handler(error)
# 봇 시작
print("봇이 실행 중입니다...")
app.run_polling()
if __name__ == "__main__":
main()
```
---
## **3. AWS에 배포하기**
AWS에 배포하는 가장 쉬운 방법은 **AWS Lambda**와 **API Gateway**를 사용하는 것입니다. 아래 단계를 따라하세요.
### **1) AWS 계정 준비**
- AWS 계정이 없다면 [AWS](https://aws.amazon.com/)에서 무료 계정을 만듭니다.
### **2) AWS Lambda 함수 생성**
1. **AWS Management Console**에 로그인합니다.
2. **Lambda** 서비스로 이동하여 "함수 생성"을 클릭합니다.
3. "새로 작성"을 선택하고 함수 이름을 입력합니다 (예: `TelegramChatGPTBot`).
4. 런타임으로 `Python 3.9` 이상을 선택합니다.
### **3) Lambda 코드 업로드**
1. 위에서 작성한 Python 코드를 Lambda에 업로드합니다.
- 직접 코드를 붙여넣거나 `.zip` 파일로 압축하여 업로드합니다.
- 필요한 패키지(`python-telegram-bot`, `openai`)도 함께 포함해야 합니다.
```bash
pip install python-telegram-bot openai -t .
zip -r lambda_function.zip .
```
2. Lambda 함수의 핸들러 이름을 `lambda_function.lambda_handler`로 설정합니다.
### **4) 환경 변수 추가**
Lambda 함수의 **환경 변수** 섹션에서 다음 값을 추가합니다:
- `TELEGRAM_BOT_TOKEN`: 텔레그램 봇 토큰
- `OPENAI_API_KEY`: OpenAI API 키
### **5) API Gateway 연결**
1. Lambda 함수에 **API Gateway 트리거**를 추가합니다.
2. API Gateway를 통해 HTTP 요청을 받도록 설정합니다.
3. 트리거가 활성화되면 엔드포인트 URL이 제공됩니다.
### **6) 텔레그램 웹훅 설정**
텔레그램 봇이 AWS Lambda와 통신하도록 웹훅을 설정합니다.
```bash
curl -F "url=https://YOUR_API_GATEWAY_URL" https://api.telegram.org/bot<YOUR_TELEGRAM_BOT_TOKEN>/setWebhook
```
---
## **4. 다른 서비스를 이용하는 방법**
AWS 외에도 다양한 플랫폼에서 쉽게 배포할 수 있습니다. 몇 가지 추천 서비스를 소개합니다.
### **1) Railway**
Railway는 간단하고 직관적인 배포 플랫폼입니다.
1. [Railway](https://railway.app/)에 가입하고 프로젝트를 생성합니다.
2. GitHub 리포지토리를 연결하거나 직접 코드를 업로드합니다.
3. 환경 변수를 설정합니다 (`TELEGRAM_BOT_TOKEN`, `OPENAI_API_KEY`).
4. 배포 후 자동으로 실행됩니다.
### **2) Heroku**
Heroku는 무료로 간단한 애플리케이션을 배포할 수 있습니다.
1. [Heroku](https://www.heroku.com/)에 가입하고 앱을 생성합니다.
2. `requirements.txt`와 `Procfile`을 추가합니다.
- `requirements.txt`:
```
python-telegram-bot
openai
```
- `Procfile`:
```
worker: python your_script.py
```
3. Git을 통해 코드를 Heroku에 푸시합니다.
4. 환경 변수를 설정합니다.
### **3) Render**
Render는 간단한 웹 서비스 및 백엔드 애플리케이션을 배포할 수 있습니다.
1. [Render](https://render.com/)에 가입하고 새 웹 서비스를 생성합니다.
2. GitHub 리포지토리를 연결하거나 직접 코드를 업로드합니다.
3. 환경 변수를 설정하고 배포합니다.
---
## **5. 다른 텔레그램 봇이나 서비스 활용**
직접 코딩하지 않고도 텔레그램 봇을 만들 수 있는 서비스도 있습니다.
### **1) BotStar**
- [BotStar](https://botstar.com/)은 비주얼 인터페이스로 봇을 만들 수 있는 플랫폼입니다.
- ChatGPT와 연동하려면 API 호출 노드를 사용하면 됩니다.
### **2) Dialogflow**
- Google의 [Dialogflow](https://dialogflow.cloud.google.com/)를 사용하여 자연어 처리 기반의 봇을 만들 수 있습니다.
- ChatGPT 대신 Dialogflow의 AI 모델을 사용할 수도 있습니다.
### **3) Telegram Mini Apps**
- 텔레그램 자체에서 제공하는 **Mini Apps** 기능을 활용하여 웹 기반 봇을 만들 수 있습니다.
- HTML, CSS, JavaScript로 개발 가능하며, ChatGPT API를 백엔드로 연결할 수 있습니다.
---
위 방법 중 하나를 선택하여 쉽게 텔레그램 봇을 만들고 배포할 수 있습니다. ????
- 이전글 텔레그램 봇을 만들고 ChatGPT와 연동하는 방법 중 **서버를 직접 돌리지 않고 다른 텔레그램 봇이나 서비스를 활용**하는 방법을 자세히 설명하겠습니다. 이 방법은 코딩 없이도 가능하며, 초보
- 다음글 단톡방 인공지능 스타트업 스터디 커뮤니티 코드 2969 인공지능 스타트업 스터디
댓글목록 0
등록된 댓글이 없습니다.