文档
文本补全
使用 llm.complete(...)
从已加载的语言模型生成文本补全。文本补全意味着向模型发送一个未格式化的字符串,并期望模型完成该文本。
这与多轮聊天对话不同。有关聊天补全的更多信息,请参阅聊天补全。
首先,您需要加载一个模型来生成补全。这可以通过在 llm
句柄上使用 model
方法来完成。
import { LMStudioClient } from "@lmstudio/sdk";
const client = new LMStudioClient();
const model = await client.llm.model("qwen2.5-7b-instruct");
加载模型后,您可以通过将字符串传递给 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
您还可以打印预测元数据,例如用于生成的模型、生成的令牌数量、首个令牌的生成时间以及停止原因。
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);
这是一个如何使用 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;
}
本页内容
1. 实例化模型
2. 生成补全
3. 打印预测统计信息
示例:让 LLM 模拟终端