Skip to content

修改世界书

提示

请务必先阅读如何正确使用酒馆助手

点击查看对应类型定义文件 (可发给 AI 或 IDE 使用, 酒馆助手界面中提供了打包下载)

rebindGlobalWorldbooks

重新绑定全局世界书

ts
function rebindGlobalWorldbooks(worldbook_names: string[]): Promise<void>;

参数

worldbook_names

  • 类型: string[]
  • 描述: 要全局开启的世界书名称列表

rebindCharWorldbooks

重新绑定角色卡世界书

ts
function rebindCharWorldbooks(character_name: 'current', char_worldbooks: CharWorldbooks): Promise<void>;

参数

character_name

  • 类型: 'current' | string
  • 描述: 角色卡名称, 'current' 表示当前打开的角色卡

char_worldbooks

rebindChatWorldbook

重新绑定聊天文件世界书

ts
function rebindChatWorldbook(chat_name: 'current', worldbook_name: string): Promise<void>;

参数

chat_name

  • 类型: 'current' | string
  • 描述: 聊天文件名称, 'current' 表示当前打开的聊天文件

replaceWorldbook

完全替换 worldbook_name 世界书的内容为 worldbook

ts
function replaceWorldbook(
  worldbook_name: string,
  worldbook: PartialDeep<WorldbookEntry>[],
  { render }?: ReplaceWorldbookOptions,
): Promise<void>;
ts
interface ReplaceWorldbookOptions {
  render?: 'debounced' | 'immediate';
}

参数

worldbook_name

  • 类型: string
  • 描述: 世界书名称

worldbook

option?

一个可选的配置对象, 包含以下属性:

  • render: debounced|immediate
    • 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染

示例

ts
const worldbook = await getWorldbook("eramgt少女歌剧");
await replaceWorldbook(
  'eramgt少女歌剧',
  worldbook.map(entry => ({
    ...entry,
    recursion: { prevent_incoming: true, prevent_outgoing: true, delay_until: null },
  })),
);
ts
const worldbook = await getWorldbook("eramgt少女歌剧");
_.remove(worldbook, entry => entry.name.includes('神乐光'));
await replaceWorldbook("eramgt少女歌剧", worldbook);

updateWorldbookWith

updater 函数更新世界书 worldbook_name

ts
function updateWorldbookWith(
  worldbook_name: string,
  updater: WorldbookUpdater,
  { render }?: ReplaceWorldbookOptions,
): Promise<WorldbookEntry[]>;
ts
type WorldbookUpdater =
  | ((worldbook: WorldbookEntry[]) => PartialDeep<WorldbookEntry>[])
  | ((worldbook: WorldbookEntry[]) => Promise<PartialDeep<WorldbookEntry>[]>);

参数

worldbook_name

  • 类型: string
  • 描述: 世界书名称

updater

  • 类型: WorldbookUpdater
  • 描述: 用于更新世界书的函数. 它应该接收世界书条目作为参数, 并返回更新后的世界书条目

option?

一个可选的配置对象, 包含以下属性:

  • render: debounced|immediate
    • 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染

返回值

示例

ts
await updateWorldbookWith('eramgt少女歌剧', worldbook => {
  return worldbook.map(entry => ({
    ...entry,
    recursion: { prevent_incoming: true, prevent_outgoing: true, delay_until: null },
  }));
});
ts
await updateWorldbookWith('eramgt少女歌剧', worldbook => {
  _.remove(worldbook, entry => entry.name.includes('神乐光'));
  return worldbook;
});

createWorldbookEntries

向世界书 worldbook_name 中新增条目

ts
function createWorldbookEntries(
  worldbook_name: string,
  new_entries: PartialDeep<WorldbookEntry>[],
  { render }?: ReplaceWorldbookOptions,
): Promise<{ worldbook: WorldbookEntry[]; new_entries: WorldbookEntry[] }>;

参数

worldbook_name

  • 类型: string
  • 描述: 世界书名称

new_entries

option?

一个可选的配置对象, 包含以下属性:

  • render: debounced|immediate
    • 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染

返回值

示例

ts
const { worldbook, new_entries } = await createWorldbookEntries('eramgt少女歌剧', [{ name: '神乐光' }, {}]);

deleteWorldbookEntries

删除世界书 worldbook_name 中的条目

ts
function deleteWorldbookEntries(
  worldbook_name: string,
  predicate: (entry: WorldbookEntry) => boolean,
  { render }?: ReplaceWorldbookOptions,
): Promise<{ worldbook: WorldbookEntry[]; deleted_entries: WorldbookEntry[] }>;

参数

worldbook_name

  • 类型: string
  • 描述: 世界书名称

predicate

option?

一个可选的配置对象, 包含以下属性:

  • render: debounced|immediate
    • 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染

返回值

示例

ts
const { worldbook, deleted_entries } = await deleteWorldbookEntries('eramgt少女歌剧', entry => entry.name.includes('神乐光'));

作者:KAKAA, 青空莉想做舞台少女的狗