# Creative Studio > 基于 **Agent + Skill 架构** 的 AI 剧集创作平台 > > 集成智谱 AI GLM-4.7 模型,提供完整的自动化剧集创作解决方案 ## 项目概述 Creative Studio 是一个创新的 AI 内容创作平台,通过 **可配置的 Skill(技能)** 指导 AI Agent 进行剧集创作。 ### 核心特性 | 特性 | 说明 | |-----|------| | **Agent + Skill 架构** | 固定的 Agent 工作流 + 可配置的 Skill 行为指导 | | **参考文件支持** | Skill 可关联参考文件(MD/TXT/JSON/YAML),融入 LLM 上下文 | | **全局上下文管理** | 世界观、人物小传、场景设定等全局配置 | | **记忆系统** | 事件时间线、伏笔追踪、人物状态变化记录 | | **多集一致性** | 自动维护多集内容的一致性 | | **审核系统** | 多维度质量审核和自动修复建议 | | **内容管理** | Markdown 渲染预览、编辑、导出(MD/TXT/PDF/DOCX) | ### 技术栈 ``` 后端: FastAPI + GLM-4.7 + MongoDB + Redis 前端: React 18 + TypeScript + Ant Design + Vite + react-markdown + react-syntax-highlighter ``` ## 快速开始 ### 前置要求 - Python 3.11+ - Node.js 18+ - MongoDB 7.0+ (可选,默认使用内存存储) - Redis 7.0+ (可选,用于 Celery 任务队列) - 智谱 AI API Key ### 1. 克隆项目 ```bash git clone cd creative_studio ``` ### 2. 配置后端 ```bash cd backend # (推荐) 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/Mac: source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境变量 # Windows: copy .env.example .env # Linux/Mac: cp .env.example .env # 编辑 .env 文件,必须配置以下内容: # - ZAI_API_KEY: 你的智谱 AI API Key (必填) # - SECRET_KEY: 随机生成的密钥 (必填) # 其他配置可以使用默认值 # 启动后端服务 python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` 后端服务将运行在 `http://localhost:8000` API 文档: `http://localhost:8000/docs` 健康检查: `http://localhost:8000/health` ### 3. 配置前端 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务将运行在 `http://localhost:5173` ### 常见问题排查 #### 后端启动失败 1. **ModuleNotFoundError**: 确保在虚拟环境中安装了所有依赖 ```bash pip install -r requirements.txt ``` 2. **编码错误 (Windows)**: 日志中的 emoji 显示警告不影响功能,如需修复请设置终端编码为 UTF-8 3. **环境变量错误**: 确保 `.env` 文件存在且包含必填项 (`ZAI_API_KEY`, `SECRET_KEY`) #### 前端启动失败 1. **端口占用**: 如果 5173 端口被占用,Vite 会自动选择其他端口 2. **依赖安装失败**: 尝试删除 `node_modules` 后重新安装 ```bash rm -rf node_modules # Linux/Mac rmdir /s node_modules # Windows npm install ``` #### 数据库连接失败 如果没有安装 MongoDB 或 Redis,应用仍可正常运行,将使用内存存储。生产环境建议配置数据库。 ## 项目结构 ``` creative_studio/ ├── backend/ # FastAPI 后端 │ ├── app/ │ │ ├── main.py # 应用入口 │ │ ├── config.py # 配置管理 │ │ ├── api/v1/ # API 路由 │ │ │ ├── skills.py # Skill 管理 API │ │ │ ├── projects.py # 项目管理 API │ │ │ ├── episodes.py # 剧集内容 API │ │ │ ├── uploads.py # 文件上传 API │ │ │ └── agents.py # Agent 管理 API │ │ ├── core/ │ │ │ ├── llm/ # GLM-4.7 客户端(支持参考文件) │ │ │ ├── skills/ # Skill 管理器(支持 skill-creator 脚本) │ │ │ ├── agents/ # Agent 执行引擎 │ │ │ ├── memory/ # 记忆系统 │ │ │ └── review/ # 审核系统 │ │ ├── models/ # 数据模型 │ │ └── utils/ # 工具函数 │ ├── skills_storage/ # Skill 文件存储 │ │ ├── builtin_skills/ # 内置 Skills(平台维护) │ │ │ └── skill-creator/ # Skill 创建工具(用于创建新 Skills) │ │ └── user_skills/ # 用户 Skills │ │ ├── consistency_checker/ │ │ └── dialogue_writer_ancient/ │ └── requirements.txt │ ├── frontend/ # React 前端 │ ├── src/ │ │ ├── pages/ # 页面组件 │ │ │ ├── SkillManagement.tsx │ │ │ ├── ProjectWorkspace.tsx │ │ │ ├── ExecutionMonitor.tsx │ │ │ └── MemorySystem.tsx │ │ ├── components/ # 通用组件 │ │ │ ├── MarkdownRenderer.tsx # Markdown 渲染组件 │ │ │ ├── ContentEditor.tsx # 内容编辑器 │ │ │ └── SkillCreateWizard.tsx # Skill 创建向导 │ │ ├── stores/ # Zustand 状态管理 │ │ └── services/ # API 服务 │ │ ├── episodeContentService.ts │ │ ├── uploadService.ts │ │ └── skillService.ts │ └── package.json │ ├── docs/ # 详细文档 │ ├── ARCHITECTURE.md # 技术架构详解 │ └── API.md # API 接口文档 │ ├── creative-studio-platform.md # 原始产品规格文档(参考) └── README.md # 本文件 ``` ## 核心概念 ### Agent Agent 是**固定的工作流框架**,由平台维护,用户不可编辑。 **剧集创作 Agent 工作流**: 1. 结构分析 - 分析场景构成、关键事件 2. 大纲生成 - 生成本集大纲 3. 对话创作 - 使用 Skill 创作剧本(支持参考文件) 4. 一致性审核 - 检查一致性并更新记忆 5. 记忆更新 - 提取事件、伏笔、人物状态 ### Skill Skill 是**可配置的创作能力单元**,通过行为指导影响 LLM 的输出。 **Skill 特性**: - **行为指导**:指导 LLM 的输出风格和质量 - **参考文件**:可上传 MD/TXT/JSON/YAML 文件作为参考 - **Agent-Skill 生命周期**:注册 → 路由 → 执行 → 反馈 - **skill-creator 标准**:使用 YAML frontmatter 和标准化目录结构 **示例 Skill**: ```markdown --- name: dialogue-writer-ancient description: Expert ancient-style dialogue writer for period dramas. Use this skill when creating character dialogue that must match historical settings. --- ## 行为指导 你创作对话时必须遵循以下规则: 1. 使用半文半白的表达,如"何故"、"罢了"、"莫要" 2. 皇室说话威严少语,武将直率简短,文官婉转 3. 愤怒时用动作表达,不要直接说"我很生气" 4. 重要对话一句不超过 15 字 ``` ### 参考文件 Skill 可以关联参考文件,文件内容会被自动融入 LLM 上下文: - **支持的格式**:MD, TXT, JSON, YAML - **文件大小限制**:100KB(默认) - **融入方式**:格式化后注入到系统提示词中 ### 全局上下文 项目级共享设定: - **世界观设定**: 背景世界描述 - **人物小传**: 角色设定、性格、说话风格 - **场景设定**: 常驻场景描述 - **整体大纲**: 故事线、转折点 ### 记忆系统 自动维护一致性: - **事件时间线**: 已发生的关键事件 - **伏笔追踪**: 新增伏笔、待收线问题 - **人物状态**: 各人物状态的历史变化 ### 审核系统 多维度质量检查: - **人物一致性**: 角色行为是否与设定一致 - **剧情逻辑**: 故事逻辑是否连贯 - **对话质量**: 对话是否自然流畅 ## API 使用示例 ### 列出所有 Skills ```bash curl http://localhost:8000/api/v1/skills ``` ### 获取 Skill 及其参考文件 ```bash curl http://localhost:8000/api/v1/skills/dialogue-writer-ancient/with-references ``` ### 测试 Skill ```bash curl -X POST http://localhost:8000/api/v1/skills/dialogue-writer-ancient/test \ -H "Content-Type: application/json" \ -d '{ "test_input": "请帮我创作一段古风对话", "temperature": 0.7 }' ``` ### 创建项目 ```bash curl -X POST http://localhost:8000/api/v1/projects \ -H "Content-Type: application/json" \ -d '{ "name": "我的古风剧集", "totalEpisodes": 30, "globalContext": { "worldSetting": "架空朝代天启朝...", "characterProfiles": {...} } }' ``` ### 执行剧集创作 ```bash curl -X POST http://localhost:8000/api/v1/projects/{project_id}/execute \ -H "Content-Type: application/json" \ -d '{ "episode_number": 1 }' ``` ## 主要功能 ### Skill 管理 - 查看 Skill 列表(内置 + 用户自定义) - 使用 skill-creator 向导创建 Skill - 上传参考文件(MD/TXT/JSON/YAML) - 测试 Skill 效果 - 编辑 Skill 内容和配置 ### 项目管理 - 创建和管理剧集项目 - 配置全局上下文 - 选择使用的 Skills - 查看项目进度和统计 ### 剧集创作 - 单集创作 - 批量创作 - 实时进度监控 - 自动保存到数据库 ### 内容管理 - **Markdown 渲染预览**:使用 react-markdown + react-syntax-highlighter - **在线编辑**:直接编辑剧集内容 - **质量审核**:通过/拒绝、添加审核意见 - **导出功能**:支持 MD/TXT/PDF/DOCX 格式 ### 记忆系统 - 事件时间线查看 - 伏笔追踪和管理 - 人物状态变化记录 ## 开发路线图 ### Phase 1: 基础设施 ✅ - [x] FastAPI 框架搭建 - [x] GLM-4.7 客户端封装 - [x] Skill 管理系统 - [x] 前端框架搭建 ### Phase 2: 核心功能 ✅ - [x] Agent 执行引擎 - [x] 项目管理系统 - [x] 记忆系统 - [x] 前端核心页面 - [x] Markdown 渲染预览 - [x] 参考文件 LLM 融入 ### Phase 3: 高级功能 ⚠️ - [x] 内容 CRUD API - [x] 导出功能(基础) - [ ] 三种执行模式完善 - [ ] Skill Marketplace - [ ] PDF/DOCX 导出完善 ### Phase 4: 优化完善 📝 - [ ] UI/UX 优化 - [ ] 测试覆盖 - [ ] 部署方案 - [ ] 文档完善 ## 文档导航 - **[API 文档](docs/API.md)** - 完整的 REST API 接口文档 - **[架构文档](docs/ARCHITECTURE.md)** - 技术架构详细说明 - **[原始产品规格](creative-studio-platform.md)** - 原始产品规格文档(参考) ## 常见问题 ### 如何获取智谱 AI API Key? 访问 [智谱AI开放平台](https://open.bigmodel.cn/usercenter/apikeys) 创建 API Key。 ### 支持哪些模型? - `glm-4-flash` - 快速响应模型(推荐) - `glm-4-plus` - 高质量模型 - `glm-4-0520` - 稳定版本 ### Skill 的参考文件是如何工作的? 参考文件会被 SkillManager 加载,格式化后融入 GLM 客户端的系统提示词中,使 LLM 能够参考这些内容进行创作。 ### 如何创建新的 Skill? **方法一:使用前端向导(推荐)** 1. 进入 Skill 管理页面 2. 点击"创建新 Skill" 3. 按照向导步骤填写信息、上传参考文件 4. 预览并保存 **方法二:使用 skill-creator 脚本** ```bash # 初始化 Skill 模板 cd backend/skills_storage/builtin_skills/skill-creator/scripts python init_skill.py my-skill --path ../../../user_skills/ # 编辑 SKILL.md 文件 # 添加参考文件到 references/ 目录 # 验证 Skill python quick_validate.py ../../../user_skills/my-skill # 打包 Skill(可选) python package_skill.py ../../../user_skills/my-skill ``` **方法三:手动创建** 1. 在 `backend/skills_storage/user_skills/` 下创建目录 2. 创建 `SKILL.md` 文件,包含 YAML frontmatter: ```markdown --- name: my-skill description: 简短描述此 Skill 的用途 --- ## 行为指导 你的行为指导... ``` 3. 可选:添加 `references/` 目录存放参考文件 4. 重启后端服务自动加载 ## 许可证 MIT License --- **Creative Studio** - 让 AI 创作更简单、更可控