SillyTavern知识图谱:结构化信息存储

【免费下载链接】SillyTavern LLM Frontend for Power Users. 【免费下载链接】SillyTavern 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern

概述

SillyTavern作为一款面向高级用户的LLM前端工具,其知识图谱系统(World Info)是其核心功能之一。该系统通过结构化的信息存储机制,为AI对话提供丰富的上下文背景,显著提升对话质量和一致性。

知识图谱架构设计

核心数据结构

SillyTavern的知识图谱采用分层的JSON结构存储,每个世界信息文件包含多个条目(entries),每个条目代表一个独立的知识单元:

{
  "entries": {
    "unique_id": {
      "key": ["主要关键词"],
      "keysecondary": ["次要关键词"], 
      "content": "详细内容描述",
      "comment": "注释信息",
      "selectiveLogic": 0,
      "scanDepth": 4,
      "sticky": 0,
      "cooldown": 0,
      "delay": 0
    }
  }
}

条目字段详解

字段名 类型 描述 默认值
key Array 主要触发关键词 必填
keysecondary Array 次要触发关键词 可选
content String 知识内容 必填
comment String 开发者注释 可选
selectiveLogic Number 激活逻辑类型 0
scanDepth Number 扫描深度 4
sticky Number 粘性持续时间 0
cooldown Number 冷却时间 0
delay Number 延迟激活 0

激活逻辑系统

SillyTavern支持多种激活逻辑,通过selectiveLogic字段控制:

mermaid

逻辑类型枚举

export const world_info_logic = {
    AND_ANY: 0,    // 任意关键词匹配即激活
    NOT_ALL: 1,    // 所有关键词都不匹配时激活
    NOT_ANY: 2,    // 任意关键词不匹配时激活  
    AND_ALL: 3     // 所有关键词都匹配时激活
};

扫描与匹配机制

深度缓冲区系统

SillyTavern采用先进的深度缓冲区机制来处理知识图谱的扫描:

class WorldInfoBuffer {
    #depthBuffer = [];      // 按深度排序的消息缓冲区
    #recurseBuffer = [];    // 递归扫描缓冲区
    #injectBuffer = [];     // 注入内容缓冲区
    #skew = 0;             // 扫描偏移量
    #startDepth = 0;       // 起始深度

    constructor(messages, globalScanData) {
        this.#initDepthBuffer(messages);
        this.#globalScanData = globalScanData;
    }
}

扫描上下文类型

系统支持多种上下文类型的扫描匹配:

上下文类型 字段名 描述
用户角色描述 matchPersonaDescription 用户设定的角色背景
角色描述 matchCharacterDescription AI角色背景信息
角色性格 matchCharacterPersonality AI角色性格特征
深度提示 matchCharacterDepthPrompt 角色深度提示信息
场景设定 matchScenario 对话场景背景
创作者注释 matchCreatorNotes 角色创作者注释

时间效应管理系统

SillyTavern实现了复杂的时间效应管理,确保知识条目的合理激活:

mermaid

时间效应配置示例

// 粘性条目:匹配后持续3轮对话
{
  "key": ["魔法", "咒语"],
  "content": "这是一个古老的魔法咒语...",
  "sticky": 3
}

// 冷却条目:激活后需要5轮冷却
{
  "key": ["秘密", "机密"],
  "content": "这是一个重要的秘密信息...", 
  "cooldown": 5
}

// 延迟条目:需要2轮延迟后激活
{
  "key": ["预言", "未来"],
  "content": "预言显示未来的事件...",
  "delay": 2
}

高级功能特性

递归扫描机制

SillyTavern支持递归扫描,允许知识条目触发其他条目的激活:

// 递归扫描配置
export let world_info_recursive = false;    // 是否启用递归
export let world_info_max_recursion_steps = 0; // 最大递归步数

预算控制系统

为了防止上下文过长,系统实现了智能的预算控制:

export let world_info_budget = 25;          // 知识内容token预算
export let world_info_budget_cap = 0;       // 预算上限
export let world_info_overflow_alert = false; // 溢出警告

分组评分系统

启用分组评分后,系统会对相关条目进行智能分组和优先级排序:

export let world_info_use_group_scoring = false; // 是否使用分组评分

最佳实践指南

1. 关键词设计策略

// 良好的关键词设计
const goodKeywords = {
  key: ["魔法学院", "霍格沃茨", "巫师学校"],
  keysecondary: ["教育", "学习魔法", "魔法训练"]
};

// 不佳的关键词设计  
const badKeywords = {
  key: ["魔法"], // 过于宽泛
  keysecondary: ["学校"] // 容易误触发
};

2. 内容结构化建议

# 角色名称
**基本信息**: 年龄、性别、职业等
**性格特点**: 主要性格特征
**背景故事**: 详细的背景信息
**特殊能力**: 拥有的特殊技能或能力
**关系网络**: 与其他角色的关系

3. 性能优化技巧

  • 使用适当的scanDepth(通常4-6)
  • 合理设置stickycooldown避免重复激活
  • 利用selectiveLogic精确控制激活条件
  • 定期清理不再需要的知识条目

技术实现细节

文件存储结构

worlds/
├── fantasy_world.json    # 奇幻世界知识库
├── scifi_world.json      # 科幻世界知识库  
├── historical_world.json # 历史世界知识库
└── custom_world.json     # 自定义知识库

API端点设计

SillyTavern提供了完整的RESTful API用于知识图谱管理:

端点 方法 功能
/worldinfo/get POST 获取世界信息
/worldinfo/delete POST 删除世界信息
/worldinfo/import POST 导入世界信息
/worldinfo/edit POST 编辑世界信息

总结

SillyTavern的知识图谱系统通过精心的架构设计和丰富的功能特性,为AI对话提供了强大的结构化信息支持。其灵活的激活逻辑、智能的时间效应管理和高效的扫描机制,使其成为构建复杂对话场景的理想工具。

通过合理利用知识图谱系统,用户可以创建更加丰富、一致和沉浸式的AI对话体验,充分发挥大型语言模型的潜力。

【免费下载链接】SillyTavern LLM Frontend for Power Users. 【免费下载链接】SillyTavern 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐