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
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 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 |