美股 AI 智能研报系统零基础部署指南

type
Post
status
Published
date
Mar 9, 2026
slug
yaobao
summary
这套系统是一个全自动的”虚拟华尔街宏观策略师”。它每天通过 Tavily 搜索引擎抓取全网最新美股新闻,交给大模型(GPT-4o 等)进行深度分析,然后将排版精美的研报自动发布到 Notion 数据库,并可选通过微信推送到你的手机。
tags
AI研报
category
技术分享
icon
password

美股 AI 智能研报系统 (Yanbao) 零基础部署指南

适用于完全不懂代码的用户 · 2026年3月
这套系统是一个全自动的”虚拟华尔街宏观策略师”。它每天通过 Tavily 搜索引擎抓取全网最新美股新闻,交给大模型(GPT-4o 等)进行深度分析,然后将排版精美的研报自动发布到 Notion 数据库,并可选通过微信推送到你的手机。
整个部署流程分为 5 个阶段,按顺序完成即可。预计总耗时:60~90 分钟。

第一阶段:申请 API 密钥

在开始前,你需要前往以下 4 个平台注册账号并获取密钥(Key)。密钥就像各平台给你的”通行证”,脚本运行时会用它们来调用各种服务。

1.1 大模型密钥(LLM_API_KEY)

推荐平台:OpenRouter(openrouter.ai)
  1. 打开 openrouter.ai,点击右上角 Sign In,用 Google 账号注册。
  1. 注册完成后进入控制台,点击左侧 Credits,充值 5 美元(约 36 元人民币,够用很久)。
  1. 点击左侧 Keys → 点击 Create Key,名称随意填写,复制生成的密钥(格式:sk-or-v1-…)。
  1. 将此密钥命名为 LLM_API_KEY,妥善保存。
💡 OpenRouter 支持切换几十种大模型。默认使用 openai/gpt-4o,你也可以在 Bitwarden Secrets Manager 中修改 LLM_MODEL_NAME 的值,改为 anthropic/claude-3-5-sonnet 等其他模型。

1.2 AI 搜索引擎密钥(TAVILY_API_KEY)

推荐平台:Tavily(tavily.com)
  1. 打开 tavily.com,点击 Get Started,用 Google 账号注册。
  1. 登录后在控制台首页即可看到你的 API Key(格式:tvly-…),点击复制。
  1. 将此密钥命名为 TAVILY_API_KEY,妥善保存。
💡 免费套餐每月有 1000 次搜索配额,每日发一篇研报绰绰有余。

1.3 Notion 密钥与数据库 ID

Notion 需要两步设置:创建数据库 + 创建 API 集成。
第一步:创建 Notion 数据库
  1. 打开 notion.so,新建一个页面,在页面里输入 /database,选择 Table(表格)。
  1. 确保数据库包含以下属性列(在表格右侧点击 + 添加):
      • title(标题,默认存在)
      • slug(文本类型 Text)
      • date(日期类型 Date)
      • summary(文本类型 Text)
      • type(单选 Select)
      • category(单选 Select)
      • tags(多选 Multi-select)
      • status(单选 Select)
  1. 在浏览器地址栏复制数据库 ID。URL 格式如下:
其中 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(32位字符)即为 NOTION_DATABASE_ID
第二步:创建 API 集成
  1. 前往 notion.so/my-integrations,点击 New Integration。
  1. 填写名称(如 Yanbao),选择你的工作区,点击 Submit。
  1. 复制 Internal Integration Secret(格式:secret_…),命名为 NOTION_API_KEY
  1. 回到你的 Notion 数据库页面,点击右上角 ··· → Connections → 搜索并添加你刚创建的集成。

1.4 微信推送 Token(可选)

如需每天研报发布后收到微信通知,可注册 PushPlus:
  1. 前往 pushplus.plus,用微信扫码登录。
  1. 复制首页显示的 Token,命名为 PUSHPLUS_TOKEN
  1. 如需群发(推送给多人),还需要创建群组,复制 Topic,命名为 PUSHPLUS_TOPIC
💡 不配置此项完全不影响研报生成和 Notion 发布,仅缺少微信通知功能。

1.5 密钥汇总表

收集完毕后,建议将所有密钥整理如下(可用密码管理器保存):
变量名
必填?
说明
LLM_API_KEY
必填
OpenRouter 大模型密钥,sk-or-v1-... 开头
LLM_API_URL
可选
默认为 OpenRouter,也可填入其他兼容 API 地址
LLM_MODEL_NAME
可选
默认 openai/gpt-4o,可改为其他模型
TAVILY_API_KEY
必填
Tavily 搜索密钥,tvly-... 开头
NOTION_API_KEY
必填
Notion 集成密钥,secret_... 开头
NOTION_DATABASE_ID
必填
Notion 数据库 ID(32位字符串)
FINAL_URL_PREFIX
必填
研报链接前缀,如 https://your-blog.com
PUSHPLUS_TOKEN
可选
PushPlus 微信推送 Token
PUSHPLUS_TOPIC
可选
PushPlus 群组 Topic(群发时需要)
MODE_SWITCH
可选
auto/daily/weekly,默认 auto(周日自动发周报)

第二阶段:服务器环境搭建

你需要一台能长期运行的 Linux 云服务器(VPS)。国内腾讯云、阿里云轻量服务器均可,海外推荐 Vultr 或 Hetzner。系统选 Ubuntu 22.04 或 24.04。

步骤 1:连接服务器

在本地电脑打开终端(Mac 直接用终端,Windows 用 PowerShell 或 MobaXterm),执行:
输入服务器密码后回车,看到命令行提示符说明连接成功。

步骤 2:创建项目目录

步骤 3:创建 Python 虚拟环境

虚拟环境就像给这个项目单独准备一个”工具箱”,防止和服务器上其他程序冲突。

步骤 4:安装 Python 依赖包

耐心等待安装完成,看到 Successfully installed 字样即可。

步骤 5:上传脚本文件

daily_report.py 上传到服务器的 /root/yanbao/ 目录下。上传方式(任选其一):
  • 用 SFTP 工具(如 FileZilla、Termius)直接拖拽上传。
  • 在服务器上执行 nano /root/yanbao/daily_report.py,将代码粘贴进去,按 Ctrl+O 保存,Ctrl+X 退出。

第三阶段:配置密钥管理(Bitwarden Secrets Manager)

我们使用 Bitwarden Secrets Manager(BWS)来管理所有密钥,而不是把密钥明文写进服务器文件。密钥集中加密存储在云端,服务器上永远不会出现任何明文密钥,安全级别大幅提升。

步骤 1:注册 Bitwarden 并开启 Secrets Manager

  1. 前往 bitwarden.com,注册一个免费账号(已有账号直接登录)。
  1. 登录后,点击左侧导航栏的 Secrets Manager,然后点击 Get Started 开启此功能(免费套餐即可)。
  1. 进入 Secrets Manager 控制台后,你会看到 Projects(项目)和 Secrets(密钥)两个区域。

步骤 2:创建项目

  1. 在 Secrets Manager 中,点击左侧 Projects,再点击 New Project。
  1. 项目名称填写 Yanbao_Report,点击 Save。
💡 项目是密钥的分组容器,之后创建的所有 Yanbao 密钥都归入此项目,便于统一管理和授权。

步骤 3:录入所有密钥

点击左侧 Secrets,再点击 New Secret,逐一将以下密钥录入。每条密钥填写 Key(键名)和 Value(值),Project 选择 Yanbao_Report
变量名
必填?
说明
LLM_API_KEY
必填
OpenRouter 大模型密钥,sk-or-v1-... 开头
LLM_API_URL
可选
https://openrouter.ai/api/v1/chat/completions
LLM_MODEL_NAME
可选
openai/gpt-4o,或其他模型名称
TAVILY_API_KEY
必填
Tavily 搜索密钥,tvly-... 开头
NOTION_API_KEY
必填
Notion 集成密钥,secret_... 开头
NOTION_DATABASE_ID
必填
Notion 数据库 ID(32位字符串)
FINAL_URL_PREFIX
必填
研报链接前缀,如 https://your-blog.com
PUSHPLUS_TOKEN
可选
PushPlus 微信推送 Token(不用可留空值)
PUSHPLUS_TOPIC
可选
PushPlus 群组 Topic(群发时需要)
MODE_SWITCH
可选
auto,或 daily / weekly 强制指定模式
💡 每条密钥录入后点击 Save。全部完成后,Secrets 列表里应该能看到 10 条记录。

步骤 4:创建机器账户并生成 Access Token

机器账户是专门给服务器自动化使用的账户,权限最小化,与你的个人账号完全隔离。
  1. 在 Secrets Manager 左侧,点击 Machine Accounts,再点击 New Machine Account。
  1. 账户名称填写 yanbao-server,点击 Save。
  1. 进入该机器账户的详情页,点击 Projects 标签,点击 Assign Project,选择 Yanbao_Report,权限选 Read(只读),点击 Assign。
  1. 点击 Access Tokens 标签,点击 Generate Token,名称随意,过期时间可选 Never(永不过期)。
  1. 复制生成的 Token(格式为 bws_xx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx)。这是唯一一次显示完整 Token,务必立即保存!
💡 这个 Access Token 是服务器访问 Bitwarden 密钥库的唯一凭证。只需在服务器上保存这一个 Token,其余所有密钥都由 BWS 在运行时动态注入,不落盘。

步骤 5:在服务器上安装 BWS 命令行工具

SSH 登录服务器后,执行以下命令下载并安装 BWS CLI:
✅ 看到版本号输出(如 bws 1.x.x),说明 BWS CLI 安装成功。

步骤 6:验证密钥注入是否正常

用以下命令测试 BWS 能否正常读取你的密钥(替换为你的真实 Token):
✅ 能看到 10 条密钥的列表输出,说明 BWS 配置完全正确,可以进入下一阶段。

第四阶段:首次手动测试

在设置自动定时任务之前,先手动运行一次,确认整个流程能跑通。

步骤 1:用 BWS 注入密钥并运行

步骤 2:观察输出日志

正常运行时,终端会依次打印出以下信息:
✅ 看到”运行结束”后,立刻打开你的 Notion 数据库,如果出现了一篇新的研报页面,恭喜你,部署成功!

常见错误排查

如果运行失败,先查看日志文件:
错误信息
可能原因
解决方法
核心配置缺失
BWS 中某个密钥的 Key 拼写错误
登录 Bitwarden Secrets Manager,核对每条密钥的键名是否与表格完全一致
LLM 生成失败 401
LLM_API_KEY 值错误
在 BWS 中找到 LLM_API_KEY,点击编辑确认值正确,注意前后不要有多余空格
LLM 生成失败 402
OpenRouter 余额不足
登录 openrouter.ai 充值
Notion 创建失败
集成未添加到数据库
回到 Notion 数据库页面,确认已在 Connections 添加集成
搜索服务异常
TAVILY_API_KEY 错误
重新复制 Tavily 密钥,在 BWS 中更新对应密钥的值

第五阶段:设置每日自动运行

使用 Linux 的 Systemd 定时器,比传统 crontab 更稳定,即使服务器意外重启也能自动补发研报。

步骤 1:创建服务文件(定义怎么运行)

粘贴以下内容(将 bws_xx_你的真实Token 替换为你在第三阶段生成的 Access Token):
Ctrl+O 保存,Ctrl+X 退出。

步骤 2:创建定时器文件(定义何时运行)

粘贴以下内容(默认每天早上 7:00 运行):
💡 如需修改运行时间(比如改为早上 9:00),将 07:00:00 改为 09:00:00 即可。时间使用服务器本地时区。

步骤 3:激活定时器

✅ 看到 Active: active (waiting) 并显示 Next: 时间,说明定时器已成功启动!

附录:日常运维命令速查

系统上线后,你只需要掌握以下几个命令就能管理日常运维。

查看状态

手动触发

暂停 / 恢复

切换运行模式

在 Bitwarden Secrets Manager 中找到 MODE_SWITCH 这条密钥,点击编辑修改其值即可,下次脚本运行时自动生效:
说明
auto
周日自动发周报,其余时间发日报(默认)
daily
每次运行都发日报
weekly
每次运行都发周报

🎉 恭喜!你的专属 AI 策略师已正式入职,祝交易顺利!
Loading...

© YanXiao 2021-2026