根据短篇小说自动生成可游玩角色卡(多角色 + 世界书 + 时间线)。
RolePlayCard 是一个面向 TavernAI / SillyTavern 工作流的角色卡工具。
你可以直接粘贴短篇小说全文,系统会自动提取角色、地点、首屏信息、剧情时间线,并生成可导出的角色卡 PNG。
| 模块 | 能力 |
|---|---|
| 短篇小说一键生成 | 全文解析 -> 先产出剧情骨架,再逐角色生成 |
| 时间线系统 | 独立编辑、支持父子树结构、图形化展示 |
| 玩家扮演角色 | 可指定一个角色导出时映射为 {{user}},保留背景设定 |
| 世界书条目 | 关键词/蓝灯触发、顺序/概率/插入位置/深度参数 |
| 文本增强 | 自定义或内置前置提示词(jailbreak-prompts/*.txt) |
| 导入导出 | 导入 PNG/JSON,导出 Tavern 兼容 PNG(含元数据) |
flowchart LR
A["短篇小说全文"] --> B["阶段1: 抽取 outline / 地点 / 时间线"]
B --> C["阶段2: 按角色逐个生成角色卡字段"]
C --> D["手动编辑: 角色 / 世界书 / 时间线图"]
D --> E["导出: TavernAI PNG + chara 元数据"]
- 前端: Vue 3 + Vite + TypeScript
- 后端: Python + Flask
- 测试: pytest
RolePlayCard/
├─ vue-renderer/ # 前端
├─ python-service/ # Flask API 与业务逻辑
├─ shared/ # 前后端共享类型
├─ jailbreak-prompts/ # 内置前置提示词(按 模型名.txt 匹配)
└─ version.md # 版本日志
npm install
python -m pip install -r python-service/requirements.txt若 npm 提示 allow-scripts,项目已在 package.json 中批准当前锁定的 esbuild 安装脚本版本。升级依赖后如出现新的待审核版本,先查看:
npm approve-scripts --allow-scripts-pending确认来源后再批准:
npm approve-scripts esbuildnpm run dev默认会同时启动:
- 应用入口(Vite):
http://127.0.0.1:8765 - Python API(由 Vite 代理):
http://127.0.0.1:8766
如需修改端口、监听地址或数据目录,复制 .env.example 为 .env 后修改:
cp .env.example .envWindows PowerShell:
Copy-Item .env.example .env.env 会覆盖同名系统环境变量;不要提交 .env。
局域网访问时只需要把 .env 中的 APP_HOST 改为 0.0.0.0,开发和 PM2 生产都访问同一个端口:
APP_HOST=0.0.0.0
APP_PORT=8765npm run typecheck
npm run testPM2 会先构建前端,再用同一个 Python 服务托管前端页面和 API。业务运行配置统一来自 .env,ecosystem.config.js 只定义 PM2 进程。
npm install -g pm2
npm install
python -m pip install -r python-service/requirements.txt
npm run pm2:start默认访问:
- 页面:
http://127.0.0.1:8765 - 健康检查:
http://127.0.0.1:8765/api/health
常用管理命令:
npm run pm2:logs
npm run pm2:restart
npm run pm2:stop
npm run pm2:delete如需修改监听地址、端口或数据目录,编辑 .env 中的 APP_HOST、APP_PORT、DATA_DIR、STATIC_DIR,然后执行 npm run pm2:restart。
- 打开编辑器顶部的“短篇小说一键生成”。
- 粘贴小说全文或上传
.txt。 - 点击“根据短篇小说生成角色卡”。
- 在角色列表中可指定一个“玩家扮演”角色。
- 在时间线中检查主线与分叉结构(图与列表会同步)。
- 导出 TavernAI PNG。
- 文本调用支持拼接:
前置提示词 + 正常提示词。 - 若开启内置模式,会按模型名匹配
jailbreak-prompts/<model>.txt。 - 未命中时回退到自定义前置提示词。
当前发布节奏与变更详见:
破限提示词来自: