给 AI 协作时的完整上下文,以下信息必须在每次对话开始时提供给 AI。
ScriptForge 是一个 AI 小说转剧本工具。将 3 章以上的小说文本自动转换为结构化 YAML 剧本,让作者快速获得可编辑的剧本初稿。
72 小时比赛(6月5日 00:00 – 6月7日 23:59)。今天是 Day 1(6月5日)。
Java 后端为主,全栈能力有,但实时音视频处理经验不足。
| 层 | 技术 |
|---|---|
| 后端框架 | Spring Boot 3 + Java 17 |
| ORM | MyBatis + MyBatis-Plus + sqlite-jdbc |
| 数据库 | SQLite(单文件,零配置) |
| LLM 调用 | Spring RestClient 调 OpenAI 兼容 API |
| LLM 提供商 | DeepSeek Chat(默认),可换 Qwen-Plus |
| YAML 处理 | Jackson YAML(jackson-dataformat-yaml) |
| 前端 | Vue 3 + Vite + TypeScript |
| 前端编辑器 | Monaco Editor |
| 部署 | Docker Compose(后端 + 前端 + Nginx) |
- 策略模式:ChapterSplitter(多种分章策略)、ScriptConverter(多种 LLM 引擎)
- 管道模式:上传 → 分章 → LLM 转换 → 校验 → 合并 → 润色 → 输出
- 适配器模式:中间 YAML Schema 统一表示,各阶段独立
- 零配置单文件数据库,评委不需要装 MySQL/PostgreSQL
- 部署简单,不需要 docker-compose 里多一个数据库容器
- 测试用 :memory: 模式,每个测试独立隔离
- 比赛是单用户场景,并发写入不是问题
- 两阶段转换:第一阶段生成结构化剧本 → 第二阶段"去 AI 味"润色对话
- System Prompt 包含:角色设定 + Schema 约束 + 风格适配 + Few-shot 示例
- 解析策略:正则提取 ```yaml 代码块 → Jackson YAML parse → 校验 → 失败 retry
- 三级降级:正常模式 / 缺 Key 引导提示 / API 超时降级
- 四大顶层分块:metadata / characters / locations / episodes
- 全局角色表 + ID 引用:同一角色跨章节统一
- 全局场景表 + ID 引用:地点归一化
- 多态 content 元素:action / dialogue / transition 按时间线排列
- scene_id 用 "集-场" 格式(如 "1-3")
- 每个 PR 只做一件事,粒度尽可能细
- PR 描述必须四段式:标题 + 功能描述 + 实现思路 + 测试方式
- PR 合并后 main 必须可运行
- 第一天结束时必须有可演示的东西
- 第三天只修 bug 和文档,不新增功能
- 命名避免通用教程名(用 SfResult 而非 ApiResult)
- 前端脚手阶段不写 CSS 变量/设计系统
详见 project-brief.md 第三部分"详细实施步骤"。
- API Key 未配置 → 前端显示引导提示,不白屏
- 提供"体验示例"按钮,加载硬编码 demo 剧本
- 第三方服务超时 → 返回降级结果,不抛异常