文档

入门指南

Agentic Flows

文本嵌入

分词

管理模型

模型信息

文本补全

使用 llm.complete(...) 从已加载的语言模型生成文本补全。文本补全意味着将非格式化的字符串发送到模型,期望模型完成文本。

这与多轮聊天对话不同。有关聊天补全的更多信息,请参阅聊天补全

1. 实例化模型

首先,您需要加载一个模型来生成补全。这可以使用顶层的 llm 便利 API,或者在使用作用域资源 API 时,llm 命名空间中的 model 方法来完成。例如,以下是如何使用 Qwen2.5 7B Instruct。

import lmstudio as lms
model = lms.llm("qwen2.5-7b-instruct")

2. 生成补全

加载模型后,您可以通过将字符串传递给 llm 句柄上的 complete 方法来生成补全。

# The `chat` object is created in the previous step.
result = model.complete("My name is", config={"maxTokens": 100})

print(result)

3. 打印预测统计信息

您还可以打印预测元数据,例如用于生成的模型、生成的 token 数量、首个 token 的时间以及停止原因。

# `result` is the response from the model.
print("Model used:", result.model_info.display_name)
print("Predicted tokens:", result.stats.predicted_tokens_count)
print("Time to first token (seconds):", result.stats.time_to_first_token_sec)
print("Stop reason:", result.stats.stop_reason)

示例:让 LLM 模拟终端

以下是如何使用 complete 方法来模拟终端的示例。

import lmstudio as lms

model = lms.llm()
console_history = []

while True:
    try:
        user_command = input("$ ")
    except EOFError:
        print()
        break
    if user_command.strip() == "exit":
        break
    console_history.append(f"$ {user_command}")
    history_prompt = "\n".join(console_history)
    prediction_stream = model.complete_stream(
        history_prompt,
        config={ "stopStrings": ["$"] },
    )
    for fragment in prediction_stream:
        print(fragment.content, end="", flush=True)
    print()
    console_history.append(prediction_stream.result().content)