{"repo": "0verl1nk/ai-driven-trading", "files": {"docs/THIRD_PARTY_API.md": {"554e2d75d64bd816af7d0633baea5a8cb28835b8": {"t": 1785768933.3461418, "n": 6210, "h": "dc0709d12224fb8c", "c": "# 使用第三方OpenAI兼容API\n\n## 📡 为什么使用第三方API?\n\n使用OpenAI兼容的第三方API有以下优势:\n\n1. **成本更低** - 国内中转API通常比官方便宜30-50%\n2. **速度更快** - 国内服务器,无需科学上网\n3. **更灵活** - 可以使用本地部署的模型\n4. **避免限制** - 绕过官方API的某些限制\n\n## 🔧 配置方法\n\n### 方法1: 环境变量(推荐)\n\n编辑 `.env` 文件:\n\n```env\n# OpenAI兼容API配置\nOPENAI_API_KEY=your_api_key_here\nOPENAI_BASE_URL=https://your-api-endpoint.com/v1\n\n# 例如使用OneAPI\n# OPENAI_BASE_URL=https://api.oneapi.com/v1\n\n# 或本地vLLM服务\n# OPENAI_BASE_URL=http://localhost:8000/v1\n```\n\n### 方法2: 配置文件\n\n编辑 `config/trading_config.yaml`:\n\n```yaml\nai:\n provider: \"openai\"\n model: \"gpt-4\" # 或第三方API支持的模型名\n base_url: \"https://your-api-endpoint.com/v1\" # 可选\n```\n\n### 方法3: 代码中指定\n\n```python\nfrom src.ai.llm_interface import TradingLLM\n\nllm = TradingLLM(\n primary_provider=\"openai\",\n model=\"gpt-4\",\n base_url=\"https://your-api-endpoint.com/v1\"\n)\n```\n\n## 🌐 常见第三方API提供商\n\n### 1. OneAPI(国内热门)\n\n```env\nOPENAI_BASE_URL=https://api.oneapi.com/v1\nOPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx\n```\n\n**优势:**\n- 国内访问快\n- 支持多种模型\n- 价格便宜\n\n**模型支持:**\n- GPT-4 Turbo\n- GPT-3.5 Turbo\n- Claude (部分)\n\n### 2. API2D(国内)\n\n```env\nOPENAI_BASE_URL=https://api.api2d.com/v1\nOPENAI_API_KEY=fk-xxxxxxxxxxxxxxxx\n```\n\n### 3. CloseAI(国内)\n\n```env\nOPENAI_BASE_URL=https://api.closeai-asia.com/v1\nOPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx\n```\n\n### 4. 本地vLLM部署\n\n```env\nOPENAI_BASE_URL=http://localhost:8000/v1\nOPENAI_API_KEY=EMPTY # 本地部署通常不需要真实key\n```\n\n**启动vLLM服务:**\n```bash\n# 安装vLLM\npip install vllm\n\n# 启动服务(以Qwen为例)\npython -m vllm.entrypoints.openai.api_server \\\n --model Qwen/Qwen2.5-7B-Instruct \\\n --port 8000\n```\n\n### 5. Ollama(本地)\n\nOllama本身不是OpenAI兼容的,但可以通过适配器:\n\n```bash\n# 使用litellm作为适配器\npip install litellm\n\n# 启动代理\nlitellm --model ollama/llama3.1:70b --port 8000\n```\n\n然后配置:\n```env\nOPENAI_BASE_URL=http://localhost:8000\nOPENAI_API_KEY=EMPTY\n```\n\n## 🔍 验证配置\n\n创建测试脚本 `scripts/test_api.py`:\n\n```python\n#!/usr/bin/env python3\n\"\"\"测试第三方API连接\"\"\"\n\nimport sys\nfrom pathlib import Path\nsys.path.insert(0, str(Path(__file__).parent.parent))\n\nfrom src.ai.llm_interface import TradingLLM\nimport asyncio\n\n\nasync def test_api():\n \"\"\"测试API连接\"\"\"\n print(\"测试OpenAI兼容API...\")\n \n llm = TradingLLM(\n primary_provider=\"openai\",\n model=\"gpt-4\" # 或你的模型名\n )\n \n # 简单测试prompt\n test_prompt = \"\"\"\n {\n \"test\": \"Hello, are you working?\"\n }\n \n Please respond with valid JSON containing a \"response\" field.\n \"\"\"\n \n try:\n response = await llm.decide(test_prompt)\n print(\"✅ API连接成功!\")\n print(f\"响应: {response}\")\n return True\n except Exception as e:\n print(f\"❌ API连接失败: {e}\")\n return False\n\n\nif __name__ == \"__main__\":\n asyncio.run(test_api())\n```\n\n运行测试:\n```bash\npython scripts/test_api.py\n```\n\n## ⚙️ 模型映射\n\n不同API提供商可能使用不同的模型名称:\n\n| 官方模型 | OneAPI | API2D | 本地模型 |\n|---------|--------|-------|---------|\n| gpt-4-turbo-preview | gpt-4-turbo | gpt-4 | Qwen2.5-72B |\n| gpt-3.5-turbo | gpt-3.5-turbo | gpt-3.5-turbo | Qwen2.5-7B |\n| gpt-4o | gpt-4o | gpt-4o | - |\n\n在 `config/trading_config.yaml` 中调整:\n\n```yaml\nai:\n provider: \"openai\"\n model: \"gpt-4\" # 使用第三方API支持的模型名\n```\n\n## 💰 成本对比\n\n以每天550次决策(2.6分钟间隔)为例:\n\n| 提供商 | 模型 | 每次成本 | 每日成本 | 每月成本 |\n|--------|------|----------|----------|----------|\n| OpenAI官方 | GPT-4 Turbo | $0.10 | $55 | $1650 |\n| OneAPI | GPT-4 | $0.06 | $33 | $990 |\n| 本地vLLM | Qwen2.5-72B | $0 | $0 | $0 |\n\n**成本节省:**\n- 国内API:节省 ~40%\n- 本地部署:节省 100%(硬件成本另算)\n\n## 🚀 本地部署推荐配置\n\n### 硬件要求\n\n**最小配置(7B-13B模型):**\n- GPU: RTX 3090 (24GB) 或 A5000\n- RAM: 32GB\n- 存储: 50GB SSD\n\n**推荐配置(70B模型):**\n- GPU: A100 (80GB) 或 2x RTX 4090\n- RAM: 128GB\n- 存储: 200GB NVMe SSD\n\n### 推荐模型\n\n1. **Qwen2.5-72B-Instruct** (最推荐)\n - 性能接近GPT-4\n - 中英文双语优秀\n - 推理能力强\n\n2. **Llama 3.1 70B**\n - Meta官方模型\n - 社区支持好\n - 通用能力强\n\n3. **Qwen2.5-7B-Instruct** (预算有限)\n - 只需24GB显存\n - 速度快\n - 性能略低但可用\n\n### 部署步骤\n\n```bash\n# 1. 安装vLLM\npip install vllm\n\n# 2. 下载模型(以Qwen2.5-72B为例)\n# 方式1: 从HuggingFace下载\nhuggingface-cli download Qwen/Qwen2.5-72B-Instruct\n\n# 方式2: 从ModelScope下载(国内快)\npip install modelscope\nmodelscope download --model Qwen/Qwen2.5-72B-Instruct\n\n# 3. 启动vLLM服务\npython -m vllm.entrypoints.openai.api_server \\\n --model Qwen/Qwen2.5-72B-Instruct \\\n --port 8000 \\\n --max-model-len 8192 \\\n --gpu-memory-utilization 0.9\n\n# 4. 配置系统使用本地API\n# 编辑 .env\necho \"OPENAI_BASE_URL=http://localhost:8000/v1\" >> .env\necho \"OPENAI_API_KEY=EMPTY\" >> .env\n```\n\n## 🔒 安全注意事项\n\n### 使用第三方API时\n\n1. **不要发送敏感信息**\n - API密钥\n - 交易密钥\n - 个人隐私数据\n\n2. **验证API提供商**\n - 选择知名服务商\n - 查看用户评价\n - 测试稳定性\n\n3. **数据加密**\n - 使用HTTPS\n - 避免明文传输敏感数据\n\n### 使用本地部署时\n\n1. **网络隔离**\n - 不要暴露到公网\n - 使用防火墙\n\n2. **访问控制**\n - 设置API密钥\n - 限制访问IP\n\n## 🛠️ 故障排查\n\n### 问题1: 连接超时\n\n```bash\n# 测试连接\ncurl -X POST \"https://your-api-endpoint.com/v1/chat/completions\" \\\n -H \"Authorization: Bearer your-api-key\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"model\":\"gpt-4\",\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}'\n```\n\n### 问题2: 认证失败\n\n检查API密钥格式:\n- OpenAI官方: `sk-...`\n- OneAPI: `sk-...`\n- 本地: 可能不需要或任意字符串\n\n### 问题3: 模型不存在\n\n```bash\n# 查询可用模型\ncurl \"https://your-api-endpoint.com/v1/models\" \\\n -H \"Authorization: Bearer your-api-key\"\n```\n\n### 问题4: 响应格式不兼容\n\n某些API可能返回格式略有不同,检查日志:\n```bash\ntail -f logs/trading.log | grep \"parse\"\n```\n\n## 📊 性能对比\n\n实际测试(基于交易决策任务):\n\n| 模型 | 平均延迟 | 决策质量 | 成本/次 |\n|------|---------|---------|---------|\n| GPT-4 Turbo (官方) | 3-5秒 | ⭐⭐⭐⭐⭐ | $0.10 |\n| GPT-4 (OneAPI) | 2-4秒 | ⭐⭐⭐⭐⭐ | $0.06 |\n| Qwen2.5-72B (本地) | 1-2秒 | ⭐⭐⭐⭐ | $0 |\n| Qwen2.5-7B (本地) | 0.5-1秒 | ⭐⭐⭐ | $0 |\n\n**结论:**\n- 生产环境:GPT-4 (OneAPI) - 平衡质量和成本\n- 预算充足:GPT-4 Turbo (官方) - 最佳质量\n- 技术能力强:Qwen2.5-72B (本地) - 零成本\n\n## 🎯 推荐方案\n\n### 方案1: 国内中转API(最推荐新手)\n\n```env\nOPENAI_BASE_URL=https://api.oneapi.com/v1\nOPENAI_API_KEY=sk-xxxxxxxx\n```\n\n**优势:**\n- 简单易用\n- 成本降低40%\n- 速度快\n\n### 方案2: 混合部署(推荐进阶)\n\n```python\n# 日常决策用本地模型\nprimary_llm = TradingLLM(\n primary_provider=\"openai\",\n model=\"qwen2.5-72b\",\n base_url=\"http://localhost:8000/v1\"\n)\n\n# 关键决策用官方GPT-4验证\nvalidator_llm = TradingLLM(\n primary_provider=\"openai\",\n model=\"gpt-4-turbo-preview\"\n # 使用官方API\n)\n```\n\n### 方案3: 完全本地(推荐有GPU资源)\n\n```env\nOPENAI_BASE_URL=http://localhost:8000/v1\nOPENAI_API_KEY=EMPTY\n```\n\n配置文件:\n```yaml\nai:\n provider: \"openai\"\n model: \"Qwen/Qwen2.5-72B-Instruct\"\n```\n\n---\n\n**使用第三方API可以大幅降低成本,但要注意选择可靠的服务商。本地部署虽然初期投入大,但长期运行成本最低。🚀**\n\n"}}}}