Go to file
2025-06-28 23:32:56 +08:00
cryptoai update 2025-06-28 23:32:56 +08:00
.dockerignore update 2025-04-28 16:30:08 +08:00
.gitignore update 2025-05-01 13:46:37 +08:00
docker-compose.yml update 2025-06-28 23:32:56 +08:00
Dockerfile update 2025-04-29 21:01:52 +08:00
README.md update 2025-05-01 13:46:37 +08:00
requirements.txt update 2025-06-10 15:52:20 +08:00
run_api.py update 2025-04-29 21:01:52 +08:00
run_monitor.py update 2025-05-04 14:33:59 +08:00
run.py update 2025-05-04 14:33:59 +08:00
test.py update 2025-06-28 23:25:00 +08:00

CryptoAI - 加密货币AI分析项目

基于Python的加密货币AI分析的AIAgent项目利用人工智能对加密货币市场进行分析和预测。

功能特点

  • 使用Binance API获取实时加密货币数据
  • 利用DeepSeek大模型进行市场分析和预测
  • 提供市场趋势、价格预测和交易建议
  • 支持多种加密货币分析
  • 通过钉钉机器人和Discord Webhook发送分析结果

项目结构

cryptoai/
├── api/           # 与Binance API交互的模块
├── agents/        # AI智能体定义和实现
├── models/        # 模型定义和训练
├── utils/         # 工具函数
├── data/          # 数据存储
├── config/        # 配置文件
└── main.py        # 主程序入口

安装与设置

本地部署

  1. 克隆项目仓库
  2. 安装依赖:pip install -r requirements.txt
  3. cryptoai/config/config.yaml中配置Binance API密钥和DeepSeek API密钥
  4. 运行python run.py启动应用

Docker部署

  1. 构建Docker镜像:

    docker build -t cryptoai .
    
  2. 运行容器:

    docker run -d --name cryptoai \
      -v $(pwd)/cryptoai/config/config.yaml:/app/cryptoai/config/config.yaml \
      -v cryptoai_data:/app/cryptoai/data \
      -v cryptoai_logs:/app/logs \
      -e BINANCE_API_KEY=your_key \
      -e BINANCE_API_SECRET=your_secret \
      cryptoai
    
  3. 使用Docker Compose部署:

    # 创建.env文件可以基于.env-example复制
    cp .env-example .env
    # 编辑.env文件填入API密钥和其他配置
    vi .env
    # 启动服务
    docker-compose up -d
    

配置方式

项目支持两种配置方式:

1. 配置文件

cryptoai/config/config.yaml中配置所有设置。示例可参考cryptoai/config/config.example.yaml

2. 环境变量

通过环境变量覆盖配置文件中的设置,支持以下环境变量:

# 数据库配置
DB_HOST=数据库主机
DB_PORT=数据库端口
DB_USER=数据库用户名
DB_PASSWORD=数据库密码
DB_NAME=数据库名称

# Binance API
BINANCE_API_KEY=币安API密钥
BINANCE_API_SECRET=币安密钥
BINANCE_TEST_MODE=true/false

# DeepSeek API
DEEPSEEK_API_KEY=DeepSeek API密钥
DEEPSEEK_MODEL=使用的模型

# OKX API
OKX_API_KEY=OKX API密钥
OKX_API_SECRET=OKX密钥
OKX_PASSPHRASE=OKX密码

# 钉钉机器人
DINGTALK_ENABLED=true/false
DINGTALK_WEBHOOK_URL=钉钉Webhook地址
DINGTALK_SECRET=钉钉密钥

# Discord机器人
DISCORD_ENABLED=true/false
DISCORD_WEBHOOK_URL=Discord Webhook地址

在Docker中可以通过-e参数或.env文件传递环境变量。

常用命令

# 运行一次分析
python run.py --run-once

# 分析特定加密货币
python run.py --symbol BTCUSDT

# 使用黄金分析智能体
python run.py --agent gold

# Docker中运行
docker run cryptoai --run-once --agent crypto

环境要求

  • Python 3.9+
  • MySQL 8.0+使用远程MySQL数据库
  • 详细依赖见requirements.txt

数据库配置

项目使用SQLAlchemy ORM连接MySQL数据库用于存储分析结果。默认连接到远程MySQL服务器可以通过环境变量或配置文件自定义连接信息。

API服务

项目现已集成FastAPI框架提供了HTTP API接口方便前端系统调用。

启动API服务

# 安装依赖
pip install -r requirements.txt

# 启动API服务
python run_api.py

API服务默认运行在 http://0.0.0.0:8000,可以通过环境变量自定义主机和端口:

API_HOST=127.0.0.1 API_PORT=8080 python run_api.py

API文档

启动服务后可以通过以下URL访问API文档

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

主要API接口

  • GET / - API信息
  • GET /health - 健康检查
  • POST /api/analyze - 分析加密货币市场趋势
  • GET /api/token-usage - 获取DeepSeek API的token使用统计
  • POST /api/export-usage - 导出token使用统计

API调用示例

使用curl调用分析接口

curl -X POST "http://localhost:8000/api/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "分析比特币最近的市场趋势",
    "symbol": "BTC",
    "task_type": "市场分析" 
  }'

消息通知

项目支持多种消息通知方式,可以将分析结果发送到不同的平台。

钉钉机器人

在配置文件中设置钉钉机器人的Webhook URL和密钥启用后会将分析结果发送到钉钉群聊。

dingtalk:
  enabled: true
  webhook_url: your_dingtalk_webhook_url
  secret: your_dingtalk_secret

Discord机器人

在配置文件中设置Discord Webhook URL启用后会将分析结果以精美的嵌入式消息发送到Discord频道。

discord:
  enabled: true
  webhook_url: your_discord_webhook_url
  username: CryptoAI分析机器人
  avatar_url: https://cdn-icons-png.flaticon.com/512/2878/2878497.png

测试Discord机器人

可以使用以下命令测试Discord机器人的功能

python -m cryptoai.tests.test_discord_bot --webhook your_webhook_url