ドキュメント

基本

テキスト補完

モデルに補完させるための文字列入力を提供してください

ロードされた言語モデルからテキスト補完を生成するには、llm.complete(...) を使用します。テキスト補完とは、フォーマットされていない文字列をモデルに送信し、モデルがそのテキストを補完することを期待するものです。

これは、複数ターンチャット会話とは異なります。チャット補完の詳細については、チャット補完を参照してください。

1. モデルのインスタンス化

まず、補完を生成するためのモデルをロードする必要があります。これは、llm ハンドル上の model メソッドを使用して行うことができます。

import { LMStudioClient } from "@lmstudio/sdk";

const client = new LMStudioClient();
const model = await client.llm.model("qwen2.5-7b-instruct");

2. 補完の生成

モデルがロードされたら、llm ハンドル上の complete メソッドに文字列を渡すことで、補完を生成できます。

const completion = model.complete("My name is", {
  maxTokens: 100,
});

for await (const { content } of completion) {
  process.stdout.write(content);
}

console.info(); // Write a new line for cosmetic purposes

3. 予測統計の表示

生成に使用されたモデル、生成されたトークン数、最初のトークンまでの時間、停止理由などの予測メタデータも表示できます。

console.info("Model used:", completion.modelInfo.displayName);
console.info("Predicted tokens:", completion.stats.predictedTokensCount);
console.info("Time to first token (seconds):", completion.stats.timeToFirstTokenSec);
console.info("Stop reason:", completion.stats.stopReason);

例:LLMにターミナルをシミュレートさせる

complete メソッドを使用してターミナルをシミュレートする方法の例を次に示します。

import { LMStudioClient } from "@lmstudio/sdk";
import { createInterface } from "node:readline/promises";

const rl = createInterface({ input: process.stdin, output: process.stdout });
const client = new LMStudioClient();
const model = await client.llm.model();
let history = "";

while (true) {
  const command = await rl.question("$ ");
  history += "$ " + command + "\n";

  const prediction = model.complete(history, { stopStrings: ["$"] });
  for await (const { content } of prediction) {
    process.stdout.write(content);
  }
  process.stdout.write("\n");

  const { content } = await prediction.result();
  history += content;
}

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