# 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镜像: ```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=钉钉密钥 # Discord机器人 DISCORD_ENABLED=true/false DISCORD_WEBHOOK_URL=Discord Webhook地址 ``` 在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": "市场分析" }' ``` ## 消息通知 项目支持多种消息通知方式,可以将分析结果发送到不同的平台。 ### 钉钉机器人 在配置文件中设置钉钉机器人的Webhook URL和密钥,启用后会将分析结果发送到钉钉群聊。 ```yaml dingtalk: enabled: true webhook_url: your_dingtalk_webhook_url secret: your_dingtalk_secret ``` ### Discord机器人 在配置文件中设置Discord Webhook URL,启用后会将分析结果以精美的嵌入式消息发送到Discord频道。 ```yaml 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机器人的功能: ```bash python -m cryptoai.tests.test_discord_bot --webhook your_webhook_url ```