+48

Build ChatGPT Telegram bot, đỡ phải login, daily limits

Chắc hẳn có lẽ nhiều bạn sử dụng ChatGPT gặp tình trạng quá tải như thế này trên phiên bản web, cũng đúng vì ChatGPT tăng trưởng quá khủng khiếp, 100 triệu người dùng trong vòng có 60 ngày, mất 30 triệu đô để duy trì hệ thống. Hiện tại sắp tới ChatGPT có ra mắt phiên bản ChatGPT Plus với giá $20/tháng, tương ứng vào khoảng 1,5% người dùng hiện tại sử dụng thì mới đủ bù vào tiền duy trì hệ thống kia. image.png

Tuy nhiên ChatGPT có cung cấp API, nếu ai lười như mình thì sử dụng API cho nhanh, đỡ phải login qua bản web, lại còn hay bị cloudflare check xem có phải robots k 😐

Build ChatGPT Telegram bot

Mình thử qua nhiều repo trên github nhưng sử dụng repo này thì được, không biết sử dụng được đến bao giờ nhưng mà hiện tại nó chạy được là được, đến lúc nó tèo téo teo thì lại tìm cách khác 😂

https://github.com/karfly/chatgpt_telegram_bot

Cách setup cực kỳ đơn giản

Bước 1: Lấy OpenAI Key tại https://platform.openai.com/

Bước 2: Tạo bot Telegram bằng @botfather, lấy Telegram bot token của bạn

Bước 3: Clone repo https://github.com/karfly/chatgpt_telegram_bot về, sau đó cài đặt env

  • Chạy 2 lệnh sau:
    mv config/config.example.yml config/config.yml
    mv config/config.example.env config/config.env
    
    Sau đó chỉnh sửa file config/config.yml thêm telegram bot token và openai token đã lấy từ bước 1 và bước 2 lưu vào file config

Bước 4: Chỉnh sửa file docker-compose.yml

  • Thực hiện xoá dòng 9 và 29 đi Thực hiện xoá dòng 8, 9, 28, 29 đi, không cần public port mongodb
    ports:
    - ${MONGODB_PORT:-27017}:${MONGODB_PORT:-27017}
    ports:
    - ${MONGO_EXPRESS_PORT:-8081}:${MONGO_EXPRESS_PORT:-8081}
    

Bước 5: Chạy docker-compose

  • Chỉ cần chạy docker-compose lên là xong, yêu cầu hệ thống cần có docker nhé 😂
    docker-compose --env-file config/config.env up --build
    

Kết quả

Và đây là thành quả image.png

  • Mình cảm nhận thấy nó chạy nhanh hơn là với bản web, bản web generate từng chữ một chờ sốt ruột, còn ở đây chỉ cần chờ 3-5s là có kết quả rồi, tuy nhiên vẫn bị giới hạn 1 câu trả lời được ít chữ chứ vẫn chưa được nhiều chữ 😐
  • Có thể add bot vào 1 nhóm dùng chung được, tuy nhiên người kia đang hỏi thì cần phải chờ, chờ người kia hỏi xong thì bot mới rep tiếp được.

Do sử dụng API của OpenAI thì mất tiền, tuy nhiên khi tạo tài khoản các bạn sẽ được 18$ free, nhưng nó có thời hạn sử dụng, nếu hết thời hạn sử dụng thì sẽ không còn dùng được API nữa đâu nhé 😂 https://platform.openai.com/account/usage image.png

Hi vọng là sẽ giúp được các bạn lười như mình 😂 Nhân dịp năm mới, chúc các bạn có một năm mới bình an, hoàn thành tốt những điều gì mong muốn trong năm 2023 tới, see you!


All rights reserved

Bình luận

Đăng nhập để bình luận
Avatar
@quanlh
thg 2 3, 2023 9:07 SA
error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dchatgpt_telegram_bot-main%22%3Atrue%7D%7D&limit=0": open //./pipe/docker_engine: The system cannot find the file specified.

Bị lỗi vậy là sao ạ xin chỉ giáo ạ

Avatar

@quanlh cái này là lỗi do docker, bạn fix lỗi docker là được nhé

Avatar
@quanlh
thg 2 4, 2023 2:09 SA
Avatar
@ndh.sunday
thg 2 3, 2023 5:27 CH

Em là người mới, cho hỏi các dòng lệnh trên chạy ở phần mềm nào ạ? Xin cảm ơn

Xem thêm (2)
Avatar

@Minh3124 k cần VPS cấu hình cao đâu bạn, 512MB ram là đủ rồi, chỉ cần cấu hình cho VPS có thể chạy docker là được

Avatar
@tichtran
thg 2 18, 2023 4:01 SA

@minhtuan.nguy mình thử thì thấy là clone về chạy trực tiếp trên web của github luôn cũng được

Avatar
@dinhtum
thg 2 3, 2023 5:52 CH

mò mãi không được, bác làm video hướng dẫn mấy đứa mù công nghệ như em được không

Avatar

@dinhtum cái này cần cài đặt môi trường docker các thứ, bạn có thể nhờ mấy người bạn học IT thử xem sao ạ 😄

Avatar
@quanlh
thg 2 4, 2023 2:16 SA

Something went wrong during completion. Reason: You exceeded your current quota, please check your plan and billing details. Nó vẫn tính qouta hả bác

Avatar

@quanlh mình vẫn chưa đạt đến giới hạn đó, chắc là do chưa hỏi đủ nhiều, để mình thử hỏi nhiều xem có bị lỗi như bạn k nhé

Avatar
@tichtran
thg 2 18, 2023 3:53 SA

@minhtuan.nguy có lẽ các tài khoản khi đăng ký không được thưởng Free Trail Usage sẽ bị báo lỗi này. Mình có thử add thẻ visa vào mà bị nó từ chối. Chả hiểu kiểu gì

Avatar
@langtuhodo
thg 2 4, 2023 7:51 SA

ở bước 4 nếu xóa 2 dòng 9 và 29 đi sẽ gặp lỗi:

services.mongo.ports contains an invalid type, it should be an array
services.mongo_express.ports contains an invalid type, it should be an array

Còn không xóa thì như thế này

services.mongo.ports is invalid: Invalid port "27017  # MongoDB port:27017  # MongoDB port", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
services.mongo_express.ports is invalid: Invalid port "8081  # Mongo Express port:8081  # Mongo Express port", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]

Cách khắc phục:

   Dòng 29: - "8081:8081"
Avatar

@langtuhodo xoá hẳn đi k có lỗi gì đâu bạn ạ 😄

Avatar

docker-compose --env-file config/config.env up --build fix sao ad oi Screenshot_2023-02-04_21-28-47.png

Avatar
@quanlh
thg 2 5, 2023 4:12 SA

@Nhut.nguyenminhgg bác comment luôn cái dòng port lẫn dòng giá trị đi là đc

Avatar

Chạy lệnh "docker-compose --env-file config/config.env up --build "Mình gặp lỗi này nè đại ca Cho mình cách fix với : RROR: The Compose file './docker-compose.yml' is invalid because: services.mongo.ports contains an invalid type, it should be an array services.mongo_express.ports contains an invalid type, it should be an array

Avatar

trong file config.env bạn có thay đổi giá trị gì k ạ, vẫn giữ nguyên port của mongodb và mongo express chứ ạ 😄

Avatar
@quanlh
thg 2 5, 2023 4:12 SA

bác comment luôn cái dòng port lẫn dòng giá trị đi là đc

Avatar
@quanlh
thg 2 5, 2023 4:35 SA

Cái này vẫn tính limit bình thường nha các bác

Avatar

@quanlh limit bao nhiêu thế bác, mình vẫn chưa đạt được đến limit của nó 😂

Avatar
@quanlh
thg 2 5, 2023 4:39 SA

@minhtuan.nguy e cũng ko rõ số cụ thể là bao nhiêu nhưng hiện tại là đạt limit rồi bác

Avatar

@quanlh mình check trên openai thì nó cũng bảo là được 1 số lượng lớn thôi, k nói rõ cụ thể là bao nhiêu cả :-s

Avatar
Avatar

mình làm đến bước chạy docker mà chạy đến cuối bị báo keyerror là bị sao hả bạn? bạn xem giúp mình với Ảnh chụp Màn hình 2023-02-05 lúc 13.50.18.png

Xem thêm (3)
Avatar

mình làm lại từ đầu thì giờ nó báo lỗi như vậy, bạn xem thử nhé Ảnh chụp Màn hình 2023-02-06 lúc 01.49.07.png

Avatar

@sangdesign93 có vẻ như bạn đang chạy sai image docker, cho mình xem câu lệnh bạn chạy được k

Avatar
@sonsohigh1998
thg 2 6, 2023 2:42 CH

Em chạy được file docker compose rồi nhưng khi chat trên telegram thì bot trả kết quả

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/telegram/ext/_application.py", line 945, in process_update
    await coroutine
  File "/usr/local/lib/python3.8/site-packages/telegram/ext/_handler.py", line 135, in handle_update
    return await self.callback(update, context)
  File "bot/bot.py", line 141, in new_dialog_handle
    await register_user_if_not_exists(update, context, update.message.from_user)
  File "bot/bot.py", line 38, in register_user_if_not_exists
    if not db.check_if_user_exists(user.id):
  File "/code/bot/database.py", line 19, in check_if_user_exists
    if self.user_collection.count_documents({"_id": user_id}) > 0:
  File "/usr/local/lib/python3.8/site-packages/pymongo/collection.py", line 1842, in count_documents
    return self._retryable_non_cursor_read(_cmd, session)
  File "/usr/local/lib/python3.8/site-packages/pymongo/collection.py", line 1847, in _retryable_non_cursor_read
    with client._tmp_session(session) as s:
  File "/usr/local/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1757, in _tmp_session
    s = self._ensure_session(session)
  File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1740, in _ensure_session
    return self.__start_session(True, causal_consistency=False)
  File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1685, in __start_session
    self._topology._check_implicit_session_support()
  File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 538, in _check_implicit_session_support
    self._check_session_support()
  File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 554, in _check_session_support
    self._select_servers_loop(
  File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 238, in _select_servers_loop
    raise ServerSelectionTimeoutError(
pymongo.errors.Serv

Mọi người có gì chỉ giáo giúp e với ạ

Avatar
@Thatngan
thg 2 27, 2023 5:22 CH

huhu bác fix được chưa em cũng bị như thế 😭

Avatar
@Minh3124
thg 2 7, 2023 2:53 CH

Mình gặp lỗi như dưới thì phải làm sao nhỉ ERROR: The Compose file './docker-compose.yml' is invalid because: services.mongo.ports contains an invalid type, it should be an array services.mongo_express.ports contains an invalid type, it should be an array

Avatar
@vip7skid
thg 2 11, 2023 3:40 SA

services.mongo.ports must be a list thì phải làm sao ạ

Avatar
@lamtruong
thg 2 11, 2023 8:39 SA

bác comment thêm cả 2 cái dòng port lại nữa là đc, cả dòng giá trị lẫn port

Avatar
@tnquochuy2020
thg 2 11, 2023 8:51 SA
Avatar
@lehoangvu24
thg 2 12, 2023 3:48 SA

Hehe cảm ơn anh, em làm theo được rồi ạ. Em muốn hỏi là nếu mình cứ để như vậy, trừ khi tắt máy đi thì nó vẫn hoạt động đúng không ạ. Có phải mình dùng docker-compose down để tắt hoạt động này đi không ạ? Em cảm ơn anh. (em mới tập tành dùng Docker nên hơi bỡ ngỡ ạ hehe)

Avatar

@lehoangvu24 đúng rồi bạn, bạn có thể sử dụng VPS để deploy lên đó, chatbot sẽ luôn hoạt động nhé 😄

Avatar
@sonhuynh
thg 2 12, 2023 6:18 SA

Mình bị lỗi này chatgpt_telegram_bot | Something went wrong during completion. Reason: 'NoneType' object is not subscriptable

Avatar

@sonhuynh bạn có thể cho mình xin screenshot để mình kiểm tra xem sao được không, có thể là do network bên chatgpt gặp lỗi không gửi được thông tin

Avatar
@sonhuynh
thg 2 12, 2023 7:29 SA

@minhtuan.nguy mình đã sửa được rồi, do sai port mongodb

Avatar
@ThanhTri
thg 2 14, 2023 10:03 SA
Avatar
@meomumacmua
thg 2 12, 2023 3:51 CH

Bạn cho mình hỏi chatbot reply như này là sao nhỉ Something went wrong during completion. Reason: You exceeded your current quota, please check your plan and billing details.

Avatar
Avatar
@nguyenhiep23
thg 2 12, 2023 4:33 CH

Em làm đc rồi nhưng hỏi gì thì nó cũng bảo "Something went wrong during completion. Reason: You exceeded your current quota, please check your plan and billing details." thì fix như thê nào được ạ?

Avatar
@cauma1113
thg 2 13, 2023 3:37 SA

xin cách để add chatgpt vào nhóm mà nó tự nhận diện câu hỏi or ra chỉ lệnh để hỏi như '/ask' nó sẽ trả lời ạ!

Xem thêm (3)
Avatar
@cauma1113
thg 2 14, 2023 6:42 SA

@phongcu1000 bạn set full quyền admin cho nó là đc

Avatar
@minhtuan.nguy
thg 2 14, 2023 11:43 SA

@cauma1113 mình thêm bot vào nhóm, phải reply tin nhắn của nó thì nó mới trả lời ý, còn không thì nó k trả lời

Avatar
@huukimit
thg 2 15, 2023 5:52 SA

Tuyệt vời! ^^ 😄

Avatar

đây không phải là chatgpt đây chỉ là gpt-3.5 với engine="text-davinci-003" , muốn là chatgpt cần phải cấu hình email, mật khẩu của tài khoản chatgpt để dùng được, như này chỉ là call API của OpenAI thôi

Avatar

@nhancuachungta đúng vậy, theo mình mới tìm hiểu thì cái này chỉ sử dụng api của openai sử dụng model text-davinci-003, nhưng mình dùng thì nó cũng đủ cho mình rồi, cần thiết hơn thì mình lên web, nhưng dạo này web hay bị tèo quá

Avatar
@thiennv-2147
thg 2 20, 2023 3:16 SA

Mình không có tài khoản GPT. Cho mình xin 1 tài khoản để làm theo được không ạ.

Avatar

Không ạ 😩

Avatar
@hieu_db_d1
thg 2 20, 2023 4:05 SA

đã thử và thành công, thank you chủ thớt

Avatar
@tinninh
thg 2 24, 2023 2:31 SA

cho mình hỏi có hướng dẫn/có cách nào để train cho con chatbot này bằng DB riêng của mình tự input vào hay không? mình cám ơn!

Avatar
@longng89
thg 3 3, 2023 12:08 CH

còn 1 bước nữa mà mình thấy trong bài hay cả ở repo không nhắc đến là add bot và group xong phải set nó là admin thì mới gửi tin nhắn được, nếu không thì mình hỏi bot nó chỉ làm thinh thôi:v

Avatar

image.png mình để thế này vẫn chiến được bt mà

Avatar
@Qmi
thg 3 29, 2023 7:45 SA

Dùng API của gpt thì có tốn tiền k anh nhỉ

Avatar
@Qmi
thg 3 29, 2023 8:55 SA

À có tốn tiền, mà mỗi tk chatgpt thì được trial sẵn 18$.

Avatar
+48
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí