2026-03-30 13:01:56 +08:00
2026-03-23 17:26:30 +08:00
2026-03-29 22:59:15 +08:00

StoryForge

StoryForge 现在拆成独立项目目录,和 AI-glasses 分开维护。

仓库边界和维护约束见:StoryForge 仓库边界说明。 拆分治理方案见:StoryForge / AI Glasses 拆分评估方案。 当前项目状态见:StoryForge 当前项目状态AI-glasses 独立代码仓库已单独维护在 krisolo/ai-glasses

目录

  • collector-service/FastAPI 后端负责用户体系、项目、Agent、任务、内容分析和对外能力接入
  • web/storyforge-web-v4/:正式 Web 工作台,承接多平台运营、对标、跟踪、生产和复盘入口
  • n8n/:工作流导出文件,作为流程编排中枢
  • docker-compose.yml:本地 collector + n8n + cli-proxy-api 编排
  • Common/:项目约束和架构说明
  • data/collector/SQLite、任务文件、下载产物
  • docs/:审计、实施计划、联调说明、当前 MVP 状态

产品手册

Douyin Browser Capture

cd /Users/kris/code/StoryForge-gitea
./scripts/start_douyin_workbench.sh

业务页:

http://127.0.0.1:3618/workbench

完整采集控制台:

http://127.0.0.1:3618

常用脚本:

./scripts/start_douyin_workbench.sh
./scripts/status_douyin_workbench.sh
./scripts/stop_douyin_workbench.sh
./scripts/cleanup_debug_ui.sh

如果第一次使用,还需要先安装浏览器依赖:

cd /Users/kris/code/StoryForge-gitea/scripts/douyin-browser-capture
npm install
npx playwright install chromium

当前本地页面已经拆成两个入口:

  • /workbench:业务优先的 Douyin Workbench,可直接查看账号列表、商业化账号分析、快照详情、相似账号和对标关系
  • /:完整浏览器辅助采集控制台,同时保留工作台能力
  • 作品工作台支持按 高分作品 / 最新作品 / 全部作品 切换,并可按综合分、受欢迎程度、商业价值、发布时间、播放、点赞、分享、评论排序
  • 作品列表支持 视频 / 图文 类型筛选,并可直接打开原作品链接
  • 高分作品支持自动化分析,每条作品卡片下都会展示商业判断、复刻计划、运营动作和风险提醒

或者继续用命令行:

cd /Users/kris/code/StoryForge-gitea/scripts/douyin-browser-capture
npm run capture -- \
  --profile-url https://www.douyin.com/user/your_account \
  --storyforge-username storyforge-admin \
  --storyforge-password 'your_admin_password'

说明:

  • 这是“真实浏览器 + 人工登录/过挑战 + 自动提取 + 回写 StoryForge”的辅助采集工具
  • 默认输出到 output/playwright/douyin/
  • 本地控制台模式会把每次运行保存到 output/playwright/douyin/control-panel/
  • 控制台支持“开始采集 -> 浏览器登录 -> 网页点继续 -> 自动同步”的点击式流程
  • 详细说明见 scripts/douyin-browser-capture/README.md

Collector Service

cd /Users/kris/code/StoryForge-gitea/collector-service
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8081 --reload

Docker Compose

cd /Users/kris/code/StoryForge-gitea
cp .env.example .env
docker compose up -d --build

首次启动前,至少补齐这些配置:

ORCHESTRATOR_SHARED_SECRET=your_strong_shared_secret
BOOTSTRAP_SUPERADMIN_USERNAME=storyforge-admin
BOOTSTRAP_SUPERADMIN_PASSWORD=your_strong_admin_password

如果希望 Web 端打开后直接自动建会话,不让用户手动输入账号密码,再额外打开:

WEB_AUTOLOGIN_ENABLED=1
WEB_AUTOLOGIN_ACCOUNT_USERNAME=your_existing_approved_username

推荐直接指定一个已经存在且已审批通过的账号用户名,服务端会直接为该账号签发自动会话,不需要额外保存该账号密码。

如果你更希望复用 bootstrap 超级管理员口令,或者切到专门账号,也可以继续走密码模式:

WEB_AUTOLOGIN_USERNAME=your_autologin_username
WEB_AUTOLOGIN_PASSWORD=your_autologin_password

如果要让本机模型网关 cli-proxy-api 自动提供 GLM-5,建议在启动前确保本机环境里存在:

export DASHSCOPE_API_KEY=your_dashscope_key

或者把它写进本地 .env./scripts/start_business.sh 会自动生成 data/cliproxyapi/config.yaml 并把 glm-5 -> GLM-5 映射到本机网关。

如果 collector 跑在 Docker 里,建议保留:

COLLECTOR_N8N_BASE_URL=http://n8n:5678

如果你单独在宿主机启动 collector-service,它读取的仍然是:

N8N_BASE_URL=http://127.0.0.1:5670

默认会启动:

  • collector-servicehttp://127.0.0.1:8081
  • n8nhttp://127.0.0.1:5670
  • cli-proxy-apihttp://127.0.0.1:8317
  • 公网入口:https://storyforge.hyzq.net/

公网维护常用脚本:

./scripts/smoke_public_storyforge.sh
./scripts/deploy_public_storyforge.sh

首次启动时,如果数据库里还没有 super_admincollector-service 会按 BOOTSTRAP_SUPERADMIN_USERNAME / BOOTSTRAP_SUPERADMIN_PASSWORD / BOOTSTRAP_SUPERADMIN_DISPLAY_NAME 创建最高权限账号。未配置时不会再自动写入默认口令账号。

如果开启了 WEB_AUTOLOGIN_ENABLED=1,前端会在启动时直接请求 /v2/auth/auto-session 自动建会话,不再显示用户名 / 密码 / token 输入流程。推荐优先使用 WEB_AUTOLOGIN_ACCOUNT_USERNAME,只在必须时才使用 WEB_AUTOLOGIN_USERNAME / WEB_AUTOLOGIN_PASSWORD

当前架构

  • collector-service 负责:
    • 用户账号、多项目、多 Agent、多任务、多内容源数据边界
    • 调用下载器、本地 ASR、本机 OpenAI 兼容模型
    • 调用 Windows cutvideohuobao-drama
    • 持久化任务、分镜、分析结果、事件日志
  • n8n 负责:
    • 触发 analysis_pipeline
    • 触发 content_source_sync_pipeline
    • 触发 real_cut_pipeline
    • 触发 ai_video_pipeline
  • 历史旧运行链已完成移除,当前运行时只保留 StoryForge 自身服务与外部执行引擎
  • 当前公网接入采用“云服务器 HTTPS 入口 + 云服务器本地 collector + 本地桥接执行引擎”模式:
    • https://storyforge.hyzq.net/ 由云服务器 nginx 提供 HTTPS 入口
    • / 静态页由云服务器本地 StoryForge Web V4 直出
    • /v2/*/openapi.json/healthz 反向代理到云服务器本地 collector-service
    • 业务数据库已上云,当前路径为云服务器本地 storyforge.db
    • n8n / cutvideo / huobao / 本机模型 / ASR / NAS 录制 继续由本机和局域网执行链提供,并通过受控桥接暴露给云上的 collector-service

说明

  • 新注册账号默认 pending
  • 主管理员审批后才可使用核心业务接口
  • 支持 user -> project -> knowledge base / assistant(agent) / job / content source 的多租户边界
  • 素材入口支持文字、视频链接、视频上传;内容源账号通过 content_sources 建模持久化,并可派生父子分析任务
  • cutvideo 继续运行在 Windows 机器,本系统通过 API 调度
  • fnOS / 局域网调试环境下,cutvideo 建议通过 NAS SSH 隧道接入,默认入口为 http://192.168.31.188:19186
  • huobao-drama 继续作为 AI 生成视频主链的核心引擎
  • 详细审计、阶段计划和联调步骤见 docs/
  • Windows cutvideo 的恢复与常驻维护见 WINDOWS_CUTVIDEO_OPERATIONS_2026-03-27.md

fnOS / NAS 局域网交付默认三步:

./scripts/deploy_fnos_cutvideo_tunnel.sh
./scripts/deploy_fnos_storyforge_lan_stack.sh
./scripts/smoke_fnos_storyforge_lan.sh

这套顺序会先把 Windows cutvideo 通过 NAS SSH 隧道暴露到 19186/19181,再把 StoryForge 的 NAS 侧联调用默认主链切到 http://192.168.31.188:19186,最后用一键 smoke 校验整条链路。

Description
StoryForge content learning and copywriting assistant
Readme 90 MiB
Languages
Kotlin 82.7%
Python 16.7%
Shell 0.5%