Skip to content

YC-1123/ai-script-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Script Workshop - ai剧本工坊

🎭 项目创意来源

灵感起源

通过玩《逆转裁判》思考如何自己从0到1开发一个文字冒险类的游戏。。。

剧本如何创作?

传统的剧本创作往往受限于作者的想象力和预设情节,一旦改变情节或人物设定,剧本内容都需要推翻重演,因此思考另外一种全新的可能性。

如何利用AI,让角色自主演绎剧情,创造出无法预测的故事发展,同时又能支持即插即用。

核心想法

  • AI驱动的角色扮演:每个角色都有独特的性格、背景、说话风格和情绪
  • 动态剧情演化:故事不再是线性的,而是根据角色互动自然发展
  • 用户参与感:用户不再是被动接受者,可以通过指令影响剧情走向
  • 情绪状态机:角色的情绪会影响对话风格,让互动更加真实

🛠️ 开发历程

第一阶段:基础架构搭建

时间:项目初期
目标:建立基本的角色系统和对话Prompt模板

AI协助的Prompt指令:

请帮我设计一个Python项目架构,用于创建AI角色对话系统。需要包含:
1. 角色配置管理
2. 对话生成引擎
3. 剧情状态控制
4. 用户交互模块
5. Prompt模板

请使用面向对象的设计模式,确保代码的可扩展性。

开发成果

  • 创建了 CharacterProfile 数据类定义角色属性
  • 实现了 CharacterContextManager 管理角色上下文
  • 搭建了基础的目录结构:actors/, engine/, story/, user_input/, prompts/

MCP集成设计思路

虽然当前版本使用直接API调用,但 CharacterContextManager 的设计为MCP集成预留了接口:

MCP集成优势

  • 标准化上下文传递:通过MCP协议,角色上下文可以标准化地传递给不同的AI模型
  • 工具链扩展:可以为角色添加外部工具能力(如角色形象生成、角色配音生成等)
  • 多模型支持:同一角色可以根据需要切换不同的AI模型

潜在集成方案

# 未来MCP集成示例
class CharacterContextManager:
    def __init__(self, character_name: str, mcp_client=None):
        self.mcp_client = mcp_client  # MCP客户端
        # ... 现有代码
    
    async def generate_response(self, prompt: str) -> str:
        if self.mcp_client:
            # 通过MCP协议发送上下文和工具
            context = {
                "character_profile": self.profile,
                "conversation_history": self.history,
                "available_tools": ["emotion_analyzer", "plot_generator"]
            }
            return await self.mcp_client.generate_with_context(prompt, context)
        else:
            # 回退到直接API调用
            return await generate_response(self.name, prompt)

第二阶段:智能对话引擎

时间:核心功能开发期 目标:基于DeekSeek-Chat模型实现AI角色的智能对话生成

AI协助的Prompt指令:

帮我优化角色对话生成的prompt模板,要求:
1. 角色能够保持一致的性格特征
2. 能够根据剧情阶段调整对话内容
3. 支持情绪状态影响语言风格
4. 能够回应其他角色的问题和互动

请提供具体的prompt构建策略。

开发成果

  • 集成DeepSeek API作为对话生成引擎
  • 实现了上下文记忆机制,角色能记住之前的对话
  • 添加了智能问题检测,角色能主动回应其他角色的问题
  • 创建了情绪到语调的映射系统

第三阶段:剧情状态机

时间:系统完善期
目标:实现动态剧情推进机制

AI协助的Prompt指令:

设计一个剧情状态机系统,能够:
1. 根据角色对话内容自动判断剧情阶段
2. 支持"相遇-冲突-理解"的三段式结构
3. 实现触发条件检测,自动推进剧情
4. 提供状态查询和重置功能

请提供Python实现代码。

开发成果

  • 实现了 StoryState 类管理剧情阶段
  • 创建了emotion_trigger触发规则系统,能够智能检测剧情转折点
  • 添加了剧情标志位flags,记录节点的发生

第四阶段:用户交互系统

时间:功能增强期
目标:让用户能够参与和影响剧情发展

AI协助的Prompt指令:

创建一个用户输入路由系统,支持以下功能:
1. 情绪切换指令 - 改变角色的情绪状态
2. 剧情注入指令 - 向故事中添加新的情节元素
3. 状态查看指令 - 显示当前系统状态
4. 指令解析和错误处理

请使用命令模式设计。

开发成果

  • 实现了 InputRouter 类处理用户指令
  • 支持实时情绪切换,影响角色对话风格
  • 添加了剧情注入功能,用户可以引入新的故事元素
  • 创建了友好的命令行交互界面

第五阶段:系统集成与优化

时间:项目收尾期
目标:整合所有模块,优化用户体验

AI协助的Prompt指令:

帮我优化整个系统的协调机制:
1. 确保角色轮流发言的公平性
2. 优化prompt构建,减少API调用次数
3. 添加异常处理和错误恢复
4. 提升系统的稳定性和可用性

请提供具体的优化建议和代码改进。

开发成果

  • 实现了 Director 作为总控制器
  • 添加了 ResponseCoordinator 确保角色轮流发言
  • 优化了prompt构建逻辑,提高生成质量
  • 完善了错误处理和系统稳定性

🎮 应用玩法文档

基础玩法

1. 观看模式

操作:直接运行程序,不输入任何指令
体验:观看AI角色自主演绎完整剧情,体验不可预测的故事发展

示例场景

莉亚:这里的控制台还在运行,看起来我们不是唯一的幸存者。
凯德:或者说,我们根本不是幸存者,而是被故意唤醒的。
莉亚:你的意思是...有人在操控这一切?

2. 情绪导演模式

操作:使用 切换情绪 [情绪名称] 指令
体验:改变角色的情绪状态,观察对话风格的变化

可用情绪

  • 愤怒 → 语言激烈,带有攻击性
  • 恐惧 → 语言谨慎,充满不安
  • 兴奋 → 语言活跃,充满期待
  • 悲伤 → 语言低沉,带有忧郁
  • 平静 → 语言理性,保持冷静

示例操作

>>> 切换情绪 愤怒
【系统】角色情绪已设定为:愤怒

凯德:够了!我受够了这些谜团!到底是谁把我们困在这个鬼地方!

3. 剧情编剧模式

操作:使用 注入剧情 [剧情内容] 指令
体验:向故事中添加新的情节元素,引导剧情发展

注入示例

>>> 注入剧情 突然警报响起,显示有外星生物接近飞船
【系统】已注入新剧情片段:突然警报响起,显示有外星生物接近飞船

莉亚:警报系统激活了!扫描显示有未知生命体正在接近我们的位置!
凯德:外星生物?这下我们真的麻烦了...

高级玩法

1. 连续剧情塑造

通过连续的情绪切换和剧情注入,创造复杂的故事线:

第1轮:注入剧情 发现了前任船员的日志
第2轮:切换情绪 恐惧
第3轮:注入剧情 日志显示船上发生过可怕的事件
第4轮:切换情绪 愤怒

2. 角色关系实验

观察不同情绪状态下角色关系的变化:

  • 平静状态:理性讨论,专业合作
  • 愤怒状态:激烈争吵,互相指责
  • 恐惧状态:相互依靠,寻求安慰
  • 兴奋状态:积极互动,充满希望

3. 剧情分支探索

通过不同的剧情注入,探索故事的多种可能性:

科幻路线

注入剧情 发现了时空跳跃装置
注入剧情 检测到平行宇宙的信号

悬疑路线

注入剧情 发现了隐藏的监控设备
注入剧情 收到了来自未知发送者的神秘信息

生存路线

注入剧情 生命支持系统开始故障
注入剧情 食物和水源即将耗尽

系统指令

状态查看

>>> 查看状态
【系统】当前情绪:愤怒,注入剧情:发现了外星生物的踪迹

重置系统

重新启动程序即可重置所有状态,开始新的故事。

🚀 技术特色

1. 智能上下文管理

  • 角色能记住最近3轮对话内容
  • 自动检测和回应其他角色的问题
  • 根据剧情阶段调整对话策略
  • MCP兼容设计:上下文管理器采用模块化设计,为未来MCP集成预留接口

2. 动态情绪系统

  • 情绪状态实时影响语言风格
  • 支持多种情绪的无缝切换
  • 情绪与角色性格的有机结合

3. 智能剧情推进

  • 基于对话内容自动检测剧情转折点
  • 支持三段式剧情结构的自然演进
  • 用户干预与AI自主发展的平衡

4. 模块化架构

  • 清晰的职责分离,易于扩展
  • 支持新角色和新剧情模板的快速添加
  • 灵活的配置系统
  • MCP就绪架构:采用标准化的接口设计,便于集成MCP服务器和工具链

🎯 未来发展方向

短期目标

  • MCP协议集成:将角色上下文管理迁移到MCP标准,支持工具链扩展
  • 添加更多角色类型和性格模板
  • 支持更复杂的剧情分支结构
  • 优化AI生成的对话质量和连贯性
  • 添加对话历史的保存和回放功能

长期愿景

  • MCP生态集成:支持第三方MCP服务器,为角色提供丰富的外部工具能力
  • 支持多人协作编剧模式
  • 集成语音合成,实现有声剧本
  • 开发Web界面,提供更好的用户体验
  • 支持自定义角色和世界观设定
  • 集成图像生成,创建视觉化剧本

💡 创新价值

这个项目展示了AI在创意内容生成领域的巨大潜力:

  1. 突破传统创作限制:AI角色能够产生人类作者难以预料的对话和情节发展
  2. 提供新的娱乐体验:用户既是观众又是导演,能够参与和影响故事发展
  3. 探索AI协作创作:展示了人机协作在创意领域的可能性
  4. 技术与艺术的结合:将先进的AI技术应用于文学创作和娱乐体验

这不仅仅是一个技术项目,更是对AI辅助创作新模式的探索和实验。通过这个项目,我们可以看到AI在未来创意产业中的无限可能。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages