#
🧩 JavaScript API
Since v0.70.0
#
📖 概述
Tavo JavaScript API 是面向玩家及创作者提供的一套 JavaScript 接口,以方便用户在开启 JavaScript 支持时可以获得强大的功能和高可玩性。
✨ 氛围编程 (Vibe Coding) 友好
对于非专业编程玩家,我们强烈建议将此文档复制给 AI ,然后让 AI 生成与 Tavo 结合紧密的高可玩性代码!
#
⚙️ 变量
变量用于存储数据,JavaScript 本身的变量只能存活于页面中,一旦刷新就会丢失,因此我们提供一组变量 API 来协助用户长期存储数据。
#
获取变量
tavo.get(<name>[, <scope>])
例如:
let age = tavo.get('age') // 获取聊天变量中的 age
let bestScore = tavo.get('bestScore', 'global') // 获取全局最高分
let lover = tavo.get('lover', 'character') // 获取当前角色的爱人
作用域 (scope)
作用域是变量可用范围,我们暂时支持:
- chat: 聊天作用域,这是默认的作用域。变量仅在当前聊天内可访问,你应该总是优先考虑此作用域(可随聊天导出)
- global: 全局作用域。变量将可以跨对话访问与保存(因此也需要格外小心命名冲突)
#
设置变量
tavo.set(<name>, <value>[, <scope>])
例如:
tavo.set('age', 16) // 设置聊天变量 age = 16
tavo.set('Lily_lover', 'Colin', 'global') // 设置全局变量,Lily 的爱人为 Colin
tavo.set('status', { hp: 100, mp: 32, location: 'Cave' }) // 设置当前聊天的状态为:生命值 100,魔法值 32,地点 洞穴
#
删除变量
tavo.unset(<name>[, <scope>])
例如:
tavo.set('age', 16) // age = 16
tavo.unset('age') // age = null
#
变量路径
当操作变量时,我们支持路径形式,例如:
tavo.set('status', { hp: 100, mp: 50 })
tavo.get('status.hp') // 100
tavo.unset('status.hp') // status = { mp: 50 }
#
在提示词中使用变量
可以通过提示词将变量发给模型,只需要在提示词中使用 宏 (macros) 即可:
{{getvar::<name>}} 获取变量(作用域为 chat,当前聊天)
{{getglobalvar::<name>}} 获取变量(作用域为 chat,全局)
例如:
{{char}} 有了一个新名字 {{getvar::name}}
{{user}} 当前生命值 {{getvar::status.hp}}
全局历史最高分 {{getglobalvar::highestScore}}
更多的变量宏请参考
⌛ 持续更新中
Tavo JavaScript API 现在还处于早期的 beta 阶段,我们仍在持续建设中,如果你有疑问或好的想法,欢迎到社区中进行反馈。