本文档包含 A股智能分析系统的完整配置说明,适合需要高级功能或特殊部署方式的用户。
💡 快速上手请参考 README.md,本文档为进阶配置。
| 变量名 | 说明 | 默认值 | 必填 |
|---|---|---|---|
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_KEY和OPENAI_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 | 可选 |
飞书云文档配置步骤:
- 在 飞书开发者后台 创建应用
- 配置 GitHub Secrets
- 创建群组并添加应用机器人
- 在云盘文件夹中添加群组为协作者(可管理权限)
| 变量名 | 说明 | 必填 |
|---|---|---|
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 |
# 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 -fdocker-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-stoppeddocker 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.txtpython 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/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- 在企业微信群聊中添加"群机器人"
- 复制 Webhook URL
- 设置
WECHAT_WEBHOOK_URL
- 在飞书群聊中添加"自定义机器人"
- 复制 Webhook URL
- 设置
FEISHU_WEBHOOK_URL
- 与 @BotFather 对话创建 Bot
- 获取 Bot Token
- 获取 Chat ID(可通过 @userinfobot)
- 设置
TELEGRAM_BOT_TOKEN和TELEGRAM_CHAT_ID
- 开启邮箱的 SMTP 服务
- 获取授权码(非登录密码)
- 设置
EMAIL_SENDER、EMAIL_PASSWORD、EMAIL_RECEIVERS
支持的邮箱:
- QQ 邮箱:smtp.qq.com:465
- 163 邮箱:smtp.163.com:465
- Gmail:smtp.gmail.com:587
支持任意 POST JSON 的 Webhook,包括:
- 钉钉机器人
- Discord Webhook
- Slack Webhook
- Bark(iOS 推送)
- 自建服务
设置 CUSTOM_WEBHOOK_URLS,多个用逗号分隔。
Pushover 是一个跨平台的推送服务,支持 iOS 和 Android。
- 注册 Pushover 账号并下载 App
- 在 Pushover Dashboard 获取 User Key
- 创建 Application 获取 API Token
- 配置环境变量:
PUSHOVER_USER_KEY=your_user_key
PUSHOVER_API_TOKEN=your_api_token特点:
- 支持 iOS/Android 双平台
- 支持通知优先级和声音设置
- 免费额度足够个人使用(每月 10,000 条)
- 消息可保留 7 天
系统默认使用 AkShare(免费),也支持其他数据源:
- 免费,无需配置
- 数据来源:东方财富爬虫
- 需要注册获取 Token
- 更稳定,数据更全
- 设置
TUSHARE_TOKEN
- 免费,无需配置
- 作为备用数据源
- 免费,无需配置
- 支持美股/港股数据
使用 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-chatpython main.py --debug日志文件位置:
- 常规日志:
logs/stock_analysis_YYYYMMDD.log - 调试日志:
logs/stock_analysis_debug_YYYYMMDD.log
仅用于本地环境,方便查看和修改 .env 中的自选股列表。
临时启动:
python main.py --webui永久启用:
在 .env 中设置:
WEBUI_ENABLED=true如果需要修改默认端口或允许局域网访问:
WEBUI_HOST=0.0.0.0 # 默认 127.0.0.1
WEBUI_PORT=8888 # 默认 8000- 浏览器访问:
http://127.0.0.1:8000(或您配置的端口) - 支持直接编辑股票代码,保存后立即生效(下次运行分析时生效)
- 注意:此功能在 GitHub Actions 环境中会自动禁用。
A: 企业微信/飞书有消息长度限制,系统已自动分段发送。如需完整内容,可配置飞书云文档功能。
A: AkShare 使用爬虫机制,可能被临时限流。系统已配置重试机制,一般等待几分钟后重试即可。
A: 修改 STOCK_LIST 环境变量,多个代码用逗号分隔。
A: 检查是否启用了 Actions,以及 cron 表达式是否正确(注意是 UTC 时间)。
更多问题请 提交 Issue