核心结论:利用 GitHub Actions + 本地 Ollama 大模型 + Tailscale 加密隧道 + PushPlus 微信推送,打造每日自动推送 GitHub 热门开源项目的自动化流水线。
特性
自定义搜索 - 灵活配置搜索主题,如 AI Agent、Local LLM 等
本地 AI 总结 - 使用 Ollama 运行本地大模型,数据安全
流式生成 - 支持流式响应 (Streaming),防止跨网络连接超时
模型预热 - 自动预热加载模型,首字响应更迅速
安全连接 - 通过 Tailscale 加密隧道访问家庭电脑
微信推送 - 支持 PushPlus 免费推送
现代管理 - 使用 uv 处理依赖,极速环境搭建
调试工具集 - 内置全套 API 调试脚本,快速定位连接故障
架构图 graph TD
subgraph "Cloud (GitHub)"
GA[GitHub Actions]
GS[GitHub Search API]
end
subgraph "Tunnels"
TS[Tailscale Encryption]
end
subgraph "Home (Local)"
LO[Ollama LLM]
end
subgraph "Notification"
PP[PushPlus WeChat]
end
GA --> GS
GA --> TS
TS --> LO
GA --> PP
文件结构 1 2 3 4 5 6 7 8 ├── search_and_summarize.py # 主脚本 ├── pyproject.toml # uv 项目配置文件 ├── uv.lock # 依赖锁定文件 ├── debug_*.py # 各类连接/API 调试脚本 ├── .github/ │ └── workflows/ │ └── daily-interest.yml # Actions 定时任务 └── README.md
准备工作 1. GitHub 配置 1.1 创建 Personal Access Token (PAT)
访问 GitHub Settings → Developer settings → Personal access tokens → Classic
点击 “Generate new token (classic)”
勾选 repo 权限
复制生成的 token,保存好(只会显示一次)
1.2 配置仓库 Secrets 在 GitHub 仓库的 Settings → Secrets and variables → Actions 中添加:
Secret 名称
说明
示例
REPO_TOKEN
GitHub PAT
ghp_xxxxxxxxxxxx
PUSHPLUS_TOKEN
PushPlus token
见下方获取步骤
PUSHPLUS_GROUP
微信群组编码(可选)
xxxxx
TAILSCALE_AUTHKEY
Tailscale 临时认证 key
tskey-auth-xxxxx
1.3 配置仓库 Variables (可选)
变量名称
说明
示例
OLLAMA_HOSTNAME
家用电脑主机名
popos
2. 获取 PushPlus Token
访问 https://www.pushplus.plus/
微信扫码登录
在”一对一推送”获取 token
如果要发群聊:在”群组管理”创建群组,获取 group code
3. 配置 Tailscale 3.1 安装 Tailscale(家用电脑)
访问 https://tailscale.com/download 下载安装
登录你的 Tailscale 账号
在 admin 面板 (https://login.tailscale.com/admin ) 启用 MagicDNS
3.2 生成 Auth Key
访问 https://login.tailscale.com/admin/settings/keys
Generate auth key → 勾选 Ephemeral → Generate
复制 key,保存到 GitHub Secrets
3.3 确认主机名 在 Tailscale admin 面板查看你的设备主机名。系统默认使用的是 mbp,你可以通过 GitHub Actions 变量 OLLAMA_HOSTNAME 进行自定义覆盖。
4. 配置本地 Ollama 4.1 安装 Ollama 1 2 3 4 5 curl -fsSL https://ollama.com/install.sh | sh brew install ollama
4.2 拉取模型
4.3 启动服务(监听所有接口) 1 2 3 4 5 6 7 export OLLAMA_HOST=0.0.0.0ollama serve launchctl setenv OLLAMA_HOST "0.0.0.0" ollama serve
4.4 设置开机自启 Linux (systemd):
1 2 3 4 5 sudo systemctl edit ollama.service[Service] Environment="OLLAMA_HOST=0.0.0.0" sudo systemctl restart ollama
macOS (launchd):
1 2 3 brew services stop ollama launchctl setenv OLLAMA_HOST "0.0.0.0" brew services start ollama
本地测试 安装 uv (推荐) 1 2 uv run search_and_summarize.py
设置环境变量 1 2 export REPO_TOKEN="ghp_xxxxx" export PUSHPLUS_TOKEN="your_token"
调试工具集
脚本名称
用途
uv run debug_chat.py
测试原生 Chat 接口
uv run debug_v1_requests.py
测试 OpenAI 兼容层接口
uv run debug_speed.py
压力/速度测试
uv run debug_native.py
原生生成接口测试
uv run debug_ollama.py
OpenAI 库兼容性测试
自定义搜索主题 编辑 search_and_summarize.py 中的 QUERIES 列表:
1 2 3 4 5 6 7 QUERIES = [ { "q" : 'topic:ai' , "label" : "AI 热门项目 Top 10" , "max_items" : 5 }, ]
GitHub Search 语法速查
语法
说明
示例
created:>=YYYY-MM-DD
创建日期
created:>=2026-03-01
stars:>=N / stars>N
Star 数量
stars:>=50
language:xxx
编程语言
language:rust
-is:fork
排除 fork
-is:fork
-archived
排除归档
-archived
故障排查 Ollama 连接失败 1 2 3 4 5 6 7 8 tailscale status curl http://localhost:11434/api/tags sudo ufw allow 11434/tcp
GitHub API 限流
未认证:每小时 10 次
已认证:每小时 5000 次
解决方案:确保配置了 GITHUB_TOKEN
PushPlus 推送失败
检查 token 是否正确
检查群组编码(如果发群)
访问 PushPlus 官网查看推送日志
修改调度时间 编辑 .github/workflows/daily-interest.yml:
1 2 3 on: schedule: - cron: '0 1 * * *'
Cron 格式:分 时 日 月 周(UTC 时间)
成本说明
GitHub Actions: 免费(每月 2000 分钟)
Tailscale: 免费(支持 3 用户 + 100 设备)
PushPlus: 免费
Ollama: 仅需家用电脑电费
最终实现效果
auto