Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
面向独立开发者的社区情报工具:从 V2EX 等社区抓取帖子,调用 LLM 提炼创意 / 痛点 / 独立开发机会 / 趋势洞察,输出带可点击原帖链接的 Markdown 报告,帮你低成本发现「值得做的东西」。在线演示:https://shibei.hancic.site/
Translation pending
DataPython · TypeScriptGitHub @hancic128OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
面向独立开发者的社区情报工具:从 V2EX 等社区抓取帖子,调用 LLM 提炼产品创意 / 用户痛点 / 潜在机会,输出带可点击来源链接的 Markdown 报告,帮你低成本发现「值得做的东西」。 在线体验:shibei.hancic.site(报告页免登录,管理后台 /admin 需登录)Read the full README ↗
面向独立开发者的社区情报工具:从 V2EX 等社区抓取帖子,调用 LLM 提炼产品创意 / 用户痛点 / 潜在机会,输出带可点击来源链接的 Markdown 报告,帮你低成本发现「值得做的东西」。
在线体验:shibei.hancic.site(报告页免登录,管理后台 /admin 需登录)
analyzer.py 一个命令自动完成「爬取 → 分析 → 打印报告绝对路径」,无需手动干预是否爬取。urllib,开箱即跑;Web 界面独立提供,不影响 CLI。--lang / ANALYZE_LANG 或 Web 设置页「报告语言」决定;报告页按界面语言显示对应版本,暂缺时回退并提示。| 项 | 要求 |
|---|---|
| Python | 3.10+(运行时零第三方依赖,仅标准库 urllib) |
| 开发工具(可选) | uv —— 仅开发/安装 dev 工具时需要;直接运行无需 |
| 网络 | 能访问来源社区 API(V2EX / Hacker News / Lobste.rs / Dev.to / 少数派 / Product Hunt)用于爬取;能访问你自带的 LLM API(OpenAI 兼容)用于分析 |
| LLM 配置 | OPENAI_API_KEY(环境变量,必填);OPENAI_BASE_URL 与 ANALYZE_MODEL 必填(环境变量或 config.json llm 节二选一) |
运行时零依赖:CLI 装好 Python 后可直接
python3 analyzer.py运行;uv 与 dev 依赖(ruff / pytest / pyright / pre-commit)仅用于开发与测试。Web 部署用 Docker,见下文。
V2EX (或其他社区) ──爬取──▶ data/{source}/{node}/{id}.json ──分析──▶ LLM 提炼 4 类洞察
│
▼
data/analysis/analysis.md(可点击原帖链接)
# 1. 安装(零运行时依赖,仅 dev 工具)
uv sync
# 2. 配置 LLM(用户自带 URL + Key + 模型,三者必填)
export OPENAI_API_KEY=sk-xxx
# 下面的 base_url / model 默认取 config.json 的 llm 节,也可用环境变量覆盖:
# export OPENAI_BASE_URL=https://api.deepseek.com/v1
# export ANALYZE_MODEL=deepseek-v4-flash
# 常用服务商组合见「常用 OpenAI 协议 API 示例」
# 3. 分析(唯一入口:自动爬取 + 分析 + 打印报告路径)
uv run python analyzer.py
# 强制全量重分析
uv run python analyzer.py --full
# 生成英文报告与英文日志(等价于 ANALYZE_LANG=en)
uv run python analyzer.py --lang en
# 按日期重算某天的每日报告(读已归档帖子,不重新抓取、不影响增量进度)
uv run python analyzer.py --date 2026-08-03
首次运行会自动全量爬取并全量分析;之后每天跑一条 analyzer.py 即可。
控制台日志(首次运行 / 数据为空时自动全量,最后打印报告绝对路径):
$ uv run python analyzer.py
首次运行或数据为空,自动全量爬取 ...
[V2EX] 新增 20 帖
共 20 个帖子待分析(来源: v2ex(programmer, python))...
报告已写入:/Users/shark/Project/shibei/data/analysis/analysis.md
生成的报告 analysis.md(每条来源为可点击的原帖链接):
# 拾贝 · 多来源分析
来源: v2ex(programmer, python)
基于 20 个帖子自动生成
## 产品创意
- 把 Python 脚本编译成无依赖的单文件可执行工具 — [来源](https://www.v2ex.com/t/1224588)
- 在线 Python 编辑器 + 运行终端 — [来源](https://www.v2ex.com/t/1226355)
## 用户痛点
- 申请 TG API 用 Google Voice 一直失败 — [来源](https://www.v2ex.com/t/1229505)
## 潜在机会
- 开源的 AI 文本拟人化工具集,适合独立开发者推广 — [来源](https://www.v2ex.com/t/1213910)
说明:以上为示例输出;实际内容由你的 LLM 从抓取的帖子中提炼。
自带浏览器界面:查看报告、手动触发分析、配置 AI 与来源开关,登录保护,可部署在任意站点子路径(nginx 反代)。
浏览器 ── /shibei/ ──▶ nginx(反代,剥前缀)──▶ Flask(:8000) ──▶ analyzer 子进程 ──▶ data/
└── 前端静态资源(构建进镜像)
data/web_secrets.json,0600)。# 1. 配置初始管理员密码(必填;其余可用默认)
cp .env.example .env # 编辑 SHIBEI_PASSWORD
# 2. 构建并启动(web + nginx 反代)
docker compose up -d --build
# 3. 访问 http://<host>:8080/shibei/ 并登录
| 环境变量 | 默认 | 说明 |
|---|---|---|
SHIBEI_PASSWORD | 无(未设置则自动生成并打印到容器日志) | 初始管理员密码,仅首次启动建号时生效 |
SHIBEI_USERNAME | admin | 初始管理员用户名 |
SHIBEI_HTTP_PORT | 8080 | nginx 对外端口(浏览器访问端口) |
SHIBEI_BASE_PATH | /shibei/ | 浏览器侧访问前缀,需与 nginx location 一致 |
TZ | Asia/Shanghai | 容器时区 |
要点:
./data(帖子、报告、web_config.json、凭据),容器重建不丢;删除该目录即重置。.env 后 docker compose up -d 重建生效;已建号后改 SHIBEI_PASSWORD 不生效,可在界面「设置 → 账号」改密。VITE_BASE=/shibei/ 构建;若自定义 SHIBEI_BASE_PATH,需同步修改 docker-compose.yml 中 SHIBEI_BASE_PATH、deploy/nginx.conf 的 location 与镜像构建参数 VITE_BASE(docker compose build --build-arg VITE_BASE=/xxx/)。8080 即可,或自行加证书。| 部分 | 说明 |
|---|---|
frontend/ | React 18 + Vite + Tailwind + shadcn/ui 风格组件,构建产物进镜像 |
web/app.py | Flask 应用:登录会话 / AI 配置 / 来源开关 / 任务 API / 静态托管 |
web/runner.py | analyzer 子进程管理:单任务并发、状态索引与日志落盘 data/tasks/ |
deploy/nginx.conf | /shibei/ 子路径反代示例(剥前缀转发 web:8000) |
Dockerfile | 多阶段:node 构建前端 → python:3.12-slim(flask + waitress) |
# 后端(需 Python ≥3.10;uv 安装依赖)
uv sync
SHIBEI_BASE_PATH=/ SHIBEI_PASSWORD=dev123 uv run python -m web.app # :8000
# 前端(另开终端;/shibei/api 自动代理到 :8000)
cd frontend && npm install && npm run dev # :5173
{
"sources": {
"v2ex": {
"enabled": true,
"nodes": ["programmer", "python"],
"pages_per_node": 1,
"request_delay": 1.2,
"max_retries": 3
}
},
"llm": {
"base_url": "https://api.deepseek.com/v1",
"model": "deepseek-v4-flash",
"max_tokens": 4096
}
}
| 配置项 | 说明 |
|---|---|
sources.{来源}.nodes | 要爬的节点列表(V2EX 节点见 uv run python crawler.py list) |
sources.{来源}.pages_per_node | 每个节点往后翻几页(V2EX 的 API 忽略分页参数,填 1 即可——多填只是重复请求同一批帖子) |
sources.{来源}.request_delay | 请求间隔(秒),控制限流 |
sources.{来源}.max_retries | 请求失败重试次数 |
llm.base_url | OpenAI 兼容 API 地址 |
llm.model / llm.max_tokens | 模型名 / 单次输出上限 |
完整配置见仓库
config.json:已内置 hackernews / lobsters / devto / sspai / producthunt 五节的默认节点与参数;去掉某节(或enabled: false)即可停用该来源。
| 变量 | 必填 | 说明 |
|---|---|---|
OPENAI_API_KEY | ✅ | LLM API Key,仅环境变量,不入库 |
OPENAI_BASE_URL | ✅ | API 地址(或用 config.json 的 llm.base_url) |
ANALYZE_MODEL | ✅ | 模型名(或用 config.json 的 llm.model),无内置默认 |
ANALYZE_MAX_TOKENS | 单次输出上限(默认取 llm.max_tokens,兜底 4096) | |
ANALYZE_LANG | 报告与任务日志语言:zh(默认)/ en;--lang 参数优先于此 |
拾贝只要求接口兼容 OpenAI 协议,服务商任选。下表 base_url 与模型名均按各服务商官方文档核实(模型会随厂商更新,使用前以官方文档为准;填错会收到 400 model not found 之类报错):
| 服务商 | base_url | 示例 model | 官方文档 |
|---|---|---|---|
| OpenAI | https://api.openai.com/v1 | gpt-4o、gpt-4o-mini | platform.openai.com/docs/models |
| DeepSeek | https://api.deepseek.com/v1 | deepseek-v4-pro、deepseek-v4-flash(v4 现行;旧名 deepseek-chat/deepseek-reasoner 已弃用) | api-docs.deepseek.com |
| OpenRouter | https://openrouter.ai/api/v1 | openai/gpt-4o、anthropic/claude-sonnet-4(厂商/模型 格式) | openrouter.ai/docs |
| Moonshot(Kimi) | https://api.moonshot.cn/v1 | moonshot-v1-32k、kimi-k2 | platform.moonshot.cn/docs |
| 智谱 GLM | https://open.bigmodel.cn/api/paas/v4 | glm-4-flash、glm-4-plus | open.bigmodel.cn/dev/api |
| 通义千问(DashScope) | https://dashscope.aliyuncs.com/compatible-mode/v1 | qwen-plus、qwen-turbo | 百炼·模型列表 |
| 硅基流动(SiliconFlow) | https://api.siliconflow.cn/v1 | deepseek-ai/DeepSeek-V3、Qwen/Qwen3-Max(组织/模型 格式,区分大小写) | docs.siliconflow.cn |
| Ollama(本地) |
注意事项:
/v1 只是 OpenAI 兼容后缀,与模型版本无关(官方 base_url 为 https://api.deepseek.com)。/chat/completions,base_url 填到 .../paas/v4 即可(拾贝会自动补 /chat/completions)。http://localhost:8000/v1,模型名以部署的模型为准。例如用 DeepSeek:
export OPENAI_API_KEY=sk-xxx
export OPENAI_BASE_URL=https://api.deepseek.com/v1
export ANALYZE_MODEL=deepseek-v4-flash
uv run python analyzer.py
data/
├── state.json # 各来源 last_crawl / last_analysis
├── analysis/
│ ├── analysis.md # 全量报告
│ ├── analysis.en.md # 全量报告(英文)
│ ├── YYYY-MM-DD.md # 每日增量报告(每天一份,同日多次运行刷新)
│ └── YYYY-MM-DD.en.md # 每日增量报告(英文)
├── .cache/ # 列表缓存 + 分析缓存(分析后自动清理)
└── {source}/{node}/{id}.json # 统一结构帖子(每来源一目录)
报告示例(每条来源均可点击跳回原帖):
# 拾贝 · 多来源分析
来源: v2ex(programmer, python)
基于 1234 个帖子自动生成
## 产品创意
- {创意描述} — [来源](https://www.v2ex.com/t/1229217)
## 用户痛点
- {痛点描述} — [来源](https://www.v2ex.com/t/1229505)
## 潜在机会
- {机会描述} — [来源](https://www.v2ex.com/t/1229217)
完整报告示例见 examples/analysis.md。
| 来源 | 接入方式 | 特点 |
|---|---|---|
| V2EX | JSON API(免认证) | 节点可配置,crawler.py list 查看全部节点 |
| Hacker News | Firebase JSON API(免认证) | Show / Ask / Top / New 四类;评论递归展平 |
| Lobste.rs | JSON API(免认证) | 按标签爬取 + hottest 首页 |
| Dev.to (Forem) | JSON API(免认证,自定义 Accept) | 按 tag 爬取,含评论树 |
| 少数派 | RSS 2.0 | 全站 feed,无评论接口 |
| Product Hunt | RSS | 每日新品,无评论接口 |
所有来源输出统一结构帖子 JSON(data/{source}/{node}/{id}.json),限流由各来源配置节独立控制,来源间并行爬取互不影响。
新增社区只需三步(详见 docs/design.md §5.4):
sources/{name}.py,继承 Source 实现 fetch_topics / fetch_replies / list_nodes。sources/__init__.py 注册。通用助手在 sources/base.py:http_get_json(可传 extra_headers)、http_get_xml / parse_atom_feed(Atom 与 RSS 2.0)、strip_html、iso_to_unix(ISO 8601 / RFC 2822)。
# analyzer.py(单一入口)
uv run python analyzer.py # 自动增量爬取 + 增量分析(空数据自动全量)
uv run python analyzer.py --full # 强制全量
uv run python analyzer.py --lang en # 英文报告与日志(zh/en,默认 zh)
# crawler.py(可选独立工具)
uv run python crawler.py # 全量爬取
uv run python crawler.py --today # 增量爬取
uv run python crawler.py list [关键词] # 列出可用节点
uv run python crawler.py --today --lang en # 英文日志
uv run ruff format .
uv run ruff check .
uv run pyright .
uv run pytest
uv run pre-commit run --all-files # 见 .pre-commit-config.yaml
欢迎提交 issue 与 PR,见 CONTRIBUTING.md。
http://localhost:11434/v1 |
本地已拉取的模型 tag,如 llama3.1 |
| docs.ollama.com |