在 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