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
環境變數。您可以從 OpenWeather 和 MapTiler 取得 API 金鑰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>
替換為實際容器 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
腳本,旨在減少重建和部署的麻煩。
現在您應該在 Docker 容器中執行 TelegramBot-OpenAI-API,並完全連接到 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
,用於設定 NWS 天氣預報和警報config.ini
中保留 US NWS 的天氣警報,即使您啟用了其他獲取方法(即 OpenWeatherMap),寧可安全也不後悔docker_setup.sh
以簡化基於 Docker 的部署Dockerfile
和接收401 Unauthorized
時更好的錯誤捕獲python src/main.py
從這裡開始啟動機器人config.ini
配置 Elasticsearchsource
,因此現在可以更清楚地記錄任何外部資料拉取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-4o-mini
而不是gpt-3.5-turbo
(更新、更便宜、更好)langdetect
切換到 OpenAI APIapi_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
指令來追蹤令牌使用情況(僅適用於機器人擁有者,0 在config.ini
中停用)config.ini
)config.ini
utils.py
中config.ini
中的新日誌記錄選項escape_markdown
移動到一個單獨的.py
檔案中,無論如何它都沒有被使用api_key.py
、 bot_token.py
)Timeout
值加入config.ini
config.ini
設定模型溫度/help
和/about