这是一个基于克苏鲁的召唤第7版规则的AI守秘人(TRPG主持人)系统,为玩家提供沉浸式的桌面角色扮演游戏体验。系统通过AI技术模拟专业的KP守秘人,支持角色创建、规则查询、剧情推进等功能。
- 后端: Python FastAPI
- 前端: React + Vite
- AI模型: 基于大语言模型的智能对话系统
- 数据库: 向量数据库(规则知识库) + JSON(游戏状态)
- 主要API服务:
http://127.0.0.1:8001 - 备用API服务:
http://127.0.0.1:8000 - 前端开发服务器:
http://localhost:3000
COC/
├── coc-frontend/ # React前端项目
│ ├── src/
│ │ ├── api/ # API客户端
│ │ ├── components/ # React组件
│ │ ├── pages/ # 页面组件
│ │ ├── hooks/ # 自定义Hooks
│ │ ├── utils/ # 工具函数
│ │ └── assets/ # 静态资源
│ └── package.json
├── coc_agent.py # AI守秘人核心逻辑
├── coc_apiagent.py # API代理服务
├── coc_gradio_bot.py # Gradio界面
├── gm_api_server.py # 游戏管理API服务器
├── build_kb.py # 知识库构建脚本
├── character_sheet.py # 角色卡系统
├── rag_retriever.py # 检索增强生成
├── coc_rules.index # 规则索引文件
└── coc_rules_chunk_map.json # 规则分块映射
身份: AI守秘人"凛" 性格特点:
- 严格而专业的TRPG主持人
- 对CoC 7版规则了如指掌
- 强调理智值(SAN)的重要性,时刻关注玩家的SAN值变化
- 营造恐怖、悬疑的游戏氛围
- 公平公正,注重游戏平衡性
- 适时提供规则解释和世界背景描述
说话风格:
- 冷静、客观、略带严肃
- 在描述恐怖场景时会增加氛围感
- 解释规则时清晰准确
- 关注玩家状态:"你的理智值还剩多少?", "这可能会对你的SAN值造成影响"
- JavaScript: 使用ES6+语法,遵循ESLint规则
- React: 使用函数组件和Hooks,保持组件单一职责
- CSS: 使用BEM命名规范,优先使用Flexbox/Grid布局
- API设计: RESTful风格,统一的错误处理机制
feat: 新功能fix: 修复bugdocs: 文档更新style: 代码格式调整refactor: 代码重构test: 测试相关chore: 构建过程或辅助工具的变动
- 单一职责: 每个组件只负责一个功能
- 可复用性: 通用组件应该高度可配置
- 性能优先: 合理使用useMemo, useCallback等优化手段
- 用户体验: 注重加载状态、错误处理和交互反馈
- 响应式设计: 适配桌面和移动设备
- 使用统一的API客户端(
cocApi.js) - 所有API调用包含loading状态处理
- 统一的错误处理和用户提示
- 合理的请求频率控制
- 重要操作需要确认机制
- 角色创建: 完整的CoC 7版角色卡生成,支持自定义命名
- 规则查询: 基于向量搜索的规则检索系统
- 智能对话: AI驱动的剧情推进和NPC交互
- 检定系统: 自动化的技能检定和SAN值计算
- 存档功能: 游戏进度保存和恢复
- 多模态: 支持文字、图片等多种输入方式
- 快捷选项: 自动解析选项,提供点击按钮操作
- 对话历史: 实时显示最近对话记录,支持展开收起
- 任务提示: 智能提取当前任务,不会因点击继续而消失
- 动态背景: 根据剧情氛围自动切换背景图片
- 思考状态: AI思考时显示特殊视觉效果和提示
系统包含9张动态背景图片,根据游戏场景自动切换:
- kp-rin-normal.png - 常规状态:默认背景,用于一般对话
- kp-rin-horror.png - 恐怖场景:遇到怪物、SAN值检定、恐怖描述
- kp-rin-combat.png - 战斗场景:战斗、逃跑、对抗等激烈场面
- kp-rin-tense.png - 紧张悬疑:调查、探索、发现线索时
- kp-rin-peaceful.png - 平静结局:解决谜题、游戏安全结束
- kp-rin-happy.png - 开心成功:大成功、完美表现时
- kp-rin-funny.png - 搞笑欢乐:有趣、意外的搞笑情节
- 思考状态效果 - AI思考时自动添加暗化和模糊效果
- 动态切换 - 平滑的背景过渡动画
- 最高优先级: 恐怖场景 (SAN、理智、恐怖、怪物、疯狂)
- 次优先级: 战斗场景 (战斗、攻击、逃跑、对抗)
- 中等优先级: 紧张悬疑 (调查、线索、危险、警惕)
- 特殊场景: 平静结局、成功开心、搞笑欢乐
- 默认状态: 常规背景
当AI正在思考时:
- 背景自动变暗 (brightness: 0.7)
- 添加轻微模糊效果 (blur: 1px)
- 添加呼吸灯动画效果
- 显示思考中浮层提示
- 理智值系统: 这是CoC的核心机制,需要特别关注
- 恐怖氛围: 通过UI设计和文案营造适当的恐怖感
- 规则准确性: 确保所有机制符合CoC 7版规则书
- 用户体验: 界面直观,操作简单,减少认知负担
- 性能优化: AI响应可能较慢,需要合理的loading处理
- 后端: Python 3.8+, FastAPI, 依赖见requirements.txt
- 前端: Node.js 16+, npm/yarn包管理器
- 开发环境: 使用Vite代理解决跨域问题
- 生产环境: 建议使用Nginx反向代理和静态文件服务