Skip to content

Latest commit

 

History

History
379 lines (275 loc) · 9.28 KB

File metadata and controls

379 lines (275 loc) · 9.28 KB

📖 完整配置与部署指南

本文档包含 A股智能分析系统的完整配置说明,适合需要高级功能或特殊部署方式的用户。

💡 快速上手请参考 README.md,本文档为进阶配置。

📑 目录


环境变量完整列表

AI 模型配置

变量名 说明 默认值 必填
GEMINI_API_KEY Google Gemini API Key - ✅*
GEMINI_MODEL 主模型名称 gemini-3-flash-preview
GEMINI_MODEL_FALLBACK 备选模型 gemini-2.5-flash
OPENAI_API_KEY OpenAI 兼容 API Key - 可选
OPENAI_BASE_URL OpenAI 兼容 API 地址 - 可选
OPENAI_MODEL OpenAI 模型名称 gpt-4o 可选

*注:GEMINI_API_KEYOPENAI_API_KEY 至少配置一个

通知渠道配置

变量名 说明 必填
WECHAT_WEBHOOK_URL 企业微信机器人 Webhook URL 可选
FEISHU_WEBHOOK_URL 飞书机器人 Webhook URL 可选
TELEGRAM_BOT_TOKEN Telegram Bot Token 可选
TELEGRAM_CHAT_ID Telegram Chat ID 可选
EMAIL_SENDER 发件人邮箱 可选
EMAIL_PASSWORD 邮箱授权码(非登录密码) 可选
EMAIL_RECEIVERS 收件人邮箱(逗号分隔,留空发给自己) 可选
CUSTOM_WEBHOOK_URLS 自定义 Webhook(逗号分隔) 可选
CUSTOM_WEBHOOK_BEARER_TOKEN 自定义 Webhook Bearer Token 可选
PUSHOVER_USER_KEY Pushover 用户 Key 可选
PUSHOVER_API_TOKEN Pushover API Token 可选

飞书云文档配置(可选,解决消息截断问题)

变量名 说明 必填
FEISHU_APP_ID 飞书应用 ID 可选
FEISHU_APP_SECRET 飞书应用 Secret 可选
FEISHU_FOLDER_TOKEN 飞书云盘文件夹 Token 可选

飞书云文档配置步骤:

  1. 飞书开发者后台 创建应用
  2. 配置 GitHub Secrets
  3. 创建群组并添加应用机器人
  4. 在云盘文件夹中添加群组为协作者(可管理权限)

搜索服务配置

变量名 说明 必填
TAVILY_API_KEYS Tavily 搜索 API Key(推荐) 推荐
BOCHA_API_KEYS 博查搜索 API Key(中文优化) 可选
SERPAPI_API_KEYS SerpAPI 备用搜索 可选

数据源配置

变量名 说明 必填
TUSHARE_TOKEN Tushare Pro Token 可选

其他配置

变量名 说明 默认值
STOCK_LIST 自选股代码(逗号分隔) -
MAX_WORKERS 并发线程数 3
MARKET_REVIEW_ENABLED 启用大盘复盘 true
SCHEDULE_ENABLED 启用定时任务 false
SCHEDULE_TIME 定时执行时间 18:00
LOG_DIR 日志目录 ./logs

Docker 部署

快速启动

# 1. 克隆仓库
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 2. 配置环境变量
cp .env.example .env
vim .env  # 填入 API Key 和配置

# 3. 启动容器
docker-compose up -d

# 4. 查看日志
docker-compose logs -f

Docker Compose 配置

docker-compose.yml 已配置好定时任务模式:

version: '3.8'
services:
  stock-analysis:
    build: .
    environment:
      - TZ=Asia/Shanghai
    env_file:
      - .env
    volumes:
      - ./data:/app/data      # 数据持久化
      - ./logs:/app/logs      # 日志持久化
      - ./reports:/app/reports # 报告持久化
    restart: unless-stopped

手动构建镜像

docker build -t stock-analysis .
docker run -d --env-file .env -v ./data:/app/data stock-analysis

本地运行详细配置

安装依赖

# Python 3.10+ 推荐
pip install -r requirements.txt

# 或使用 conda
conda create -n stock python=3.10
conda activate stock
pip install -r requirements.txt

命令行参数

python main.py                        # 完整分析(个股 + 大盘复盘)
python main.py --market-review        # 仅大盘复盘
python main.py --no-market-review     # 仅个股分析
python main.py --stocks 600519,300750 # 指定股票
python main.py --dry-run              # 仅获取数据,不 AI 分析
python main.py --no-notify            # 不发送推送
python main.py --schedule             # 定时任务模式
python main.py --debug                # 调试模式(详细日志)
python main.py --workers 5            # 指定并发数

定时任务配置

GitHub Actions 定时

编辑 .github/workflows/daily_analysis.yml:

schedule:
  # UTC 时间,北京时间 = UTC + 8
  - cron: '0 10 * * 1-5'   # 周一到周五 18:00(北京时间)

常用时间对照:

北京时间 UTC cron 表达式
09:30 '30 1 * * 1-5'
12:00 '0 4 * * 1-5'
15:00 '0 7 * * 1-5'
18:00 '0 10 * * 1-5'
21:00 '0 13 * * 1-5'

本地定时任务

# 启动定时模式(默认 18:00 执行)
python main.py --schedule

# 或使用 crontab
crontab -e
# 添加:0 18 * * 1-5 cd /path/to/project && python main.py

通知渠道详细配置

企业微信

  1. 在企业微信群聊中添加"群机器人"
  2. 复制 Webhook URL
  3. 设置 WECHAT_WEBHOOK_URL

飞书

  1. 在飞书群聊中添加"自定义机器人"
  2. 复制 Webhook URL
  3. 设置 FEISHU_WEBHOOK_URL

Telegram

  1. 与 @BotFather 对话创建 Bot
  2. 获取 Bot Token
  3. 获取 Chat ID(可通过 @userinfobot)
  4. 设置 TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID

邮件

  1. 开启邮箱的 SMTP 服务
  2. 获取授权码(非登录密码)
  3. 设置 EMAIL_SENDEREMAIL_PASSWORDEMAIL_RECEIVERS

支持的邮箱:

  • QQ 邮箱:smtp.qq.com:465
  • 163 邮箱:smtp.163.com:465
  • Gmail:smtp.gmail.com:587

自定义 Webhook

支持任意 POST JSON 的 Webhook,包括:

  • 钉钉机器人
  • Discord Webhook
  • Slack Webhook
  • Bark(iOS 推送)
  • 自建服务

设置 CUSTOM_WEBHOOK_URLS,多个用逗号分隔。

Pushover(iOS/Android 推送)

Pushover 是一个跨平台的推送服务,支持 iOS 和 Android。

  1. 注册 Pushover 账号并下载 App
  2. Pushover Dashboard 获取 User Key
  3. 创建 Application 获取 API Token
  4. 配置环境变量:
PUSHOVER_USER_KEY=your_user_key
PUSHOVER_API_TOKEN=your_api_token

特点:

  • 支持 iOS/Android 双平台
  • 支持通知优先级和声音设置
  • 免费额度足够个人使用(每月 10,000 条)
  • 消息可保留 7 天

数据源配置

系统默认使用 AkShare(免费),也支持其他数据源:

AkShare(默认)

  • 免费,无需配置
  • 数据来源:东方财富爬虫

Tushare Pro

  • 需要注册获取 Token
  • 更稳定,数据更全
  • 设置 TUSHARE_TOKEN

Baostock

  • 免费,无需配置
  • 作为备用数据源

YFinance

  • 免费,无需配置
  • 支持美股/港股数据

高级功能

港股支持

使用 hk 前缀指定港股代码:

STOCK_LIST=600519,hk00700,hk01810

多模型切换

配置多个模型,系统自动切换:

# Gemini(主力)
GEMINI_API_KEY=xxx
GEMINI_MODEL=gemini-3-flash-preview

# OpenAI 兼容(备选)
OPENAI_API_KEY=xxx
OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_MODEL=deepseek-chat

调试模式

python main.py --debug

日志文件位置:

  • 常规日志:logs/stock_analysis_YYYYMMDD.log
  • 调试日志:logs/stock_analysis_debug_YYYYMMDD.log

本地 WebUI 管理界面

仅用于本地环境,方便查看和修改 .env 中的自选股列表。

1. 启动方式

临时启动

python main.py --webui

永久启用: 在 .env 中设置:

WEBUI_ENABLED=true

2. 自定义配置

如果需要修改默认端口或允许局域网访问:

WEBUI_HOST=0.0.0.0    # 默认 127.0.0.1
WEBUI_PORT=8888       # 默认 8000

3. 访问与使用

  • 浏览器访问:http://127.0.0.1:8000 (或您配置的端口)
  • 支持直接编辑股票代码,保存后立即生效(下次运行分析时生效)
  • 注意:此功能在 GitHub Actions 环境中会自动禁用。

常见问题

Q: 推送消息被截断?

A: 企业微信/飞书有消息长度限制,系统已自动分段发送。如需完整内容,可配置飞书云文档功能。

Q: 数据获取失败?

A: AkShare 使用爬虫机制,可能被临时限流。系统已配置重试机制,一般等待几分钟后重试即可。

Q: 如何添加自选股?

A: 修改 STOCK_LIST 环境变量,多个代码用逗号分隔。

Q: GitHub Actions 没有执行?

A: 检查是否启用了 Actions,以及 cron 表达式是否正确(注意是 UTC 时间)。


更多问题请 提交 Issue