文档

lmstudio-python (Python SDK)

LM Studio Python SDK 入门

lmstudio-python 为您提供了一组 API,用于与 LLM、嵌入模型和代理流进行交互。

安装 SDK

lmstudio-python 可作为 PyPI 包使用。您可以使用 pip 安装它。

pip install lmstudio

有关源代码和开源贡献,请访问 GitHub 上的 lmstudio-python

功能

快速示例:与 Llama 模型聊天

import lmstudio as lms

model = lms.llm("llama-3.2-1b-instruct")
result = model.respond("What is the meaning of life?")

print(result)

获取本地模型

上述代码需要 Llama 3.2 1B 模型。如果您没有该模型,请在终端中运行以下命令以下载它。

lms get llama-3.2-1b-instruct

在此处阅读更多关于 LM Studio CLI 中的 lms get 的信息:此处

交互式便利性、确定性资源管理还是结构化并发性?

如上例所示,与 LM Studio Python SDK 交互有三种不同的方法。

第一种是交互式便利 API(在示例中列为“Python(便利 API)”),它侧重于使用默认 LM Studio 客户端实例,以便在同步 Python 提示符下或使用 Jupyter Notebook 时进行方便的交互。

第二种是同步作用域资源 API(在示例中列为“Python(作用域资源 API)”),它使用上下文管理器来确保确定性地释放分配的资源(例如网络连接),而不是可能保持打开状态直到整个进程终止。

最后一种是异步结构化并发 API(在示例中列为“Python(异步 API)”),它旨在用于遵循“结构化并发”设计原则的异步程序,以确保正确管理处理 SDK 到 API 服务器主机连接的后台任务。不遵守这些设计原则的异步应用程序将需要依赖于对同步作用域资源 API 的线程访问,而不是尝试使用 SDK 的原生异步 API。Python SDK 1.5.0 版本是第一个完全支持异步 API 的版本。

一些示例在交互式便利 API 和同步作用域资源 API 之间是通用的。这些示例被列为“Python(同步 API)”。

同步 API 中的超时

所需 Python SDK 版本1.5.0

从 Python SDK 1.5.0 版本开始,同步 API 在等待来自 API 服务器的响应或流事件通知时,默认会在 60 秒无活动后超时。

等待响应和事件通知的秒数可以使用 lmstudio.set_sync_api_timeout() 函数进行调整。将超时设置为 None 会完全禁用超时(恢复之前 SDK 版本的行为)。

可以使用 lmstudio.get_sync_api_timeout() 函数查询当前同步 API 超时。

异步 API 中的超时

所需 Python SDK 版本1.5.0

由于异步协程支持取消,异步 API 中没有实现特定的超时支持。相反,应使用通用异步超时机制,例如 asyncio.wait_for()anyio.move_on_after()

本页源文件可在 GitHub 上获取