178 lines
4.1 KiB
Markdown
178 lines
4.1 KiB
Markdown
# 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服务器,可以通过环境变量或配置文件自定义连接信息。
|
||
|
||
## API服务
|
||
|
||
项目现已集成FastAPI框架,提供了HTTP API接口,方便前端系统调用。
|
||
|
||
### 启动API服务
|
||
|
||
```bash
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 启动API服务
|
||
python run_api.py
|
||
```
|
||
|
||
API服务默认运行在 `http://0.0.0.0:8000`,可以通过环境变量自定义主机和端口:
|
||
|
||
```bash
|
||
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调用分析接口:
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/api/analyze" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"prompt": "分析比特币最近的市场趋势",
|
||
"symbol": "BTC",
|
||
"task_type": "市场分析"
|
||
}'
|
||
``` |