ドキュメント

インテグレーション

ツール呼び出しジェネレーター

ベータ版機能

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

ツール使用を有効にするには、もう少し手間がかかります。OpenAI API を適応させた包括的な例については、openai-compat-endpoint プラグインを参照してください。

利用可能なツールの定義は ctl.getToolDefinitions() を使用して読み取ることができます。例えば、オンラインモデルアダプターを作成している場合、モデルにツールの定義を渡す必要があります。

モデルがツールの呼び出しを開始したら、LM Studio にその呼び出しについて通知する必要があります。

ツールの呼び出し生成の開始(つまり、モデルがツールの呼び出しを生成し始めたこと)を報告するには、ctl.toolCallGenerationStarted を使用します。

ツールの呼び出し生成が成功したことを報告するには ctl.toolCallGenerationEnded を使用するか、ツールの呼び出し生成が失敗したことを報告するには ctl.toolCallGenerationFailed を使用します。

オプションで、ツールの呼び出し名が利用可能になったらすぐに報告するために ctl.toolCallGenerationNameReceived を呼び出すこともできます。また、ツールの呼び出し引数のフラグメントが生成されるにつれて報告するために ctl.toolCallGenerationArgumentFragmentGenerated を呼び出すこともできます。これらの 2 つのメソッドは、より良いユーザーエクスペリエンスを提供するために役立ちますが、必須ではありません。

全体として、ジェネレーターはこれらの ctl メソッドを以下の順序で呼び出す必要があります。

  • 生成されたツール呼び出し以外のテキストフラグメントを報告するために ctl.fragmentGenerated を 0 ~ N 回呼び出します。
  • 各ツールの呼び出しについて
    • ツールの呼び出し生成の開始を示すために ctl.toolCallGenerationStarted を呼び出します。
    • (オプション)呼び出されるツールの名前を報告するために ctl.toolCallGenerationNameReceived を呼び出します。
    • (オプション)生成されたツールの呼び出し引数のフラグメントを報告するために、ctl.toolCallGenerationArgumentFragmentGenerated を何回か呼び出します。
    • ツールの呼び出し生成の成功を報告するために ctl.toolCallGenerationEnded を呼び出すか、ツールの呼び出し生成の失敗を報告するために ctl.toolCallGenerationFailed を呼び出します。
    • モデルがツールの呼び出しの間または後にさらにテキストを生成する場合、生成されたツール呼び出し以外のテキストフラグメントを報告するために ctl.fragmentGenerated を 0 ~ N 回呼び出します。(これは通常発生しませんが、一部の小型モデルでは技術的に可能です。 重要:これは、モデルがツールの結果を受け取り、会話を続行するのとは異なります。これは単に、モデルがツールの要求を行った後に会話を停止することを拒否しているだけであり、ツールの結果はまだモデルで利用できません。 マルチラウンド予測が発生し、モデルが実際にツールの呼び出しを受け取ると、更新された会話状態でジェネレーター関数が再度呼び出されます。)

一部の API フォーマットでは、ツールの呼び出し生成の開始と同時にツール名が報告される場合があります。その場合、ctl.toolCallGenerationStarted の直後に ctl.toolCallGenerationNameReceived を呼び出すことができます。

一部の API フォーマットでは、増分ツールの呼び出し更新がない場合があります(つまり、ツールの呼び出し要求全体が一度に提供されます)。その場合、ctl.toolCallGenerationStarted を呼び出し、すぐに ctl.toolCallGenerationEnded を呼び出すことができます。

このページのソースは GitHub で入手できます。