ドキュメント

インテグレーション

テキストのみのジェネレーター

ベータ版機能

プラグインサポートは現在プライベートベータ版です。こちらからベータ版に参加してください。

ジェネレーターは、ジェネレーターコントローラーと現在の会話状態を受け取り、生成を開始し、その後 ctl.fragmentGenerated メソッドを使用して生成されたテキストを報告します。

以下は、ユーザーの最後のメッセージを、単語ごとに200ミリ秒の間隔を置いてエコーバックする単純なジェネレーターの例です。

import { Chat, GeneratorController } from "@lmstudio/sdk";

export async function generate(ctl: GeneratorController, chat: Chat) {
  // Just echo back the last message
  const lastMessage = chat.at(-1).getText();
  // Split the last message into words
  const words = lastMessage.split(/(?= )/);
  for (const word of words) {
    ctl.fragmentGenerated(word); // Send each word as a fragment
    ctl.abortSignal.throwIfAborted(); // Allow for cancellation
    await new Promise((resolve) => setTimeout(resolve, 200)); // Simulate some processing time
  }
}

カスタム構成

ctl.getPluginConfig および ctl.getGlobalPluginConfig を介してカスタム構成にアクセスできます。詳細については、カスタム構成を参照してください。

中止の処理

ジェネレーターが実行中の間に、ユーザーによって予測が中止される場合があります。このような場合、ctl.abortSignal を処理することで、中止を適切に処理する必要があります。

AbortSignal については、MDN ドキュメントで詳しく学ぶことができます。

このページのソースは GitHub で利用可能です。