Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
독립 개발자용 커뮤니티 도구, V2EX 등에서 글을 모아 LLM으로 아이디어·문제·기회·트렌드 정리, 원문 링크 포함
面向独立开发者的社区情报工具:从 V2EX 等社区抓取帖子,调用 LLM 提炼创意 / 痛点 / 独立开发机会 / 趋势洞察,输出带可点击原帖链接的 Markdown 报告,帮你低成本发现「值得做的东西」。在线演示:https://shibei.hancic.site/
데이터Python · TypeScriptGitHub @hancic128온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
面向独立开发者的社区情报工具:从 V2EX 等社区抓取帖子,调用 LLM 提炼产品创意 / 用户痛点 / 潜在机会,输出带可点击来源链接的 Markdown 报告,帮你低成本发现「值得做的东西」。 在线体验:shibei.hancic.site(报告页免登录,管理后台 /admin 需登录)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 |