Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

haodehaode378/TopicScout

Repository files navigation

TopicScout

个人研究 Agent — 输入关键词,AI 驱动深度调研,结构化输出

中文 English GitHub Stars License Python React


简介

TopicScout 是一个个人研究 Agent。输入一个关键词,AI 通过对话帮你明确研究方向,然后深度爬取多源信息,生成结构化报告,支持 PDF 导出和 JSON 复用。

核心流程:

关键词 → AI 追问细化 → 深度爬取 → AI 总结归类 → Notion 式展示 → PDF/JSON 导出

作为视频生成项目的前置数据源,也可独立用于任何主题的信息调研。

截图预览

首页 — 主题列表

显示所有研究主题,支持搜索、状态筛选、一键删除。

首页

AI 对话 — 追问细化

聊天式交互,AI 自动追问直到理解清楚你的研究方向,支持跳过和回退。

AI 对话

结果页 — Notion 式展示

三栏布局:左侧分类筛选、中间来源卡片列表、右侧版本管理。支持实时编辑、标记有用、图片预览。

结果页

任务页 — 后台进度

实时进度条 + SSE 推送,爬取状态一目了然。

任务页

配置页 — LLM + 爬取 + 微信公众号

支持多种 LLM 服务商卡片式选择、爬取参数调节、微信公众号扫码登录。

配置页

功能特性

功能 说明
AI 对话 聊天式追问,自动判断何时理解清楚,支持跳过和回退
多源爬取 通用网页、B站、抖音、微博、知乎、小红书、微信公众号
智能总结 全局总结 + 关键洞察 + 信息可靠度评估
自动归类 AI 自动将来源归入 3-8 个类别
Notion 式展示 三栏布局:分类筛选 / 来源卡片 / 版本管理
版本管理 每次爬取生成新版本,可切换查看历史版本
实时进度 SSE 推送爬取进度,进度条实时更新
导出 PDF(封面+目录+正文)/ JSON 结构化复用
微信公众号 扫码登录 → 根据关键词自动搜索相关公众号 → 爬取文章
深色/浅色 CSS 变量主题切换,localStorage 持久化

快速开始

环境要求

  • Python 3.13+
  • Node.js 18+

安装

git clone https://github.com/haodehaode378/TopicScout.git
cd TopicScout
# 后端
pip install -e .
playwright install chromium
# 前端
cd frontend
npm install
cd ..

配置

cp .env.example .env
# 编辑 .env,填入 LLM API Key

启动

# 终端 1:后端
python -m topic_scout serve
# 终端 2:前端
cd frontend && npm run dev

打开 http://localhost:3783 即可使用。

技术栈

层次 技术 说明
后端 Python 3.13 + FastAPI 异步爬虫、轻量 API
前端 React 18 + TypeScript + Vite Notion 风格 UI
数据库 SQLite + aiosqlite 轻量存储,无需额外服务
LLM OpenAI 兼容格式 支持 DeepSeek / Kimi / MiniMax / 通义千问 / MiMo
爬虫 httpx + Playwright 通用网页 + 国内平台 + 微信公众号
PDF WeasyPrint HTML 直转 PDF
动画 Framer Motion 卡片展开、进度条、入场动画

项目结构

topic_scout/
├── __main__.py # CLI 入口
├── config.py # Dataclass 配置
├── models.py # 数据模型
├── llm.py # LLM 适配器
├── chat.py # AI 追问对话
├── wx_auth.py # 微信扫码登录(Playwright)
├── wx_api.py # 微信公众号 API 调用
├── wx_token.py # 凭证持久化
├── crawler/
│ ├── base.py # 爬虫基类
│ ├── web.py # 通用网页
│ ├── bilibili.py # B站
│ ├── douyin.py # 抖音
│ ├── weibo.py # 微博
│ ├── zhihu.py # 知乎
│ ├── xiaohongshu.py # 小红书
│ └── wechat.py # 微信公众号
├── summarizer.py # AI 总结 + 归类
├── exporter.py # JSON / PDF 导出
├── server.py # FastAPI 服务
└── db.py # SQLite CRUD
frontend/src/
├── App.tsx # 路由 + 主题切换
├── components/
│ ├── HomePage.tsx # 主题列表
│ ├── ChatPage.tsx # AI 对话
│ ├── ResultPage.tsx # Notion 式结果页
│ ├── SourceCard.tsx # 来源卡片
│ ├── TasksPage.tsx # 任务列表
│ ├── ConfigPage.tsx # 配置面板
│ └── ...
└── lib/
 ├── api.ts # API 客户端
 └── types.ts # TypeScript 类型

API 端点

点击展开完整 API 列表

主题

方法 路径 说明
POST /api/topics 创建主题
GET /api/topics 主题列表
GET /api/topics/:id 主题详情
DELETE /api/topics/:id 删除主题

AI 对话

方法 路径 说明
POST /api/topics/:id/chat 发送消息
GET /api/topics/:id/chat 对话历史
POST /api/topics/:id/confirm 确认主题

爬取

方法 路径 说明
POST /api/topics/:id/crawl 触发爬取
GET /api/topics/:id/crawl/status 爬取进度 (SSE)
GET /api/topics/:id/sources 爬取结果
PATCH /api/topics/:id/sources/:src_id 编辑来源

总结 & 导出

方法 路径 说明
POST /api/topics/:id/summarize 触发总结
GET /api/topics/:id/summary 获取总结
GET /api/topics/:id/export/json 导出 JSON
POST /api/topics/:id/export/pdf 导出 PDF

微信公众号

方法 路径 说明
POST /api/wx/login 启动扫码登录
GET /api/wx/status 登录状态
GET /api/wx/qrcode QR 码图片
POST /api/wx/logout 退出登录
POST /api/wx/search 搜索公众号
POST /api/wx/subscribe 订阅公众号
GET /api/wx/accounts 已订阅列表
DELETE /api/wx/accounts/:fakeid 取消订阅

任务 & 配置

方法 路径 说明
GET /api/tasks 任务列表
POST /api/tasks/:id/retry 重试任务
GET /api/config 获取配置
PUT /api/config 更新配置

LLM 配置

支持 OpenAI 兼容格式,前端可配:

服务商 base_url
DeepSeek https://api.deepseek.com
Kimi https://api.moonshot.cn/v1
MiniMax https://api.minimaxi.com/v1
通义千问 https://dashscope.aliyuncs.com/compatible-mode/v1
小米 MiMo https://api.xiaomimimo.com/v1

微信公众号集成

TopicScout 内置微信公众号爬取能力:

  1. 扫码登录:配置页点击"登录微信公众号",用手机微信扫码
  2. 关键词搜索:创建主题时,AI 根据主题关键词自动搜索相关公众号
  3. 自动爬取:从搜索到的公众号抓取最新文章,和网页/B站等平台一样全自动

技术方案:Playwright 无头浏览器模拟登录 → 获取 token + cookies → httpx 调用 MP 平台 API。

测试

# 后端测试
python -m pytest tests/ -v
# 前端类型检查
cd frontend && npx tsc --noEmit
# 前端构建
cd frontend && npx vite build

参考项目

项目 Stars 参考点
MediaCrawler 49k+ 国内平台爬虫架构
gpt-researcher 27k+ planner+execution 架构
crawl4ai 65k+ LLM 友好的网页爬取
we-mp-rss 微信公众号爬取参考

贡献

欢迎提交 Issue 和 Pull Request。

License

MIT

About

个人研究 Agent — 输入关键词,AI 驱动深度调研,结构化输出 | Personal Research Agent for deep web research

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /