holidays
モジュールによる休日通知@BotFather
ボットを使用してボットをセットアップし、そのための Telegram Bot API トークンを取得します3.10.12
~ 3.12.2
でテスト済み、動作中pip install -r requirements.txt
を使用して必要な Python パッケージをインストールします (requirements.txt にリストされているバージョンでテストされ、動作します)pydub
では通常、 ffmpeg
個別にインストールする必要があります。音声メッセージ/WhisperAPI 機能を利用していない場合、 pydub
もffmpeg
実際には必要ありませんが、利用している場合は、インストールすることをお勧めします (Debian/Ubuntu Linux): sudo apt-get install ffmpeg
lynx
がインストールされている必要があります。サブプロセスとして実行する必要があります。 (Debian/Ubuntu Linux にインストールするには: sudo apt-get install lynx
)git clone https://github.com/FlyingFathead/TelegramBot-OpenAI-API/ &&
cd TelegramBot-OpenAI-API/
pip install -r requirements.txt
sudo apt-get install -y ffmpeg lynx
TELEGRAM_BOT_TOKEN
環境変数として設定するか、 config/
ディレクトリ内のbot_token.txt
という名前のテキスト ファイル (= config/bot_token.txt
) に配置します。OPENAI_API_KEY
環境変数として、またはメイン プログラム ディレクトリ内のapi_token.txt
という名前のテキスト ファイルに配置します。OPENWEATHERMAP_API_KEY
とMAPTILER_API_KEY
環境変数を設定します。 API キーは OpenWeather と MapTiler から取得できます。WEATHERAPI_KEY
環境変数を設定します。OPENROUTESERVICE_API_KEY
環境変数を設定します。PERPLEXITY_API_KEY
に設定します。config/config.ini
好みに合わせて編集して、構成と設定を調整します。python src/main.py
でプログラムを実行します。Docker がマシンにインストールされている必要があります。
Telegram Bot API キーとOpenAI API キー:
まず、GitHub からリポジトリのクローンを作成します。
git clone https://github.com/FlyingFathead/TelegramBot-OpenAI-API.git
cd TelegramBot-OpenAI-API
このプロジェクトには、API キーの入力と.env
ファイルの生成をガイドするセットアップ スクリプトが含まれています。
スクリプトを実行します。
./docker_setup.sh
スクリプトによって提供される指示に従います。 OpenAI API キーと Telegram Bot API キーを要求し、それらを検証して、資格情報を含む.env
ファイルを作成します。
.env
ファイルが作成されたら、Docker イメージをビルドする必要があります。
注目のdocker_deploy.sh
を実行して、Docker イメージを構築できます。
sudo ./docker_deploy.sh
または、手動でビルドすることもできます。
sudo docker build -t telegrambot-openai-api .
これにより、リポジトリ内のDockerfile
に基づいてイメージがローカルに構築されます。
イメージが正常に構築されたら、Docker コンテナーでボットを起動できます。
次のコマンドを使用してコンテナを実行します。
sudo docker run --env-file .env --name telegrambot-openai-api -d telegrambot-openai-api
-d
フラグは、コンテナーをデタッチ モード (バックグラウンド) で実行します。--env-file .env
フラグは、API キーをコンテナーに挿入します。以下を使用して、コンテナーが実行されているかどうかを確認できます。
sudo docker ps
これにより、実行中のすべてのコンテナが一覧表示されます。ボットが正しく実行されている場合は、リストに表示されるはずです。
ボットを停止する必要がある場合は、次のコマンドを実行して停止できます。
sudo docker stop < container_id >
<container_id>
、 docker ps
出力から取得できる実際のコンテナ ID に置き換えます。
ログ: 問題のトラブルシューティングを行うためにボットのログを表示する必要がある場合は、以下を使用できます。
sudo docker logs < container_id >
コンテナを再起動する: コンテナを停止し、再度起動したい場合は、 docker run
コマンドを再度実行するか、次のコマンドを使用して既存のコンテナを再起動します。
sudo docker start < container_id >
リポジトリが更新を受信し、それを適用する場合は、次の手順に従います。
GitHub から最新の変更を取得します。
git pull origin main
Docker イメージを再構築します。
sudo docker build -t telegrambot-openai-api .
現在実行中のコンテナを停止します。
sudo docker stop < container_id >
更新されたイメージを使用して新しいコンテナを開始します。
sudo docker run --env-file .env --name telegrambot-openai-api -d telegrambot-openai-api
再構築とデプロイの手間を軽減することを目的としたdocker_deploy.sh
スクリプトも含まれています。
これで、TelegramBot-OpenAI-API が Docker コンテナ内で実行され、Telegram と OpenAI の両方に完全に接続されるようになりました。ボットをお楽しみください!
問題が発生した場合は、ログを参照するか、リポジトリの問題ページに問い合わせてください。
config.ini
更新するconfigmerger.py
使用して、古い構成ファイルを新しいバージョンのconfig.ini
に更新します。これを行うには、既存の構成のコピーをmyconfig.txt
という名前のファイルに保存し、その中に新しいバージョン用に保持したい行を含めます。
その後、ie python src/configmerger.py myconfig.txt
実行するだけで、既存のすべての設定行が新しい設定行に移行されます。ほとんどの場合は機能しますが、 ie diff
を使用して移行の問題が発生した場合は注意して再確認することを忘れないでください。
(例) 既存の構成をマージおよび更新する方法:
python3 src/configmerger.py myconfig.txt
calc_module.py
でキャッチされるその他のエラーconfig.ini
のNWS
セクションで設定できます。config.ini
更新config.ini
で US NWS の気象警報をオンのままにすることを強くお勧めします。残念ではなく安全です。docker_setup.sh
を追加しましたDockerfile
と401 Unauthorized
受信時のエラー捕捉の改善python src/main.py
config.ini
経由で設定できるようになりましたsource
追加されるようになり、外部データの取得がより明確に記録されるようになりました。config/
の下に移動されたテキストファイルとして API キーが処理される可能性config/
下にあります。whisper-transcriber-telegram-bot
からボットトークンを読み取るための新しいロジックをインポートしましたbot_token.py
変更および更新されましたconfig_paths.py
は、構成ファイル パス ( config.ini
など) のプロジェクト全体の構成が含まれるようになりました。bot_token.txt
(使用されている場合) をconfig/
に移動します。configmerger.py
使用してカスタム構成で更新しますllama-3.1-sonar-small-128k-online
) に変更されました。EnableAgenticBrowsing = True
を介してconfig.ini
から有効化api_get_duckduckgo_search.py
に対する小さな修正。 WIP 後のエージェント リンクmodules.py
のmarkdown_to_html
)calc_module.py
が追加されました。rss_parser.py
を参照してください)perplexity_handler.py
)yfinance
pip パッケージが必要)gpt-3.5-turbo
の代わりにgpt-4o-mini
に切り替えました (より新しく、安価で、優れています)langdetect
から OpenAI API に切り替えられました。api_perplexity_search.py
のdetect_language
関数)langdetect
よりもはるかに正確で、モデルの選択でさらに活用できます。api_key.py
モジュールの修正config.ini
に追加しましたholidays
モジュールを介した休日の言及 (拡張可能)yt-dlp
など)config.ini
でElasticsearchEnabled
フラグを使用します (有効または無効にするためにTrue
またはFalse
に設定します)langdetect
と処理の修正langdetect
/usagechart
機能が追加されました ( matplotlib
が必要)/setsystemmessage <message>
(ボットが再起動するまで有効) および/resetsystemmessage
( config.ini
からリセット)/reset
コマンドが追加されました。それに応じて、 config.ini
でResetCommandEnabled
フラグとAdminOnlyReset
フラグを設定します。text_message_handler.py
に、音声メッセージ処理はvoice_message_handler.py
にconfig.ini
=> SessionTimeoutMinutes
、 MaxRetainedMessages
を参照)log_message
およびrotate_log_file
(ログ ファイル処理) => modules.py
check_global_rate_limit
=> modules.py
modules.py
参照してください。token_usage.json
をクリアする必要があります。ファイル構造は以前のバージョンから変更されています)bot_commands.py
に、 configmerger.py
バージョンを修正configmerger.py
を追加しました (古い構成フラグを新しいバージョンにマージします)config.ini
参照してください。config.ini
でカスタマイズ可能な/start
グリーティング/usage
コマンドを追加しました (ボット所有者のみ、 config.ini
で無効にする場合は 0)config.ini
参照)config.ini
を参照してください。utils.py
にモジュール化しました。config.ini
の新しいログ オプションを参照してください。escape_markdown
別の.py
ファイルに移動されましたが、とにかく未使用でしたapi_key.py
、 bot_token.py
)config.ini
にTimeout
値を追加config.ini
で設定できるようになりました/help
& /about