GalgameCharacterSkills
该工具能从Galgame剧情或长文本中提取角色信息,归纳为结构化摘要,并自动生成技能包或SillyTavern角色卡,支持VNDB增强,大幅简化角色创建流程。
pip install -e .Before / After 效果对比
1 组手动从冗长剧情文本中逐字阅读,耗时整理角色背景、性格、技能等信息,再制作角色卡片,效率低下且易遗漏。
自动分析长文本,智能提取并归纳角色核心信息,一键生成结构化技能包或SillyTavern角色卡,大幅节省时间。
Galgame Character Skills
将长文本中的角色信息归纳为结构化摘要,并进一步生成技能包或适用于 SillyTavern 的角色卡。
这是一个基于 Flask 的分层应用,包含任务编排、checkpoint 恢复、VNDB 信息增强、工作区输出约定,以及一套按架构主题组织的文档树。
功能概览
给定一段文本(Galgame剧情脚本/小说/任何单个长文本文件),自动将其中一个角色蒸馏为skills或是适用于SillyTavern的角色卡。
支持使用VNDB相关信息进行信息增强。在提供VNDB信息时,生成角色卡将会自动使用对应的立绘合并一份.png角色卡。如果你的角色于VNDB的信息不全/有偏差,最好不要使用。切勿在使用非VN角色时使用,哪怕你的目标是具有视觉小说版本的同名角色。
最好自行对生成结果进行一定程度的调整或是检查,即使有VNDB提供的信息也不保证符合实际。尤其是那些不属于VN的角色。
只测试过几个Galgame剧情文本,一般来说不要把多路线的所有内容一股脑塞进来,是没问题的。
理论上来说你也可以使用QQ聊天记录,或是任何其他东西来生成。
支持一定程度上的读取被意外中断的单次任务并继续。
作者的话
请积极报告任何可能存在的问题。由于个人能力有限,一些东西可能没办法测试,缺少极长的剧本和各种边缘情况。出现任何问题请及时提交issue。切勿在出问题时重复点击各种按钮导致token被浪费掉。
QQ小团体 1021295370
如果你有任何改进或建议,欢迎提交Pull Request。但在提交之前:请确保你至少review并测试过一次你修改的内容。
演示视频
以下视频录制于较早版本,界面与实现细节可能已经变化,但可以作为能力演示参考:
环境要求
- Python
>= 3.10 - 建议使用虚拟环境
安装
推荐使用包安装方式:
pip install -e .
如果你只想按当前锁定依赖运行,也可以使用:
pip install -r requirements.txt
启动
python main.py
默认会启动本地 Web 服务,并尝试自动打开浏览器访问 http://127.0.0.1:5000。
配置方式
支持两类配置来源:
- 在 Web 界面中直接填写
- 通过项目根目录下的
.env或环境变量提供默认值
如果你希望启动后自动带出默认配置,推荐使用仓库内的 .env.example:
cp .env.example .env
Windows PowerShell 可以使用:
Copy-Item .env.example .env
然后按需修改 .env 中的内容。.env 已被 .gitignore 忽略,不会默认进入版本控制。
关于 GCS_BASEURL:
- 目前通常需要你自己确认目标服务是否要求带
/v1 - 如果服务端接口地址要求使用
/v1,请在GCS_BASEURL中手动写完整 - 例如
https://api.openai.com/v1或http://localhost:11434/v1 - 后续版本会优化这里的处理,尽量提供自动补全,或自动兼容“带
/v1/ 不带/v1”两种写法
支持的配置项如下:
GCS_BASEURLGCS_MODELNAMEGCS_APIKEYGCS_MAX_RETRIESGCS_WORKSPACE_DIR
.env.example 中包含以下配置项:
GCS_BASEURL=https://api.openai.com/v1
GCS_MODELNAME=openai/gpt-4o-mini
GCS_APIKEY=your_api_key
GCS_MAX_RETRIES=3
GCS_WORKSPACE_DIR=workspace-data
说明:
- Web 界面中的填写值可以直接用于当前请求
.env和环境变量会作为默认值加载到页面GCS_WORKSPACE_DIR为空时,工作区默认使用项目根目录GCS_WORKSPACE_DIR为相对路径时,会基于项目根目录解析
基本使用流程
当前推荐流程分两步:
- 先执行
summarize选择文本文件,填写角色名、补充说明、并发数、切片大小等参数,对角色进行归纳。 - 再执行
skills或chara_card基于已经生成好的 summary 文件,为同一角色继续生成技能包或角色卡。
补充说明:
skills和chara_card都依赖已有的 summary 结果POST /api/skills会根据mode分发到技能包或角色卡流程- 长任务中断后可以从 checkpoint 列表中恢复
输入与输出目录
项目涉及两类路径约定:
输入文本
- Web 上传与文件扫描当前使用项目根目录下的
resource/ - 当前这版文档对应的实现里,
uploads/路径虽然已经出现在工作区路径约定中,但尚未接入输入主流程 - 因此在实际运行时,输入文件仍以
resource/为准
工作区输出
以下目录由工作区规则管理;当 GCS_WORKSPACE_DIR 为空时,默认落在项目根目录下:
summaries/:角色归纳结果skills/:技能包输出cards/:角色卡 JSON / PNG 输出checkpoints/:任务状态与恢复数据
如果你配置了 GCS_WORKSPACE_DIR,以上输出目录会切换到对应工作区根目录下。
文档索引
如果你想了解项目结构,从这里开始:
开发与测试
运行测试:
pytest
项目当前已经按 routes -> api -> application -> domain 的主链路分层,并通过 checkpoint / gateways / llm / files / workspace 等支撑层协作。
使用建议
- 尽量清理文本中的引擎指令、明显无关的路线、无关角色主线和冲突内容
- 如果角色在文本里经常只以外号、代称或模糊称谓出现,最好通过补充说明显式告知模型
- 不建议把大量无关章节、结局分支或视角频繁切换的内容一次性全部塞进去
- 如果 VNDB 角色信息明显不完整或不准确,宁可不用,也不要强行增强
已知限制
- Gemini 系列模型可能仍然会受到安全策略影响,导致某些文本无法稳定处理
- 生成结果仍然需要人工检查,尤其是非 VN 角色或输入文本质量较差的情况
- 运行时长会受到模型速度、并发、文本长度、切片数和压缩策略影响
贡献
欢迎提交 issue 或 Pull Request。
如果你准备提交修改,请至少先完成一次自查和测试,避免把明显行为回归直接带进来。
用户评价 (0)
发表评价
暂无评价
统计数据
用户评分
为此 Skill 评分