ステートセーブとロード
現在の設定と会話履歴を保持した「ステート」のセーブとロードができます。
アセットへの読み書き
SaveStateToAsset関数を呼び出すことで、指定したパスへステートのアセットをセーブします。LoadState関数を呼び出すことで、指定したアセットからステートをロードします。このとき、現在の会話履歴等は全て破棄され、ロードした設定でモデルが再度初期化され会話履歴等が設定されます。
スロットへの読み書き
通常のSave Gameと同様に、Slot NameとUser Indexで指定したスロットにステートをセーブできます。
SaveStateToSlot関数を呼び出すことで、指定したスロットへステートをセーブします。LoadStateFromSlot関数を呼び出すことで、指定したスロットからステートをロードします。このとき、現在の会話履歴等は全て破棄され、ロードした設定でモデルが再度初期化され会話履歴等が設定されます。
Save Gameオブジェクトを直接触る場合
Create Save Game ObjectやLoad Game from SlotなどでSave Gameオブジェクトを直接操作する場合は、上記のように処理を行います。ポイントとなるのは下記の二つの関数です。
Save State関数:指定したLocalLLMSaveStateオブジェクトにステートを書き込みます。Load State関数:指定したLocalLLMSaveStateオブジェクトからステートを読み込みます。
ステートから初期化
保存済みのステートを使ってLLMを初期化する場合は、Local LLMコンポーネントを選択して詳細タブのLocal LLM > Initialization Methodで下記の設定をしておくと便利です。
Initialization Method = Saved State:アセットから設定をロードして初期化する場合に使用します。Saved Stateでロードするアセットを指定します。Initialization Method = Saved State from Slot:スロットから設定をロードして初期化する場合に使用します。Slot NameとUser Indexでロードするスロットを指定します。
特にInitial PromptとTalk Historyが長い場合、通常の方法でLLMを初期化するよりも、保存済みのステートをロードした方が早くLLMを初期化できます。