From 8646cf40f8fead7caa5ca3082367184bc2880910 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Sat, 22 Apr 2023 21:28:30 +0200 Subject: [PATCH 01/20] * Changed Dockerfile to use Alpine! --- Dockerfile | 9 ++++----- config/config.example.env | 11 ----------- config/config.example.yml | 13 ------------- 3 files changed, 4 insertions(+), 29 deletions(-) delete mode 100644 config/config.example.env delete mode 100644 config/config.example.yml diff --git a/Dockerfile b/Dockerfile index 7fd9f36e1..5f3b87012 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,14 @@ -FROM python:3.8-slim +FROM python:3.8-alpine ENV PYTHONFAULTHANDLER=1 ENV PYTHONUNBUFFERED=1 ENV PYTHONHASHSEED=random -ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONDONTWRITEBYTECODE=1 ENV PIP_NO_CACHE_DIR=off ENV PIP_DISABLE_PIP_VERSION_CHECK=on ENV PIP_DEFAULT_TIMEOUT=100 -RUN apt-get update -RUN apt-get install -y python3 python3-pip python-dev build-essential python3-venv ffmpeg +RUN apk add --no-cache python3-dev build-base libffi-dev openssl-dev ffmpeg RUN mkdir -p /code ADD . /code @@ -17,4 +16,4 @@ WORKDIR /code RUN pip3 install -r requirements.txt -CMD ["bash"] \ No newline at end of file +CMD ["bash"] diff --git a/config/config.example.env b/config/config.example.env deleted file mode 100644 index b52253bc9..000000000 --- a/config/config.example.env +++ /dev/null @@ -1,11 +0,0 @@ -# local path where to store MongoDB -MONGODB_PATH=./mongodb -# MongoDB port -MONGODB_PORT=27017 - -# Mongo Express port -MONGO_EXPRESS_PORT=8081 -# Mongo Express username -MONGO_EXPRESS_USERNAME=username -# Mongo Express password -MONGO_EXPRESS_PASSWORD=password \ No newline at end of file diff --git a/config/config.example.yml b/config/config.example.yml deleted file mode 100644 index 8fb3e07f2..000000000 --- a/config/config.example.yml +++ /dev/null @@ -1,13 +0,0 @@ -telegram_token: "" -openai_api_key: "" -use_chatgpt_api: true -allowed_telegram_usernames: [] # if empty, the bot is available to anyone. pass a username string to allow it and/or user ids as integers -new_dialog_timeout: 600 # new dialog starts after timeout (in seconds) -return_n_generated_images: 1 -n_chat_modes_per_page: 5 -enable_message_streaming: true # if set, messages will be shown to user word-by-word - -# prices -chatgpt_price_per_1000_tokens: 0.002 -gpt_price_per_1000_tokens: 0.02 -whisper_price_per_1_min: 0.006 \ No newline at end of file From aa546cdf95c7b3308978b3b041dbebf00682332f Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Mon, 24 Apr 2023 19:30:39 +0200 Subject: [PATCH 02/20] *Connected to remote mongodb instance --- .gitignore | 1 - bot/config.py | 6 +++--- config/config.yml | 11 +++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 config/config.yml diff --git a/.gitignore b/.gitignore index 42d3d901e..20d3ae52d 100644 --- a/.gitignore +++ b/.gitignore @@ -129,7 +129,6 @@ dmypy.json .pyre/ # Custom -config/config.yml config/config.env docker-compose.dev.yml diff --git a/bot/config.py b/bot/config.py index b0280d469..21f3308b2 100644 --- a/bot/config.py +++ b/bot/config.py @@ -12,15 +12,15 @@ config_env = dotenv.dotenv_values(config_dir / "config.env") # config parameters -telegram_token = config_yaml["telegram_token"] -openai_api_key = config_yaml["openai_api_key"] +telegram_token = config_env["TELEGRAM_TOKEN"] +openai_api_key = config_env["OPENAI_API_KEY"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) allowed_telegram_usernames = config_yaml["allowed_telegram_usernames"] new_dialog_timeout = config_yaml["new_dialog_timeout"] enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) n_chat_modes_per_page = config_yaml.get("n_chat_modes_per_page", 5) -mongodb_uri = f"mongodb://mongo:{config_env['MONGODB_PORT']}" +mongodb_uri = config_env["MONGODB_URI"] # chat_modes with open(config_dir / "chat_modes.yml", 'r') as f: diff --git a/config/config.yml b/config/config.yml new file mode 100644 index 000000000..ce1583f4d --- /dev/null +++ b/config/config.yml @@ -0,0 +1,11 @@ +use_chatgpt_api: true +allowed_telegram_usernames: ["me_noto"] # if empty, the bot is available to anyone. pass a username string to allow it and/or user ids as integers +new_dialog_timeout: 600 # new dialog starts after timeout (in seconds) +return_n_generated_images: 1 +n_chat_modes_per_page: 5 +enable_message_streaming: true # if set, messages will be shown to user word-by-word + +# prices +chatgpt_price_per_1000_tokens: 0.002 +gpt_price_per_1000_tokens: 0.02 +whisper_price_per_1_min: 0.006 From e40b83bf78b82dc4dc95ae587911e7936782b94e Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Mon, 24 Apr 2023 19:36:58 +0200 Subject: [PATCH 03/20] * Added apk to install bash --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 5f3b87012..7c9b36d32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ ENV PIP_DISABLE_PIP_VERSION_CHECK=on ENV PIP_DEFAULT_TIMEOUT=100 RUN apk add --no-cache python3-dev build-base libffi-dev openssl-dev ffmpeg +RUN apk add --no-cache bash RUN mkdir -p /code ADD . /code From 727c047e0cab3059ae6c957196b29d5de6b84cd8 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Mon, 24 Apr 2023 20:03:31 +0200 Subject: [PATCH 04/20] * Changed docker-compose --- docker-compose.yml | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e8dee97b3..88d3637eb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,6 @@ version: "3" services: - mongo: - container_name: mongo - image: mongo:latest - restart: always - ports: - - 127.0.0.1:${MONGODB_PORT:-27017}:${MONGODB_PORT:-27017} - volumes: - - ${MONGODB_PATH:-./mongodb}:/data/db - # TODO: add auth - chatgpt_telegram_bot: container_name: chatgpt_telegram_bot command: python3 bot/bot.py @@ -18,21 +8,8 @@ services: build: context: "." dockerfile: Dockerfile - depends_on: - - mongo - - mongo_express: - container_name: mongo-express - image: mongo-express:latest - restart: always - ports: - - 127.0.0.1:${MONGO_EXPRESS_PORT:-8081}:${MONGO_EXPRESS_PORT:-8081} environment: - - ME_CONFIG_MONGODB_SERVER=mongo - - ME_CONFIG_MONGODB_PORT=${MONGODB_PORT:-27017} - - ME_CONFIG_MONGODB_ENABLE_ADMIN=false - - ME_CONFIG_MONGODB_AUTH_DATABASE=chatgpt_telegram_bot - - ME_CONFIG_BASICAUTH_USERNAME=${MONGO_EXPRESS_USERNAME:-username} - - ME_CONFIG_BASICAUTH_PASSWORD=${MONGO_EXPRESS_PASSWORD:-password} - depends_on: - - mongo + - MONGODB_HOST= + - MONGODB_PORT= + - MONGODB_USERNAME= + - MONGODB_PASSWORD= From 5b9f7de2c184e797d79d3e4055d02c14913b5ff5 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 12:28:45 +0200 Subject: [PATCH 05/20] * Added start command to dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7c9b36d32..0d9ff3105 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,4 +17,4 @@ WORKDIR /code RUN pip3 install -r requirements.txt -CMD ["bash"] +CMD ["python3", "bot/bot.py"] From aa152ab746e9a6d4fb77e675820c795eca634e8f Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 12:44:52 +0200 Subject: [PATCH 06/20] * Changed config.py to use os module --- bot/config.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/bot/config.py b/bot/config.py index 21f3308b2..9b4ac609b 100644 --- a/bot/config.py +++ b/bot/config.py @@ -1,5 +1,5 @@ import yaml -import dotenv +import os from pathlib import Path config_dir = Path(__file__).parent.parent.resolve() / "config" @@ -8,19 +8,16 @@ with open(config_dir / "config.yml", 'r') as f: config_yaml = yaml.safe_load(f) -# load .env config -config_env = dotenv.dotenv_values(config_dir / "config.env") - # config parameters -telegram_token = config_env["TELEGRAM_TOKEN"] -openai_api_key = config_env["OPENAI_API_KEY"] +telegram_token = os.environ["TELEGRAM_TOKEN"] +openai_api_key = os.environ["OPENAI_API_KEY"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) allowed_telegram_usernames = config_yaml["allowed_telegram_usernames"] new_dialog_timeout = config_yaml["new_dialog_timeout"] enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) n_chat_modes_per_page = config_yaml.get("n_chat_modes_per_page", 5) -mongodb_uri = config_env["MONGODB_URI"] +mongodb_uri = os.environ["MONGODB_URI"] # chat_modes with open(config_dir / "chat_modes.yml", 'r') as f: From df5ebfad956e4ce7e99ec616a7f2f15e7e4294f2 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 13:11:08 +0200 Subject: [PATCH 07/20] * Moved allowed users to .env file --- bot/config.py | 3 ++- config/config.example.env | 13 +++++++++++++ config/config.yml | 1 - 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 config/config.example.env diff --git a/bot/config.py b/bot/config.py index 9b4ac609b..793207bec 100644 --- a/bot/config.py +++ b/bot/config.py @@ -1,6 +1,7 @@ import yaml import os from pathlib import Path +import ast config_dir = Path(__file__).parent.parent.resolve() / "config" @@ -12,7 +13,7 @@ telegram_token = os.environ["TELEGRAM_TOKEN"] openai_api_key = os.environ["OPENAI_API_KEY"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) -allowed_telegram_usernames = config_yaml["allowed_telegram_usernames"] +allowed_telegram_usernames = os.environ.get('ALLOWED_TELEGRAM_USERNAMES', '').split(',') or [] new_dialog_timeout = config_yaml["new_dialog_timeout"] enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) diff --git a/config/config.example.env b/config/config.example.env new file mode 100644 index 000000000..963a3dce2 --- /dev/null +++ b/config/config.example.env @@ -0,0 +1,13 @@ +TELEGRAM_TOKEN= +OPENAI_API_KEY= + +#comma separated, without spaces e.g. username_one,username_two +ALLOWED_TELEGRAM_USERNAMES= + +# local path where to store MongoDB +MONGODB_PATH=./mongodb +# MongoDB port +MONGODB_PORT=27017 + +MONGODB_URI= + diff --git a/config/config.yml b/config/config.yml index ce1583f4d..644529724 100644 --- a/config/config.yml +++ b/config/config.yml @@ -1,5 +1,4 @@ use_chatgpt_api: true -allowed_telegram_usernames: ["me_noto"] # if empty, the bot is available to anyone. pass a username string to allow it and/or user ids as integers new_dialog_timeout: 600 # new dialog starts after timeout (in seconds) return_n_generated_images: 1 n_chat_modes_per_page: 5 From 8e965cb892f498ac47bc8bd82f2676bd7478d560 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 13:14:42 +0200 Subject: [PATCH 08/20] * Changed syntax --- bot/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/config.py b/bot/config.py index 793207bec..f7add88da 100644 --- a/bot/config.py +++ b/bot/config.py @@ -13,7 +13,7 @@ telegram_token = os.environ["TELEGRAM_TOKEN"] openai_api_key = os.environ["OPENAI_API_KEY"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) -allowed_telegram_usernames = os.environ.get('ALLOWED_TELEGRAM_USERNAMES', '').split(',') or [] +allowed_telegram_usernames = os.environ["ALLOWED_TELEGRAM_USERNAMES"].split(',') or [] new_dialog_timeout = config_yaml["new_dialog_timeout"] enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) From a27ee67c2fbd8158f4c04d0f39436b03116fe939 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 13:20:11 +0200 Subject: [PATCH 09/20] * Changed again to lambda function --- bot/config.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bot/config.py b/bot/config.py index f7add88da..b7766859d 100644 --- a/bot/config.py +++ b/bot/config.py @@ -13,7 +13,8 @@ telegram_token = os.environ["TELEGRAM_TOKEN"] openai_api_key = os.environ["OPENAI_API_KEY"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) -allowed_telegram_usernames = os.environ["ALLOWED_TELEGRAM_USERNAMES"].split(',') or [] +env_allowed_users = os.environ.get('ALLOWED_TELEGRAM_USERNAMES', '') +allowed_telegram_usernames = (lambda s: s.split(',') if s else [])(env_allowed_users) new_dialog_timeout = config_yaml["new_dialog_timeout"] enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) @@ -30,3 +31,5 @@ # files help_group_chat_video_path = Path(__file__).parent.parent.resolve() / "static" / "help_group_chat.mp4" + +split_string = lambda s: s.split(',') if s else [] \ No newline at end of file From b0b052db375dfceccbb13ac0dca4e730b1198a1b Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 19:34:22 +0200 Subject: [PATCH 10/20] * Changed way of loading env variables to make it work locally with compose --- bot/config.py | 9 +++++++-- config/config.example.env | 10 ++++++++++ docker-compose.yml | 36 ++++++++++++++++++++++++++++++++---- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/bot/config.py b/bot/config.py index b7766859d..d567b8994 100644 --- a/bot/config.py +++ b/bot/config.py @@ -3,15 +3,20 @@ from pathlib import Path import ast +from dotenv import load_dotenv + + + config_dir = Path(__file__).parent.parent.resolve() / "config" +load_dotenv(dotenv_path=config_dir / "config.env") # load yaml config with open(config_dir / "config.yml", 'r') as f: config_yaml = yaml.safe_load(f) # config parameters -telegram_token = os.environ["TELEGRAM_TOKEN"] openai_api_key = os.environ["OPENAI_API_KEY"] +telegram_token = os.environ["TELEGRAM_TOKEN"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) env_allowed_users = os.environ.get('ALLOWED_TELEGRAM_USERNAMES', '') allowed_telegram_usernames = (lambda s: s.split(',') if s else [])(env_allowed_users) @@ -19,7 +24,7 @@ enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) n_chat_modes_per_page = config_yaml.get("n_chat_modes_per_page", 5) -mongodb_uri = os.environ["MONGODB_URI"] +mongodb_uri = os.environ["MONGODB_URI"] if os.environ.get("MONGODB_URI") else f"mongodb://mongo:{os.environ['MONGODB_PORT']}" # chat_modes with open(config_dir / "chat_modes.yml", 'r') as f: diff --git a/config/config.example.env b/config/config.example.env index 963a3dce2..2f2c2557b 100644 --- a/config/config.example.env +++ b/config/config.example.env @@ -9,5 +9,15 @@ MONGODB_PATH=./mongodb # MongoDB port MONGODB_PORT=27017 +#remote URI for MongoDB MONGODB_URI= +# Mongo Express port +MONGO_EXPRESS_PORT=8081 +# Mongo Express username +MONGO_EXPRESS_USERNAME=username +# Mongo Express password +MONGO_EXPRESS_PASSWORD=password + + + diff --git a/docker-compose.yml b/docker-compose.yml index 88d3637eb..75c9f18d4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,16 @@ version: "3" services: + mongo: + container_name: mongo + image: mongo:latest + restart: always + ports: + - 127.0.0.1:${MONGODB_PORT:-27017}:${MONGODB_PORT:-27017} + volumes: + - ${MONGODB_PATH:-./mongodb}:/data/db + # TODO: add auth + chatgpt_telegram_bot: container_name: chatgpt_telegram_bot command: python3 bot/bot.py @@ -9,7 +19,25 @@ services: context: "." dockerfile: Dockerfile environment: - - MONGODB_HOST= - - MONGODB_PORT= - - MONGODB_USERNAME= - - MONGODB_PASSWORD= + TELEGRAM_TOKEN: ${TELEGRAM_TOKEN} + OPENAI_API_KEY: ${OPENAI_API_KEY} + MONGODB_URI: ${MONGODB_URI} + ALLOWED_TELEGRAM_USERNAMES: ${ALLOWED_TELEGRAM_USERNAMES} + depends_on: + - mongo + + mongo_express: + container_name: mongo-express + image: mongo-express:latest + restart: always + ports: + - 127.0.0.1:${MONGO_EXPRESS_PORT:-8081}:${MONGO_EXPRESS_PORT:-8081} + environment: + - ME_CONFIG_MONGODB_SERVER=mongo + - ME_CONFIG_MONGODB_PORT=${MONGODB_PORT:-27017} + - ME_CONFIG_MONGODB_ENABLE_ADMIN=false + - ME_CONFIG_MONGODB_AUTH_DATABASE=chatgpt_telegram_bot + - ME_CONFIG_BASICAUTH_USERNAME=${MONGO_EXPRESS_USERNAME:-username} + - ME_CONFIG_BASICAUTH_PASSWORD=${MONGO_EXPRESS_PASSWORD:-password} + depends_on: + - mongo From 95c9a60930b02131a98868dd919b2914ddfc7a12 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 19:43:29 +0200 Subject: [PATCH 11/20] * Refactoring --- bot/config.py | 2 -- docker-compose.yml | 5 ----- 2 files changed, 7 deletions(-) diff --git a/bot/config.py b/bot/config.py index d567b8994..cbb8ffb8f 100644 --- a/bot/config.py +++ b/bot/config.py @@ -36,5 +36,3 @@ # files help_group_chat_video_path = Path(__file__).parent.parent.resolve() / "static" / "help_group_chat.mp4" - -split_string = lambda s: s.split(',') if s else [] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 75c9f18d4..e8dee97b3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,11 +18,6 @@ services: build: context: "." dockerfile: Dockerfile - environment: - TELEGRAM_TOKEN: ${TELEGRAM_TOKEN} - OPENAI_API_KEY: ${OPENAI_API_KEY} - MONGODB_URI: ${MONGODB_URI} - ALLOWED_TELEGRAM_USERNAMES: ${ALLOWED_TELEGRAM_USERNAMES} depends_on: - mongo From c902a9e1f9d6a886e4c442d4345e283174488700 Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Wed, 26 Apr 2023 19:50:35 +0200 Subject: [PATCH 12/20] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 7298fa13c..b9d80051b 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,9 @@ This repo is ChatGPT re-created as Telegram Bot. **And it works great.** You can deploy your own bot, or use mine: [@chatgpt_karfly_bot](https://t.me/chatgpt_karfly_bot) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/V7XQsK?referralCode=AkEaYM) + + ## Features - Low latency replies (it usually takes about 3-5 seconds) - No request limits From a14c09a7d65e0316eb7e53336014cd474a58c0d1 Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Wed, 26 Apr 2023 19:53:57 +0200 Subject: [PATCH 13/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b9d80051b..c5ea0b56a 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ This repo is ChatGPT re-created as Telegram Bot. **And it works great.** You can deploy your own bot, or use mine: [@chatgpt_karfly_bot](https://t.me/chatgpt_karfly_bot) -[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/V7XQsK?referralCode=AkEaYM) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/V7XQsK?referralCode=AkEaYM) ## Features - Low latency replies (it usually takes about 3-5 seconds) From d7f2d31df9f098a85119205dc542a9b79ac4b77b Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Wed, 26 Apr 2023 19:54:25 +0200 Subject: [PATCH 14/20] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c5ea0b56a..3295dc3d1 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ You can deploy your own bot, or use mine: [@chatgpt_karfly_bot](https://t.me/cha [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/V7XQsK?referralCode=AkEaYM) + ## Features - Low latency replies (it usually takes about 3-5 seconds) - No request limits From 16d916044115ba021ff31c05c18add7247fa724c Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Wed, 26 Apr 2023 19:56:09 +0200 Subject: [PATCH 15/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3295dc3d1..bd966b19c 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ You can deploy your own bot, or use mine: [@chatgpt_karfly_bot](https://t.me/cha

- + --- ## 🤑 Payments From 8ab7f80f0f545e1606fae9285f2a5a0a13495ed4 Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Wed, 26 Apr 2023 20:01:07 +0200 Subject: [PATCH 16/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd966b19c..73661877c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ This repo is ChatGPT re-created as Telegram Bot. **And it works great.** You can deploy your own bot, or use mine: [@chatgpt_karfly_bot](https://t.me/chatgpt_karfly_bot) -[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/V7XQsK?referralCode=AkEaYM) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/BUrgfI?referralCode=AkEaYM) ## Features From 2803f88d92a083b49d46decd1b54bdc1decbec09 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 20:04:46 +0200 Subject: [PATCH 17/20] * Changed env variable name to match that of railway --- bot/config.py | 4 ++-- config/config.example.env | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bot/config.py b/bot/config.py index cbb8ffb8f..cb4527c42 100644 --- a/bot/config.py +++ b/bot/config.py @@ -19,12 +19,12 @@ telegram_token = os.environ["TELEGRAM_TOKEN"] use_chatgpt_api = config_yaml.get("use_chatgpt_api", True) env_allowed_users = os.environ.get('ALLOWED_TELEGRAM_USERNAMES', '') -allowed_telegram_usernames = (lambda s: s.split(',') if s else [])(env_allowed_users) +allowed_telegram_usernames = (lambda s: s.split(',') if s else [])(os.environ.get('ALLOWED_TELEGRAM_USERNAMES', '')) new_dialog_timeout = config_yaml["new_dialog_timeout"] enable_message_streaming = config_yaml.get("enable_message_streaming", True) return_n_generated_images = config_yaml.get("return_n_generated_images", 1) n_chat_modes_per_page = config_yaml.get("n_chat_modes_per_page", 5) -mongodb_uri = os.environ["MONGODB_URI"] if os.environ.get("MONGODB_URI") else f"mongodb://mongo:{os.environ['MONGODB_PORT']}" +mongodb_uri = os.environ["MONGO_URL"] if os.environ.get("MONGO_URL") else f"mongodb://mongo:{os.environ['MONGODB_PORT']}" # chat_modes with open(config_dir / "chat_modes.yml", 'r') as f: diff --git a/config/config.example.env b/config/config.example.env index 2f2c2557b..77903a7d2 100644 --- a/config/config.example.env +++ b/config/config.example.env @@ -10,7 +10,7 @@ MONGODB_PATH=./mongodb MONGODB_PORT=27017 #remote URI for MongoDB -MONGODB_URI= +MONGO_URL= # Mongo Express port MONGO_EXPRESS_PORT=8081 From 6b65cf674ff0b3c9ce3e87a07841d1e052be6de4 Mon Sep 17 00:00:00 2001 From: Marco Noto Date: Wed, 26 Apr 2023 20:08:23 +0200 Subject: [PATCH 18/20] * Removed remote mongo url altogether --- config/config.example.env | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/config.example.env b/config/config.example.env index 77903a7d2..fb4074d1d 100644 --- a/config/config.example.env +++ b/config/config.example.env @@ -9,9 +9,6 @@ MONGODB_PATH=./mongodb # MongoDB port MONGODB_PORT=27017 -#remote URI for MongoDB -MONGO_URL= - # Mongo Express port MONGO_EXPRESS_PORT=8081 # Mongo Express username From 0b70476627095a12c27c631507883431bbcfb6e2 Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Wed, 26 Apr 2023 20:10:07 +0200 Subject: [PATCH 19/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73661877c..0a325c63b 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ This repo is ChatGPT re-created as Telegram Bot. **And it works great.** You can deploy your own bot, or use mine: [@chatgpt_karfly_bot](https://t.me/chatgpt_karfly_bot) -[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/BUrgfI?referralCode=AkEaYM) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/IG_WDs?referralCode=AkEaYM) ## Features From c5e09cee58099174120ff6e9873cd9e345d57ac8 Mon Sep 17 00:00:00 2001 From: marco-emmanuel-noto <32811211+marco-emmanuel-noto@users.noreply.github.com> Date: Thu, 27 Apr 2023 11:28:10 +0200 Subject: [PATCH 20/20] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0a325c63b..94aa43e1d 100644 --- a/README.md +++ b/README.md @@ -79,13 +79,14 @@ If you want to add payments to your bot and create profitable business – write 2. Get your Telegram bot token from [@BotFather](https://t.me/BotFather) -3. Edit `config/config.example.yml` to set your tokens and run 2 commands below (*if you're advanced user, you can also edit* `config/config.example.env`): +3. Edit `config/config.example.env` to set your tokens and run the command below: ```bash - mv config/config.example.yml config/config.yml mv config/config.example.env config/config.env ``` + +4. You can edit the configs in config/config.yml to have the model behave differently. They already come with some opinionated default settings. -4. 🔥 And now **run**: +5. 🔥 And now **run**: ```bash docker-compose --env-file config/config.env up --build ```