# CryptoAI - 加密货币AI分析项目

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

## 功能特点

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

## 项目结构

```
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镜像:
   ```bash
   docker build -t cryptoai .
   ```

2. 运行容器:
   ```bash
   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部署:
   ```bash
   # 创建.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=钉钉密钥
```

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

## 常用命令

```bash
# 运行一次分析
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服务器，可以通过环境变量或配置文件自定义连接信息。 