修改角色卡
提示
请务必先阅读如何正确使用酒馆助手
点击查看对应类型定义文件 (可发给 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
- 类型:
PartialDeep<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)? 默认为性能更好的防抖渲染
返回值
- 更新后的角色卡内容:
Character
异常
- 如果角色卡不存在, 将会抛出异常
- 如果访问后端失败, 将会抛出异常
示例
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;
});