ChatGPT có cung cấp API và token 18$ miễn phí để anh em tạo Bot trên Telegram. Trong bài này mình sẽ hướng dẫn tạo Bot ChatGPT trên Telegram miễn phí để bạn chat hoặc add vào group Telegram của mình.
Mình thấy chủ đề này mãi không hết hot nhỉ. ChatGPT càng phát triển thì anh em phần mềm càng lo sợ, nhưng đó là đối với những người không biết cách khai thác sức mạnh của ChatGPT thôi. Muốn tận dụng hết sức mạnh của ChatGPT thì các bạn phải đưa nó vào các hoạt động hằng ngày của mình. Một trong những hoạt động các bạn thường xuyên làm nhất là trao đổi tin nhắn trên các nền tảng ứng dụng trực tuyến như messenger và telegram. Messenger thì mình chưa nghe nói có ai tích hợp ChatGPT cả, nhưng telegram thì có rồi. Vậy nên trong bài viết này, mình sẽ hướng dẫn các bạn tạo bot telgeram sử dụng ChatGPT cực kỳ dễ dàng nhé.
Tính năng bot telegram ChatGPT
- Hỗ trợ markdown trong câu trả lời
- Đặt lại cuộc trò chuyện bằng lệnh /reset
- Hiển thị đang nhập tin nhắn trong khi đợi phản hồi từ bot
- Có thể hạn chế quyền truy cập bằng cách chỉ định danh sách người dùng
- Hỗ trợ Docker và Proxy
- Tạo hình ảnh bằng cách sử dụng DALL·E thông qua lệnh /image
- Phiên âm tin nhắn âm thanh và video bằng Whisper (có thể yêu cầu ffmpeg)
- Tự động tóm tắt câu trả lời để tránh sử dụng API quá mức
- Theo dõi mức sử dụng API trên mỗi người dùng
- Thống kê mức sử dụng API của mỗi cá nhân và chi phí mỗi ngày/tháng thông qua lệnh /stats
- Hỗ trợ Stream
Yêu cầu
Để tạo Bot ChatGPT trên Telegram, bạn nên cài trên Ubuntu hoặc Kali Linux để hỗ trợ tốt hơn.
- Python 3.9+
- Token bot Telegram. Các bạn có thể sử dụng Bot Father tại đây: Gõ lệnh
/newbot
, sau đó nhập tên cho Bot muốn tạo. Lưu ý, tên Bot phải kết thúc bằng _BOT, ví dụ:ANVGPT_BOT
, sau khi tạo xong bạn sẽ thấy botfather cung cấp HTTP API, nhớ lưu token này lại nhé. - API của OpenAI. Đăng ký tài khoản ChatGPT OpenAI (hướng dẫn). Sau đó copy API Key tại trang này.
Cách cài đặt
Bước 1: Clone repo từ github về và truy cập vào folder project từ cmd.
git clone https://github.com/n3d1117/chatgpt-telegram-bot.git cd chatgpt-telegram-bot
Bước 2: Tạo môi trường ảo cho python.
python -m venv venv
Bước 3: Kích hoạt môi trường ảo
Windows:
venvScriptsactivate
Linux:
source venv/bin/activate
Bước 4: Cài đặt các thư viện khác trong file requirements.txt:
pip3 install -r requirements.txt
Bước 5: Thay API của OpenAI và bot father trong file .env.example
. Sau đó đổi tên file này thành .env
.
Trong trường hợp bạn muốn thêm bot vào group telegram thì có thể thay đổi thông số ADMIN_USER_IDS và ALLOWED_TELEGRAM_USER_IDS.
- ADMIN_USER_IDS: ID Telegram của quản trị admin. Những người dùng này có quyền truy cập vào các lệnh, thông tin đặc biệt và không bị hạn chế về ngân sách. Bạn không cần phải thêm ID quản trị viên vào ALLOWED_TELEGRAM_USER_IDS. Lưu ý: theo mặc định, bot sẽ không có quản trị viên (‘-‘).
- ALLOWED_TELEGRAM_USER_IDS: Danh sách ID người dùng Telegram, được phép tương tác với bot (bạn có thể sử dụng getidsbot để tìm ID người dùng của bạn). Để tất cả mọi người đều có thể chat với bot thì bạn điền dấu *.
Bước 6: Chạy bot bằng lệnh dưới đây.
python bot/main.py
Vậy là xong rồi đó. Bây giờ bạn vào Telegram, tìm con bot vừa tạo bằng Botfather rồi chat với nó, nó sẽ lấy kết quả từ ChatGPT để trả lời cho bạn.
Ngoài ra Bot hỗ trợ một số lệnh sau:
- /image: tạo hình ảnh từ các từ gọi ý
- /stats: thống kê số token đã dùng bằng API ChatGPT
- /reset: xóa các thông tin đã hỏi được lưu trên ChatGPT
- /help: hiển thị bảng hỗ trợ
Nâng cao: Tối ưu lại Bot ChatGPT trên Telegram
Trường hợp bạn tạo Bot ChatGPT vào group telegram thì có một điểm cần lưu ý là các tin nhắn bình thường đều sẽ được bot phản hồi lại hết. Vậy nên sẽ dễ gặp trường hợp spam nếu group bạn đông. Bạn có thể sửa đổi một số dòng code sau để khi người dùng dùng lệnh ask thì bot mới phản hồi.
Bước 1: Đầu tiên, các bạn tìm hàm prompt và đổi tên hàm này thành ask
. Chỉ thay chữ prompt thành chữ ask thôi nhé.
Bước 2: Trong hàm ask vừa đổi tên, các bạn thay dòng lệnh trong ảnh thành lệnh dưới đây:
prompt = update.message.text.replace('/ask', '').strip()
Bước 3: Thay lệnh gọi hàm xử lý bằng hàm dưới đây:
application.add_handler(CommandHandler('ask', self.ask))
Như vậy bạn đã tự tạo cho mình Bot ChatGPT trên Telegram, bạn có thể dùng 1 mình hoạt add vào group để nó trở thành trợ lý cho bạn bằng cách tự trả lời bằng kết quả của AI GPT nhé.