- 新增审核卡片和确认卡片模型,支持Agent推送审核任务和用户确认 - 实现审核卡片API服务,支持创建、更新、批准、驳回等操作 - 扩展审核维度配置,新增角色一致性、剧情连贯性等维度 - 优化前端审核配置页面,修复API路径错误和状态枚举问题 - 改进剧集创作平台布局,新增左侧边栏用于剧集管理和上下文查看 - 增强Skill管理,支持从审核系统跳转创建/编辑Skill - 修复episodes.json数据问题,清理聊天历史记录 - 更新Agent提示词,明确Skill引用加载流程 - 统一前端主题配置,优化整体UI体验
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. 克隆项目
git clone <repository-url>
cd creative_studio
2. 配置后端
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. 配置前端
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
前端服务将运行在 http://localhost:5173
常见问题排查
后端启动失败
-
ModuleNotFoundError: 确保在虚拟环境中安装了所有依赖
pip install -r requirements.txt -
编码错误 (Windows): 日志中的 emoji 显示警告不影响功能,如需修复请设置终端编码为 UTF-8
-
环境变量错误: 确保
.env文件存在且包含必填项 (ZAI_API_KEY,SECRET_KEY)
前端启动失败
- 端口占用: 如果 5173 端口被占用,Vite 会自动选择其他端口
- 依赖安装失败: 尝试删除
node_modules后重新安装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 工作流:
- 结构分析 - 分析场景构成、关键事件
- 大纲生成 - 生成本集大纲
- 对话创作 - 使用 Skill 创作剧本(支持参考文件)
- 一致性审核 - 检查一致性并更新记忆
- 记忆更新 - 提取事件、伏笔、人物状态
Skill
Skill 是可配置的创作能力单元,通过行为指导影响 LLM 的输出。
Skill 特性:
- 行为指导:指导 LLM 的输出风格和质量
- 参考文件:可上传 MD/TXT/JSON/YAML 文件作为参考
- Agent-Skill 生命周期:注册 → 路由 → 执行 → 反馈
- skill-creator 标准:使用 YAML frontmatter 和标准化目录结构
示例 Skill:
---
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
curl http://localhost:8000/api/v1/skills
获取 Skill 及其参考文件
curl http://localhost:8000/api/v1/skills/dialogue-writer-ancient/with-references
测试 Skill
curl -X POST http://localhost:8000/api/v1/skills/dialogue-writer-ancient/test \
-H "Content-Type: application/json" \
-d '{
"test_input": "请帮我创作一段古风对话",
"temperature": 0.7
}'
创建项目
curl -X POST http://localhost:8000/api/v1/projects \
-H "Content-Type: application/json" \
-d '{
"name": "我的古风剧集",
"totalEpisodes": 30,
"globalContext": {
"worldSetting": "架空朝代天启朝...",
"characterProfiles": {...}
}
}'
执行剧集创作
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: 基础设施 ✅
- FastAPI 框架搭建
- GLM-4.7 客户端封装
- Skill 管理系统
- 前端框架搭建
Phase 2: 核心功能 ✅
- Agent 执行引擎
- 项目管理系统
- 记忆系统
- 前端核心页面
- Markdown 渲染预览
- 参考文件 LLM 融入
Phase 3: 高级功能 ⚠️
- 内容 CRUD API
- 导出功能(基础)
- 三种执行模式完善
- Skill Marketplace
- PDF/DOCX 导出完善
Phase 4: 优化完善 📝
- UI/UX 优化
- 测试覆盖
- 部署方案
- 文档完善
文档导航
常见问题
如何获取智谱 AI API Key?
访问 智谱AI开放平台 创建 API Key。
支持哪些模型?
glm-4-flash- 快速响应模型(推荐)glm-4-plus- 高质量模型glm-4-0520- 稳定版本
Skill 的参考文件是如何工作的?
参考文件会被 SkillManager 加载,格式化后融入 GLM 客户端的系统提示词中,使 LLM 能够参考这些内容进行创作。
如何创建新的 Skill?
方法一:使用前端向导(推荐)
- 进入 Skill 管理页面
- 点击"创建新 Skill"
- 按照向导步骤填写信息、上传参考文件
- 预览并保存
方法二:使用 skill-creator 脚本
# 初始化 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
方法三:手动创建
- 在
backend/skills_storage/user_skills/下创建目录 - 创建
SKILL.md文件,包含 YAML frontmatter:
---
name: my-skill
description: 简短描述此 Skill 的用途
---
## 行为指导
你的行为指导...
- 可选:添加
references/目录存放参考文件 - 重启后端服务自动加载
许可证
MIT License
Creative Studio - 让 AI 创作更简单、更可控