Skip to content

v0.1.4

Choose a tag to compare

@iwyxdxl iwyxdxl released this 19 Apr 09:10

新增

  • 世界书系统:独立管理"全局 / 选中角色"两种作用域的世界书,支持关键词匹配触发;每本书可包含多个命名小节,角色对话时按作用域和关键词注入上下文
  • 世界书与角色的双向绑定:在世界书编辑页按角色勾选绑定,或在角色编辑页挑选要携带的世界书;任一侧保存都会同步另一侧,删除世界书或角色时自动清理遗留绑定
  • 角色卡统一导入导出:通讯录页支持导入 SillyTavern v2/v3 PNG 或 JSON 角色卡,角色详情页可导出为 PawzoChat 原生包(.zip,推荐,保留记忆/主动消息/tool_policy 等 PawzoChat 独有字段)、SillyTavern v3 PNG、SillyTavern v3 JSON
  • 世界书导出:单本世界书编辑页顶栏新增「导出」按钮(位于「保存」左侧),可选 PawzoChat 原生 JSON 或 SillyTavern 世界书 JSON(entries 结构)
  • SillyTavern 角色卡内嵌 character_book 自动创建为独立世界书并绑定到新导入的角色
  • PawzoChat 角色导出为 SillyTavern 格式时,所有绑定世界书合并为一个 character_book 随卡片一同分发
  • PNG 角色卡同时写入 ccv3chara 两个 tEXt chunk,v3 与 v2 客户端都能识别

修复

  • 对话设置 / 回复设置保存成功后前端立即以服务端返回值刷新表单,不再显示旧值

兼容性说明

  • SillyTavern 卡片的 first_mes(开场白)与 alternate_greetings(备选问候语)在导入时丢弃,UI 会弹窗提示(PawzoChat 当前没有开场白概念)
  • SillyTavern 世界书的 per-entry selective / order / position / depth / probability / keysecondary / match_* 等"PawzoChat UI 无法编辑"的字段通过 extras.sillytavern 完整往返;而 key / constant 由 PawzoChat 的 scope/keywords 作唯一权威,导出时始终反映当前本地设置(不会被历史 ST 值覆盖)
  • 角色导入、世界书导入、角色卡内嵌世界书导入三条路径共用同一套解析实现(card_parser.decode_card_json + persona_card.character_book_to_worldbook),对 UTF-8 BOM / GBK / 排序键 / 键名回退等细节行为一致
  • 新增模块:pawzochat/services/worldbook.pypawzochat/services/card_parser.pypawzochat/services/persona_card.pypawzochat/services/bundle.py
  • 新增路由:/api/worldbooks CRUD、POST /api/personas/_importGET /api/personas/<id>/_exportGET /api/worldbooks/<name>/_export