使用说明
基础设施控制API
组织级API,用于通过GitHub Actions控制您的VPS scraper车队、MCP工具编排和双LLM路由(Qwen local/cloud+Gemini)。
建筑
GitHub Actions (Tailscale) → VPS Control Plane → ┬→ Scraper Workers
├→ Qwen (local/cloud)
├→ Gemini API
└→ MCP Tools
特性
- 铲运机车队控制:触发、监视和队列抓取作业
- 双LLM路由:自动路由到Qwen本地(如果可用)或回退到云/双子座
- MCP工具执行:通过LLM执行任何MCP工具,并进行成本跟踪
- GitHub操作集成:用于部署和编排的组织级工作流
- 尾秤安全:零信任网络,只能通过tailnet访问
- 事件日志记录:实时事件流到Redis+持久数据库存储
设置
1.VPS设置
# Install dependencies
sudo apt update && sudo apt install -y python3-pip python3-venv redis-server postgresql
# Clone repo
git clone https://github.com/DuckshotPro/infra-control-api.git /opt/infra-control-api
cd /opt/infra-control-api
# Create venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Setup database
sudo -u postgres psql
CREATE DATABASE infradb;
CREATE USER infrauser WITH PASSWORD 'yourpassword';
GRANT ALL PRIVILEGES ON DATABASE infradb TO infrauser;
\q
# Create tables
psql -U infrauser -d infradb < schema.sql
# Configure
cp .env.example .env
nano .env # Fill in your values
# Get Tailscale IP
tailscale ip -4
# Install systemd service
sudo cp infra-control-api.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable infra-control-api
sudo systemctl start infra-control-api
2.GitHub的秘密
将这些秘密添加到您的 组织 或存储库:
TS_OAUTH_CLIENT_ID:Tailscale OAuth客户端IDTS_OAUTH_SECRET:Tailscale OAuth秘密VPS_TAILSCALE_IP:您的VPS Tailscale IP(例如。,100.x.x.x)VPS_SSH_KEY:用于VPS访问的SSH私钥VPS_USERSSH用户(例如。,ubuntu)CONTROL_API_TOKEN:API身份验证的承载令牌
3.部署
推至 main 分支或手动触发:
gh workflow run deploy-listener.yml
用法
通过GitHub操作触发Scraper
gh workflow run deploy-listener.yml \
-f action=run-scraper \
-f target=site_a
执行MCP工具
gh workflow run mcp-orchestrator.yml \
-f tool=github_search_code \
-f arguments='{"query": "MCP server", "limit": 10}' \
-f llm_preference=qwen-local
查询系统状态
curl -H "Authorization: Bearer $TOKEN" \
https://your-vps.ts.net:5000/query-state
LLM路由逻辑
- 自动:如果负载<70%,则路由到本地Qwen,否则路由到云端
- qwen本地:强制本地Qwen(如果不可用,则失败)
- qwen云:使用Qwen cloud API(成本$$$)
- 双子座:使用Gemini 2.0 Flash
所有云LLM调用都内置了成本跟踪。
API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/health |
GET | 健康检查 |
/run-scraper |
POST | 队列抓取作业 |
/scraper-status/<target> |
GET | 获取刮刀状态 |
/query-state |
POST | 获取系统状态 |
/execute-mcp |
POST | 执行MCP工具 |
/admin/restart |
POST | 重新启动服务 |
下一步
- 添加铲运机工作逻辑:在后台工作人员中实施实际的刮刀执行
- 连接MCP注册表:电线
/execute-mcp到您的实际MCP服务器/工具 - 设置警报:在scraper故障时向Discord/Slack添加webhooks
- 成本仪表板:为LLM使用/成本构建Grafana仪表板
让Qwen或Gemini完成实施 🚀
