コンテキスト構築(Context Building)
buildContext メソッドを使うと、通常のエディター生成で使われるものと同じ形式のコンテキストをスクリプトから生成できます。標準の生成ロジックを「手早くそれっぽく再現したい」場合に便利です。
「コンテキスト」とは?
コンテキストは、生成時に言語モデルへ送られるテキスト(またはメッセージ列)です。現在のドキュメント内容、ストーリー設定、ロアブックなどに基づいて構築されます。
基本的な使い方
現在のドキュメント状態に対してコンテキストを構築するには、api.v1.buildContext を呼び出します。
let context = await api.v1.buildContext();
for (let message of context) {
api.v1.log(`Role: ${message.role}`);
api.v1.log(`Content: ${message.content}`);
}
返り値はメッセージオブジェクトの配列で、各メッセージは role(“user” / “assistant” / “system” など)と content(テキスト)を持ちます。この形式は api.v1.generate での生成にも使われます。
初期化中の呼び出しは避けてください
buildContext は onContextBuilt フックを発火させます。そのため、スクリプト初期化中(トップレベル)に呼ぶと、他のスクリプトがまだフックに応答できず問題になりやすいです。代わりに onScriptsLoaded を使って、すべてのスクリプト初期化後に呼び出してください。
例:
api.v1.hooks.register('onScriptsLoaded', async () => {
let context = await api.v1.buildContext();
api.v1.log(`Context has ${context.length} messages`);
});
参考
- フック - 生成中にコンテキストを変更する
- テキスト生成 API - スクリプトから生成を実行する
- API リファレンス - API 全体(英語)