# ❓ 常见问题解答 (FAQ) 本文档整理了用户在使用过程中遇到的常见问题及解决方案。 --- ## 📊 数据相关 ### Q1: 美股代码(如 AMD, AAPL)分析时价格显示不正确? **现象**:输入美股代码后,显示的价格明显不对(如 AMD 显示 7.33 元),或被误识别为 A 股。 **原因**:早期版本代码匹配逻辑优先尝试国内 A 股规则,导致代码冲突。 **解决方案**: 1. 已在 v2.3.0 修复,系统现在支持美股代码自动识别 2. 如仍有问题,可在 `.env` 中设置: ```bash YFINANCE_PRIORITY=0 ``` 这将优先使用 Yahoo Finance 数据源获取美股数据 > 📌 相关 Issue: [#153](https://github.com/ZhuLinsen/daily_stock_analysis/issues/153) --- ### Q2: 报告中"量比"字段显示为空或 N/A? **现象**:分析报告中量比数据缺失,影响 AI 对缩放量的判断。 **原因**:默认的某些实时行情源(如新浪接口)不提供量比字段。 **解决方案**: 1. 已在 v2.3.0 修复,腾讯接口现已支持量比解析 2. 推荐配置实时行情源优先级: ```bash REALTIME_SOURCE_PRIORITY=tencent,akshare_sina,efinance,akshare_em ``` 3. 系统已内置 5 日均量计算作为兜底逻辑 > 📌 相关 Issue: [#155](https://github.com/ZhuLinsen/daily_stock_analysis/issues/155) --- ### Q3: Tushare 获取数据失败,提示 Token 不对? **现象**:日志显示 `Tushare 获取数据失败: 您的token不对,请确认` **解决方案**: 1. **无 Tushare 账号**:无需配置 `TUSHARE_TOKEN`,系统会自动使用免费数据源(AkShare、Efinance) 2. **有 Tushare 账号**:确认 Token 是否正确,可在 [Tushare Pro](https://tushare.pro/weborder/#/login?reg=834638 ) 个人中心查看 3. 本项目所有核心功能均可在无 Tushare 的情况下正常运行 --- ### Q4: 数据获取被限流或返回为空? **现象**:日志显示 `熔断器触发` 或数据返回 `None` **原因**:免费数据源(东方财富、新浪等)有反爬机制,短时间大量请求会被限流。 **解决方案**: 1. 系统已内置多数据源自动切换和熔断保护 2. 减少自选股数量,或增加请求间隔 3. 避免频繁手动触发分析 --- ## ⚙️ 配置相关 ### Q5: GitHub Actions 运行失败,提示找不到环境变量? **现象**:Actions 日志显示 `GEMINI_API_KEY` 或 `STOCK_LIST` 未定义 **原因**:GitHub 区分 `Secrets`(加密)和 `Variables`(普通变量),配置位置不对会导致读取失败。 **解决方案**: 1. 进入仓库 `Settings` → `Secrets and variables` → `Actions` 2. **Secrets**(点击 `New repository secret`):存放敏感信息 - `GEMINI_API_KEY` - `OPENAI_API_KEY` - `TELEGRAM_BOT_TOKEN` - 各类 Webhook URL 3. **Variables**(点击 `Variables` 标签):存放非敏感配置 - `STOCK_LIST` - `GEMINI_MODEL` - `REPORT_TYPE` --- ### Q6: 修改 .env 文件后配置没有生效? **解决方案**: 1. 确保 `.env` 文件位于项目根目录 2. **Docker 部署**:修改后需重启容器 ```bash docker-compose down && docker-compose up -d ``` 3. **GitHub Actions**:`.env` 文件不生效,必须在 Secrets/Variables 中配置 4. 检查是否有多个 `.env` 文件(如 `.env.local`)导致覆盖 --- ### Q7: 如何配置代理访问 Gemini/OpenAI API? **解决方案**: 在 `.env` 中配置: ```bash USE_PROXY=true PROXY_HOST=127.0.0.1 PROXY_PORT=10809 ``` > ⚠️ 注意:代理配置仅对本地运行生效,GitHub Actions 环境无需配置代理。 --- ## 📱 推送相关 ### Q8: 机器人推送失败,提示消息过长? **现象**:分析成功但未收到推送,日志显示 400 错误或 `Message too long` **原因**:不同平台消息长度限制不同: - 企业微信:4KB - 飞书:20KB - 钉钉:20KB **解决方案**: 1. **自动分块**:最新版本已实现长消息自动切割 2. **单股推送模式**:设置 `SINGLE_STOCK_NOTIFY=true`,每分析完一只股票立即推送 3. **精简报告**:设置 `REPORT_TYPE=simple` 使用精简格式 --- ### Q9: Telegram 推送收不到消息? **解决方案**: 1. 确认 `TELEGRAM_BOT_TOKEN` 和 `TELEGRAM_CHAT_ID` 都已配置 2. 获取 Chat ID 方法: - 给 Bot 发送任意消息 - 访问 `https://api.telegram.org/bot/getUpdates` - 在返回的 JSON 中找到 `chat.id` 3. 确保 Bot 已被添加到目标群组(如果是群聊) 4. 本地运行时需要能访问 Telegram API(可能需要代理) --- ### Q10: 企业微信 Markdown 格式显示不正常? **解决方案**: 1. 企业微信对 Markdown 支持有限,可尝试设置: ```bash WECHAT_MSG_TYPE=text ``` 2. 这将发送纯文本格式的消息 --- ## 🤖 AI 模型相关 ### Q11: Gemini API 返回 429 错误(请求过多)? **现象**:日志显示 `Resource has been exhausted` 或 `429 Too Many Requests` **解决方案**: 1. Gemini 免费版有速率限制(约 15 RPM) 2. 减少同时分析的股票数量 3. 增加请求延迟: ```bash GEMINI_REQUEST_DELAY=5 ANALYSIS_DELAY=10 ``` 4. 或切换到 OpenAI 兼容 API 作为备选 --- ### Q12: 如何使用 DeepSeek 等国产模型? **配置方法**: ```bash # 不需要配置 GEMINI_API_KEY OPENAI_API_KEY=sk-xxxxxxxx OPENAI_BASE_URL=https://api.deepseek.com/v1 OPENAI_MODEL=deepseek-chat ``` 支持的模型服务: - DeepSeek: `https://api.deepseek.com/v1` - 通义千问: `https://dashscope.aliyuncs.com/compatible-mode/v1` - Moonshot: `https://api.moonshot.cn/v1` --- ## 🐳 Docker 相关 ### Q13: Docker 容器启动后立即退出? **解决方案**: 1. 查看容器日志: ```bash docker logs ``` 2. 常见原因: - 环境变量未正确配置 - `.env` 文件格式错误(如有多余空格) - 依赖包版本冲突 --- ### Q14: Docker 中 API 服务无法访问? **解决方案**: 1. 确保启动命令包含 `--host 0.0.0.0`(不能是 127.0.0.1) 2. 检查端口映射是否正确: ```yaml ports: - "8000:8000" ``` --- ## 🔧 其他问题 ### Q15: 如何只运行大盘复盘,不分析个股? **方法**: ```bash # 本地运行 python main.py --market-only # GitHub Actions # 手动触发时选择 mode: market-only ``` --- ### Q16: 分析结果中买入/观望/卖出数量统计不对? **原因**:早期版本使用正则匹配统计,可能与实际建议不一致。 **解决方案**:已在最新版本中修复,AI 模型现在会直接输出 `decision_type` 字段用于准确统计。 --- ## 💬 还有问题? 如果以上内容没有解决你的问题,欢迎: 1. 查看 [完整配置指南](full-guide.md) 2. 搜索或提交 [GitHub Issue](https://github.com/ZhuLinsen/daily_stock_analysis/issues) 3. 查看 [更新日志](CHANGELOG.md) 了解最新修复 --- *最后更新:2026-02-01*