F1赛事数据工作流机器人

一个通过Telegram机器人触发,获取F1车手排名数据并自动生成Google表格并通过邮件分享的自动化工作流工具。

  • by riyaparmar21
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 riyaparmar21/mcp-server-assignment-8-tsai

使用说明

F1展位工作流机器人

这个项目实现了一个Telegram机器人,它可以获取当前的F1车手排名,用数据创建一个谷歌表格,并将表格的链接通过电子邮件发送到指定的地址。整个工作流程经过精心编排,并通过服务器发送事件(SSE)提供实时进度更新。

特性

  • 电报机器人:用一条简单的消息触发工作流。
  • F1数据提取器:从Ergast API获取数据。
  • Google表格集成:创建并填充Google表格。
  • Gmail集成:发送一封电子邮件,其中包含指向工作表的链接。
  • SSE进度更新:提供工作流状态的实时更新。
  • Docker化:附带一个 Dockerfile 和 docker-compose.yml 为了便于设置。

项目结构

.
├── ARCHITECTURE.md
├── Dockerfile
├── README.md
├── REPO_ANALYSIS.md
├── agent.py
├── config
│   └── profiles.yaml
├── config.py
├── core
│   ├── __pycache__
│   ├── context.py
│   ├── loop.py
│   ├── session.py
│   └── strategy.py
├── credentials.json
├── docker-compose.yml
├── faiss_index
│   ├── __pycache__
│   ├── doc_index_cache.json
│   └── metadata.json
├── main.py
├── mcp_server_1.py
├── mcp_server_2.py
├── mcp_server_3.py
├── models.py
├── modules
│   ├── __pycache__
│   ├── action.py
│   ├── decision.py
│   ├── memory.py
│   ├── model_manager.py
│   ├── perception.py
│   └── tools.py
├── pyproject.toml
├── requirements.txt
├── servers
│   ├── __pycache__
│   ├── gmail_server.py
│   ├── gdrive_sheets_server.py
│   ├── sse_server.py
│   └── telegram_server.py
├── static
│   └── progress.html
├── tests
│   ├── __pycache__
│   ├── test_f1_fetcher.py
│   ├── test_gdrive_sheets_server.py
│   └── test_gmail_server.py
├── uv.lock
└── workers
    ├── __pycache__
    └── f1_fetcher.py

设置

1.创建和激活虚拟环境

Mac/Linux:

python3 -m venv venv
source venv/bin/activate

窗户:

python -m venv venv
venv\Scripts\activate.bat

或者使用安装脚本:

# Mac/Linux
./setup.sh

# Windows
setup.bat

2.安装依赖项

pip install -r requirements.txt

3.配置环境变量

创建一个 .env 项目根目录中的文件:

TELEGRAM_BOT_TOKEN=<your_telegram_bot_token>
TELEGRAM_CHAT_ID=<your_telegram_chat_id>
GOOGLE_SERVICE_ACCOUNT_FILE=credentials.json
GMAIL_TARGET_ADDRESS=<your_email_address>
FASTAPI_PORT=8000

4.设置谷歌云

  1. 在中创建项目 谷歌云控制台
  2. 启用以下API:
    • Google Drive API
    • 谷歌网页API
    • Gmail API
  3. 创建服务帐户并下载密钥 credentials.json
  4. 地方 credentials.json 在项目根目录中(或更新 GOOGLE_SERVICE_ACCOUNT_FILE 在 .env)

5.设置Telegram Bot

  1. 打开Telegram并搜索 @植物学家
  2. 发送 /newbot 并遵循指示
  3. 复制机器人令牌并将其添加到 .env 作为 TELEGRAM_BOT_TOKEN

运行应用程序

  1. 运行应用程序: python main.py
  2. 向机器人发送任何消息 以触发工作流。
  3. 您将收到:“正在处理——完成后我会通知你的。”
  4. 等待1-3分钟 -机器人正在后台处理
  5. 您将收到:
    • 带有Google Sheet链接的最终电报消息
    • 带有表格链接的电子邮件
  6. 可选的:打开 http://localhost:8000/static/progress.html 在浏览器中查看实时进度

看 工作流_GUIDE.md 详细解释接下来会发生什么。

使用Docker运行

  • 构建并运行容器: docker-compose up --build

这将启动应用程序并在端口8000上公开SSE服务器。