与 Claude Sonnet 4 协作开发 Bybit 利率监控系统

在 AI 助手 Claude Sonnet 4 的协助下,我在短短 1 小时内完成了一个完整的加密货币利率监控系统的开发、测试和部署。这个系统不仅能够实时获取 Bybit 交易所的 USDC 借贷利率,还集成了 Prometheus 监控和 Grafana 可视化,最终通过 Cloudflare Tunnel 部署在家庭 Mini PC 上。

技术栈: Python + Flask + Prometheus + Grafana + Docker + Cloudflare Tunnel
开发时间: 约 1 小时
部署成本: $0(全部使用免费服务)

💻 开发环境

本项目在 VSCode + GitHub Copilot 环境中开发,通过 GitHub Copilot 使用 Claude Sonnet 4 模型进行 AI 辅助开发:

  • VSCode: 提供了优秀的 Python 开发体验,内置终端和 Git 集成让整个开发流程非常顺畅
  • GitHub Copilot + Claude Sonnet 4: 通过 GitHub Copilot 平台调用 Claude Sonnet 4 模型,实现智能代码补全、架构设计和问题解决

这种人机协作的开发模式让我能够:

  • 快速获得架构设计建议和技术方案
  • 实时解决复杂的 API 集成问题
  • 自动生成高质量的代码和文档
  • 获得即时的错误诊断和修复建议

整个项目从 0 到生产部署,真正做到了 1 小时完成,展现了 AI 辅助开发的强大潜力。


🎯 项目背景

作为一名关注 DeFi 市场的开发者,我经常需要监控各大交易所的借贷利率变化。Bybit 作为头部交易所,其 USDC 现货杠杆利率对我的投资决策很重要。然而,手动查看实在太繁琐,我需要一个自动化的监控系统。

项目需求

  • 实时获取 Bybit USDC 借贷利率
  • 提供 Web 界面和 API 接口
  • 集成 Prometheus 监控
  • 支持 Grafana 可视化
  • 低成本部署方案

与 Claude Sonnet 4 的协作过程

Phase 1: 项目初始化

我首先向 Claude 描述了我的需求:

“我想要一个监控 Bybit USDC 借贷利率的应用”

Claude 立即理解了我的需求,并提出了一个完整的技术方案:

技术架构建议:
├── Python Flask 应用
├── Bybit API 集成
├── Prometheus 指标导出
├── Docker 容器化
└── Grafana 可视化

然后我在项目里建立了一个 Guideline.md 文件,用来作为 Claude 的指导意见,之后和 Claude 的对话都会附加这个文件。

这个 Guideline.md 长这样:

# Bybit 数据监控

## 目标
- 监控 Bybit 现货杠杆中 USDC 的借贷利率,折算成年利率,并通过一个页面显示出来
- 提供一个供 Prometheus 抓取的页面,将现货杠杆中 USDC 的借贷利率提供给 Prometheus
- 当 Prometheus 抓取数据时,调用 Bybit 的现货杠杆 API 获取 USDC 的借贷利率,并将其转换为年利率

## 技术参考
- Bybit 的 Python SDK: https://github.com/bybit-exchange/pybit
- Prometheus SDK: https://github.com/prometheus/client_python
- Bybit 的现货杠杆 API 文档: https://bybit-exchange.github.io/docs/v5/spot-margin-uta/vip-margin

## 要求
- 每实现一个功能点,做一次 git commit
- 每次提交都要有清晰的 commit message

Claude 帮我初始化了项目结构,创建了基础的配置文件:

# config.py - Claude 生成的配置模板
BYBIT_TESTNET = False
BYBIT_API_KEY = ""
BYBIT_API_SECRET = ""
HOST = "0.0.0.0"
PORT = 8080
DEBUG = True
LOG_LEVEL = "INFO"

Phase 2: API 集成挑战

这里遇到了第一个技术难点。我尝试连接 Bybit API 时发现数据结构比预想的复杂:

# AI 以为的简单结构
{
  "result": {
    "hourlyBorrowRate": "0.00001234"
  }
}

# 实际的复杂嵌套结构
{
  "result": {
    "vipCoinList": [
      {
        "vipLevel": "VIP0",
        "list": [
          {
            "currency": "USDC",
            "hourlyBorrowRate": "0.0000052144590000"
          }
        ]
      }
    ]
  }
}

Claude 开始因为没有注意到这个问题,导致在解决拿到 USDC 利率时总返回 0,中间它大约尝试了 10 多次不同的方法,自己提出猜想,再编写代码验证,中间它以为是精度问题,还有服务端数据问题,尝试后发现仍然拿不到正确的利率,一直没有成功。之后我告诉它 API 实际的返回结构和我想要的字段位置,它很快就写出了正确的代码。这点其实体现了两方面:

  • Cluade 自己处理问题的能力很强,能够快速尝试不同的解决方案,不轻易放弃;
  • 但如果我们人类能够提供更准确的信息,它就能迅速定位问题并给出解决方案。

所以目前的情况是人类和 AI 的协作是非常有效的。特别是人类用户自身对于系统有更深入的理解时,AI 能够放大这种优势。

Claude 的优势体现

  • 快速理解复杂的 API 响应结构
  • 提供了健壮的错误处理逻辑
  • 使用 Decimal 确保数值精度

Phase 3: Flask 应用开发

有了可靠的数据源,Claude 帮我快速构建了 Flask 应用:

# app.py - 核心功能
@app.route('/api/usdc-rate')
def get_usdc_rate():
    hourly_rate = bybit_client.get_usdc_margin_rate()
    annual_rate = bybit_client.get_usdc_annual_rate()

    return jsonify({
        "coin": "USDC",
        "hourly_rate": str(hourly_rate),
        "annual_rate": str(annual_rate),
        "annual_rate_formatted": f"{annual_rate:.4f}%"
    })

@app.route('/metrics')
def metrics():
    # Prometheus 指标导出
    update_metrics()
    return Response(generate_latest(), mimetype=CONTENT_TYPE_LATEST)

Claude 的贡献

  • 标准化的 RESTful API 设计
  • 内置 Prometheus 指标集成
  • 完善的错误处理机制

Phase 4: 容器化部署

Claude 为我生成了完整的 Docker 配置:

# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8081
CMD ["python", "app.py"]
# docker-compose.yml
version: '3.8'
services:
  bybit-monitor:
    build: .
    ports:
      - "8080:8080"
    environment:
      - BYBIT_TESTNET=false
    restart: unless-stopped

  prometheus:
    image: prom/prometheus:latest
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    restart: unless-stopped

以上整个过程,我几乎没有自己写任何代码,只是像一个项目经理一样,提供需求和反馈。Claude 负责了所有的代码编写、架构设计和文档生成。


🏠 家庭部署方案

来看看这个项目是如何部署的,我最初想看看能不能部署到 Cloudflare Workers 上,但这个方案对 Python 的支持文档很少,部分都是基于 JavsScript / TypeScript 的,所以我决定使用更传统的方式,将应用部署在我的家庭 Mini PC 上。而 CloudFlare Tunnel 我前阵子是玩过的,可以用它来安全地暴露我的家庭网络服务。

硬件环境

  • 设备: Mac mini 2012 款的乞丐版
  • 操作系统: PVE 虚拟机
  • 部署方式: Docker Compose
  • 网络: 家庭宽带 + Cloudflare Tunnel

部署架构

🏠 家庭网络
├── 🖥️  Mac mini 2012
    └── 📦 Docker Compose
        ├── 🐍 Bybit Monitor (Port 8080)
        ├── 📊 Prometheus (Port 9090)
        └── 📈 🔐 Cloudflare Tunnel Client 

我打算使用免费版的 Grafana Cloud,这个东西支持从我自己的 Prometheus 取数据显示图表,所以我这里部署了一个 Prometheus 实例来抓取 Bybit Monitor 的指标数据。

而由于 Cloudflare Tunnel Client 也是配置在了 docker-compose.yml 里,所以从外面的 Cloudflare 网络访问过来时,将请求转发到 Prometheus 的 9090 端口,即可将 Prometheus 的数据可视化到 Grafana Cloud 上。


📊 实际运行效果

性能数据

  • 响应时间: < 10ms(本地网络)
  • 外网延迟: < 20ms(通过 Cloudflare,另外新加坡的网络确实很快)
  • 内存占用: ~150MB(包含 Prometheus)

成本分析

组件 成本 说明
Mini PC 已有设备 2012 款 Mac mini,电费约¥5/月
域名 ¥75/年 通过 Cloudflare 管理
Cloudflare Tunnel 免费 无限流量
Grafana Cloud 免费 10K metrics 限额
总计 ¥75/年 约 ¥6.25/月

🎓 技术收获与反思

Claude Sonnet 4 的优势

上下文理解能力强

  • 能够理解复杂的 API 文档
  • 快速定位问题根源
  • 提供针对性解决方案

代码质量高

  • 生成的代码结构清晰
  • 包含完善的错误处理
  • 遵循最佳实践

文档编写能力

  • 自动生成部署文档
  • 提供详细的使用说明
  • 包含故障排除指南

人机协作的最佳实践

明确需求描述

❌ "帮我做个监控系统"
✅ "监控 Bybit USDC 借贷利率,需要 API 接口、Prometheus 集成和 Docker 部署"

及时反馈问题

  • 将错误信息完整提供给 Claude
  • 包含具体的运行环境信息
  • 分享实际的 API 响应数据

渐进式开发

  • 先实现核心功能
  • 逐步增加监控和部署特性
  • 最后完善文档和测试

💡 总结

这次与 Claude Sonnet 4 的协作开发经历让我深刻体会到 AI 在软件开发中的强大潜力。在 1 小时内完成从需求分析到生产部署的全流程,这在传统开发模式下是难以想象的。

关键成功因素

清晰的需求表达 – 让 AI 准确理解你的意图
及时的问题反馈 – 构建有效的人机交互循环
合理的技术选型 – 选择 AI 熟悉的成熟技术栈
完整的基础设施 – 家庭实验环境为快速验证提供了条件

未来展望
随着 AI 编程助手的不断进化,我相信未来的软件开发将更加注重创意和需求理解,而非重复的编码工作。人类开发者的价值将体现在系统设计、业务理解和创新思维上。

这个项目不仅解决了我的实际需求,更重要的是展示了 AI 协作开发的巨大潜力。如果你也想尝试类似的快速开发体验,不妨找个周末,选择一个小项目,与 AI 一起探索编程的新可能!


项目地址: https://github.com/woodywang/market-monitor

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注