Skip to content

修改世界书条目

setLorebookEntries

修改世界书中的条目信息。

typescript
async function setLorebookEntries(
  lorebook: string,
  entries: Array<Pick<LorebookEntry, 'uid'> & Partial<LorebookEntry>>
): Promise<LorebookEntry[]>;

参数

lorebook

  • 类型: string
  • 描述: 条目所在的世界书名称

entries

  • 类型: Array<Pick<LorebookEntry, 'uid'> & Partial<LorebookEntry>>
  • 描述: 要修改的条目信息数组。其中必须有 "uid",而其他字段可选

返回值

  • 更新后的世界书条目: LorebookEntry[] - 更新后的全部条目信息

注意

这只是修改信息,不能创建新的条目,因此要求条目必须已经在世界书中。

示例

typescript
const lorebook = "eramgt少女歌剧";
const entries = await getLorebookEntries(lorebook);
const updatedEntries = await setLorebookEntries(
  lorebook,
  entries.map((entry) => ({
    uid: entry.uid,
    prevent_recursion: true,
  }))
);
typescript
const lorebook = "eramgt少女歌剧";
const entries = await getLorebookEntries(lorebook);
const updatedEntries = await setLorebookEntries(
  lorebook,
  entries.map((entry) => ({
    uid: entry.uid,
    prevent_recursion: !entry.prevent_recursion,
  }))
);

replaceLorebookEntries

完全替换世界书的所有条目。

typescript
async function replaceLorebookEntries(
  lorebook: string, 
  entries: Partial<LorebookEntry>[]
): Promise<void>;

参数

lorebook

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

entries

  • 类型: Partial<LorebookEntry>[]
  • 描述: 要用于替换的世界书条目数组。如果 uid 没有设置或有重复则会新设置 uid;如果某些字段没设置,则会使用酒馆默认会设置的值。

示例

typescript
const lorebook = "eramgt少女歌剧";
const entries = await getLorebookEntries(lorebook);
await replaceLorebookEntries(
  lorebook, 
  entries.map(entry => ({ ...entry, prevent_recursion: true }))
);
typescript
const lorebook = "eramgt少女歌剧";
const entries = await getLorebookEntries(lorebook);
_.remove(entries, entry => entry.comment.includes('神乐光'));
await replaceLorebookEntries(lorebook, entries);

updateLorebookEntriesWith

用自定义函数更新世界书条目。

typescript
async function updateLorebookEntriesWith(
  lorebook: string,
  updater: LorebookEntriesUpdater
): Promise<LorebookEntry[]>;
typescript
type LorebookEntriesUpdater =
  | ((entries: LorebookEntry[]) => Partial<LorebookEntry>[])
  | ((entries: LorebookEntry[]) => Promise<Partial<LorebookEntry>[]>);

参数

lorebook

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

updater

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

返回值

  • 更新后的世界书条目: LorebookEntry[]

示例

typescript
// 删除所有名字中包含 `神乐光` 的条目
await updateLorebookEntriesWith(
  "eramgt少女歌剧", 
  entries => entries.filter(entry => !entry.comment.includes('神乐光'))
);

信息

有关 LorebookEntry 接口的完整定义,请参考 获取世界书条目 文档。

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