# StoryForge Web V4 这是 `StoryForge` 当前面向正式前端实现的 Web 承载目录。 ## 入口 - 页面:`index.html` - 样式:`assets/styles.css` - 页面交互:`assets/storyforge-session-store.js`、`assets/storyforge-api-client.js`、`assets/storyforge-platform-runtime.js`、`assets/storyforge-dashboard-home.js`、`assets/app.js` ## 当前定位 - 这不是最终生产版,但已经不是纯静态原型 - 目录已经从 `output/ui/` 原型区独立出来,并接上了第一层真实业务接口 - 已开始把会话存储、后端请求和平台能力判断拆成浏览器直加载的小模块,`app.js` 现在更偏向页面编排 - 这里面向国内平台的 Web 承载,当前覆盖 `douyin`、`xiaohongshu`、`bilibili`、`kuaishou`、`wechat_video` - `YouTube` 目前明确不在本轮范围内 - 已支持通过 `https://storyforge.hyzq.net/` 做公网访问 - 通用的项目、内容源、复盘、集成等流程可以正常使用 - 平台工作台已切到统一模型,当前支持在页面内切换 `douyin / xiaohongshu / bilibili / kuaishou / wechat_video` - 账号列表、单账号详情、作品、高分分析、相似搜索、对标关系、跟踪对象和日报都已经按平台统一加载 - 当前前端会先读取 `/openapi.json` 能力集,再决定是否展示或调用对应平台动作,避免不同 live 版本直接刷 404 - 当前保留的核心页面结构: - 项目总台 - 我的项目 - 找对标 - 跟踪账号 - 自动流程 - Agent - 生产中心 - 发布与复盘 - 额度 - 首页已切到“人类决策优先”结构: - 先显示当前项目上下文与 `1 主 2 次` 今日动作 - 再显示 `项目进度 / 重点账号·对标 / 生产任务` tab 概览 - 管理员配置台通过独立导航进入,不再挤占首页主体 ## 当前已接入的真实能力 - 后端登录与会话保持 - 工作区信息与 `/v2/me` - 项目总台 `/v2/me/dashboard` - 项目创建 `/v2/projects` - 内容源列表 `/v2/content-sources` - 通用的复盘与 `/v2/reviews` - 通用的集成健康检查 `/v2/integrations/health` - 抖音对标账号 `/v2/douyin/accounts` - 单账号工作台 `/v2/douyin/accounts/{id}/workspace` - 单账号作品列表 `/v2/douyin/accounts/{id}/videos` - 跟踪账号 `/v2/douyin/tracking/accounts` - 跟踪日报 `/v2/douyin/tracking/digest` - 国内平台统一工作台: - `/v2/{platform}/accounts` - `/v2/{platform}/accounts/{id}/workspace` - `/v2/{platform}/accounts/{id}/videos` - `/v2/{platform}/accounts/{id}/analysis` - `/v2/{platform}/accounts/{id}/videos/analyze-top` - `/v2/{platform}/similar-searches` - `/v2/{platform}/accounts/{id}/benchmark-links` - `/v2/{platform}/tracking/accounts` - `/v2/{platform}/tracking/digest` - 最近知识库文档 `/v2/knowledge-bases/{id}/documents` ## 当前已接入的真实动作 - 新建项目 - 导入主页并触发内容源同步 - 把当前对标账号直接导入到当前项目,并绑定 Agent 触发同步 - 导入作品链接并触发分析 - 导入文本素材并触发分析 - 上传本地视频并触发分析 - 创建 Agent - 选择当前 Agent - 编辑 Agent 的名称、目标、系统提示词和主模型 - 对当前选中对标账号重跑分析 - 批量分析高分作品 - 查找相似对标账号 - 从相似候选一键保存对标关系 - 把当前对标账号加入跟踪,并绑定 Agent - 单账号立即同步跟踪对象 - 批量同步全部跟踪对象 - 以上账号工作台动作现在已按统一工作台模型覆盖到已接入的国内平台 - 日报手动标记已读,不再在刷新页面时自动吞掉未读摘要 - 按上次打开后生成跟踪日报与借鉴点摘要 - 查看任务详情、事件、子任务和 artifacts/result - 从任务详情直接衔接 AI 视频 / 实拍剪辑 / 文案生成 - 在生产中心 / 发布与复盘常驻最近一次任务详情摘要 - 在 Web 中直接创建和编辑复盘 - 在页面里直接看到 `本机模型 / cutvideo / huobao / n8n / ASR` 的真实健康状态 - 直播录制已切成租户隔离模式: - 录制源按当前账号和项目归属保存 - 录像文件只通过当前租户的后端代理访问 - 前端不再直接暴露 NAS 全局配置和下载根地址 - 存储状态面板已接上: - 当前项目和当前账号的缓存占用 - 数据库本机 / 分析缓存 NAS / 下载缓存 NAS 的目录策略 - 最近写入 NAS 的缓存样本路径 - 会先识别后端是否具备 `tracking / reviews / integrations` 路由,再决定是否请求,避免不同版本 live collector 刷 404 - 依赖不可达时,自动拦住 AI 视频 / 实拍剪辑动作并展示原因 - 使用 Agent 生成文案 - 创建 AI 视频任务 - 创建实拍剪辑任务 ## 本地预览 推荐直接在目录内起一个临时静态服务: ```bash cd /Users/kris/code/StoryForge-gitea/web/storyforge-web-v4 python3 -m http.server 3918 ``` 然后打开: - [http://127.0.0.1:3918/index.html](http://127.0.0.1:3918/index.html) 如果本地是 `127.0.0.1 / localhost`,前端默认会连: - `http://127.0.0.1:8081` 如果页面部署在: - `https://storyforge.hyzq.net/` 前端会自动把默认后端切到同源的: - `https://storyforge.hyzq.net` 如果页面部署在 NAS 之类的局域网静态站点上,推荐通过运行时配置显式指定后端: - `assets/storyforge-runtime-config.js` - `window.__STORYFORGE_RUNTIME_CONFIG__.backendUrl = "https://storyforge.hyzq.net"` 仓库内已经提供一键部署脚本,可直接把前端发到飞牛 NAS 上跑开发测试: ```bash cd /Users/kris/code/StoryForge-gitea ./scripts/deploy_fnos_storyforge_web.sh ``` 如果希望前后端都在局域网内联调,也可以把 collector 一起部署到飞牛 NAS: ```bash cd /Users/kris/code/StoryForge-gitea ./scripts/deploy_fnos_storyforge_collector.sh ``` 当前默认局域网端口: - 前端:`http://192.168.31.188:19192/` - 后端:`http://192.168.31.188:19193/` ## 后续建议 - 继续补多平台各自更深的专属采集与解析能力,而不只是一套统一抽象层 - 把对标导入后的 Agent 绑定和知识库入库反馈做得更完整 - 把跟踪日报从 Douyin 扩到多平台统一模型,并接入真正的定时调度 - 把全局搜索和页内搜索合并成统一搜索体验 - 为 `生产中心 / 发布与复盘` 接入更完整的成片预览与封面对象 - 如果后续要开放外网多租户录像访问,继续沿用 collector 的鉴权代理,不要把 NAS 下载目录直接暴露给浏览器 - 现在的推荐策略是: - 数据库继续留本机 - `jobs / downloads` 这类大文件缓存优先放 NAS - 下载产物和分析产物通过 `/v2/storage/artifacts/{file_id}/content` 走租户鉴权代理访问 - 如果后续出现速度或稳定性问题,再切到 OSS - `项目总台` 里的“存储状态”面板现在已经会显示: - NAS / 本机策略 - 项目与账号占用 - 最近分析产物 - 最近执行缓存 - 最近录像文件 - 不要把这套页面重新塞回 `scripts/douyin-browser-capture/control_panel.mjs` - 抖音采集控制台仍作为独立工具存在,这里才是正式业务应用壳