这是一个提供中国银行汇率查询服务的 Telegram 机器人。用户可以通过简单的命令获取最新的汇率信息。
https://t.me/chinaBank_Exchange_bot
- FastAPI
- 查询最新的中国银行外汇汇率
- 支持多种货币转换
- 实时数据更新和异步缓存
- 用户日志隐私保护(可关闭)
- 使用Claude Pro开发
-
安装
uv(如果尚未安装)pip install uv
-
创建并激活虚拟环境
# 创建虚拟环境 uv venv .venv # 激活虚拟环境 (根据你的 Shell选择) # PowerShell .\.venv\Scripts\Activate.ps1 # Windows CMD .\.venv\Scripts\activate.bat # Linux/macOS source ./.venv/bin/activate
-
安装项目依赖
uv pip install -r requirements.txt
-
配置环境变量
- 复制
.env.example文件并重命名为.env。 - 在
.env文件中,填入你的TELEGRAM_BOT_TOKEN。 WEBHOOK_URL暂时可以留空。
- 复制
-
启动应用服务器
uvicorn main:app --host 0.0.0.0 --port 7860 --reload
服务器将在
http://localhost:7860上运行。 -
设置 Webhook 为了让 Telegram 能够将消息发送到你的本地服务器,你需要一个公共 URL。
ngrok是一个很好的工具。ngrok http 7860
ngrok会提供一个https://开头的 URL,例如https://xxxx-xxxx.ngrok-free.app。 -
更新
.env文件- 将
ngrok提供的 URL 填入.env文件的WEBHOOK_URL变量中。 - 由于应用以
--reload模式运行,它会自动重启并使用新的 Webhook URL 设置自己。
- 将
现在,你的机器人应该可以接收和响应消息了。
如果你安装了 Docker 和 Docker Compose,你可以使用 docker compose.yml 文件来简化部署过程。
-
配置环境变量
- 复制
.env.example文件并重命名为.env。 - 在
.env文件中,填入你的TELEGRAM_BOT_TOKEN。 - 使用
ngrok或其他服务获取一个公共的httpsURL,并将其填入WEBHOOK_URL。
- 复制
-
构建并启动容器
docker compose up --build -d
--build标志会强制重新构建镜像,确保你使用的是最新的代码。-d标志会在后台运行容器。
-
查看日志
docker compose logs -f
-
停止容器
docker compose down
此项目已配置为在 Hugging Face Space 上运行。
下载Dockerfile.hf并改名为Dockerfike上传即可
部署后,您需要:
-
在 Space 设置中配置以下环境变量:
TELEGRAM_BOT_TOKEN: 您的 Telegram 机器人令牌WEBHOOK_URL: 您的 Hugging Face Space URL (例如 https://yourname-project.hf.space)CACHE_TTL_MINUTES: 缓存超时时间(分钟)
-
确保 Telegram 机器人已通过 BotFather 创建并获取了令牌
-
部署完成后,机器人将自动设置 webhook 并开始响应用户消息
