Skip to content

修改角色卡

提示

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

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

replaceCharacter

完全替换 character_name 角色卡的内容为 character

ts
function replaceCharacter(
  character_name: LiteralUnion<'current', string>,
  character: PartialDeep<Character>,
  { render }?: ReplaceCharacterOptions,
): Promise<void>
ts
interface ReplaceCharacterOptions {
  render?: 'debounced' | 'immediate' | 'none';
}

参数

character_name

  • 类型: string
  • 描述: 角色卡名称

character

option?

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

  • render: debounced|immediate
    • 酒馆网页应该防抖渲染 (debounced)、立即渲染 (immediate) 还是不刷新前端显示 (none)? 默认为性能更好的防抖渲染

异常

  • 如果角色卡不存在, 将会抛出异常
  • 如果访问后端失败, 将会抛出异常

示例

ts
const character = await getCharacter('角色卡名称');
character.first_messages = ['新的开场白1', '新的开场白2'];
await replaceCharacter('角色卡名称', character);
ts
const character = getCharacter('in_use');
character.extensions.regex_scripts = [];
await replaceCharacter('角色卡名称', character);
ts
const character = await getCharacter('角色卡名称');
character.avatar = await fetch('https://example.com/avatar.png').then(response => response.blob());
await replaceCharacter('角色卡名称', character);

updateCharacterWith

updater 函数更新 character_name 角色卡

ts
function updateCharacterWith(
  character_name: LiteralUnion<'current', string>,
  updater: CharacterUpdater,
  { render }?: ReplaceCharacterOptions,
): Promise<Character>;
ts
type CharacterUpdater = ((character: Character) => Character) | ((character: Character) => Promise<Character>);

参数

character_name

  • 类型: string
  • 描述: 角色卡名称

updater

  • 类型: CharacterUpdater
  • 描述: 用于更新角色卡的函数. 它应该接收角色卡内容作为参数, 并返回更新后的角色卡内容.

option?

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

  • render: debounced|immediate|none
    • 酒馆网页应该防抖渲染 (debounced)、立即渲染 (immediate) 还是不刷新前端显示 (none)? 默认为性能更好的防抖渲染

返回值

异常

  • 如果角色卡不存在, 将会抛出异常
  • 如果访问后端失败, 将会抛出异常

示例

ts
await updateCharacterWith('角色卡名称', character => {
  character.first_messages = ['新的开场白1', '新的开场白2'];
  return character;
});
ts
await updateCharacterWith('角色卡名称', character => {
  character.extensions.regex_scripts = [];
  return character;
});
ts
await updateCharacterWith('角色卡名称', character => {
  character.avatar = await fetch('https://example.com/avatar.png').then(response => response.blob());
  return character;
});

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