🧩 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 階段,我們仍在持續建設中,如果你有疑問或好的想法,歡迎到社群中進行回饋。