文档

OpenAI 兼容性 API

向 Chat Completions(文本和图像)、Completions 和 Embeddings 端点发送请求。


类似 OpenAI 的 API 端点

LM Studio 接受针对多个 OpenAI 端点的请求,并返回类似 OpenAI 的响应对象。

支持的端点

GET  /v1/models
POST /v1/chat/completions
POST /v1/embeddings
POST /v1/completions
请参阅下方了解每个端点的更多信息

重用现有 OpenAI 客户端

专业提示

您可以通过更改“基本 URL”属性,使其指向您的 LM Studio 而非 OpenAI 服务器,从而重用现有的 OpenAI 客户端(在 Python、JS、C# 等中)。

更改 基本 URL 指向 LM Studio

注意:以下示例假定服务器端口为 1234
Python
from openai import OpenAI

client = OpenAI(
+    base_url="http://localhost:1234/v1"
)

# ... the rest of your code ...
Typescript
import OpenAI from 'openai';

const client = new OpenAI({
+  baseUrl: "http://localhost:1234/v1"
});

// ... the rest of your code ...
cURL
- curl https://api.openai.com/v1/chat/completions \
+ curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
-     "model": "gpt-4o-mini",
+     "model": "use the model identifier from LM Studio here",
     "messages": [{"role": "user", "content": "Say this is a test!"}],
     "temperature": 0.7
   }'

端点概述

/v1/models

  • GET 请求
  • 列出当前已加载的模型。
cURL 示例
curl http://localhost:1234/v1/models

/v1/chat/completions

  • POST 请求
  • 发送聊天历史记录并接收助手的响应
  • 提示模板自动应用
  • 您可以在有效负载中提供推理参数,例如温度。请参阅支持的参数
  • 更多信息请参阅 OpenAI 的文档
  • 一如既往,请保持终端窗口打开,运行lms log stream以查看模型接收到的输入
Python 示例
# Example: reuse your existing OpenAI setup
from openai import OpenAI

# Point to the local server
client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")

completion = client.chat.completions.create(
  model="model-identifier",
  messages=[
    {"role": "system", "content": "Always answer in rhymes."},
    {"role": "user", "content": "Introduce yourself."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message)

/v1/embeddings

  • POST 请求
  • 发送一个字符串或字符串数组,并获取一个文本嵌入数组(整数令牌 ID)
  • 更多信息请参阅 OpenAI 的文档
Python 示例
# Make sure to `pip install openai` first
from openai import OpenAI
client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")

def get_embedding(text, model="model-identifier"):
   text = text.replace("\n", " ")
   return client.embeddings.create(input = [text], model=model).data[0].embedding

print(get_embedding("Once upon a time, there was a cat."))

/v1/completions

注意

OpenAI 不再支持此类似 OpenAI 的端点。LM Studio 继续支持它。

将此端点与经过聊天调优的模型一起使用可能会导致意外行为,例如模型发出多余的角色令牌。

为获得最佳效果,请使用基础模型。

  • POST 请求
  • 发送一个字符串并获取模型对该字符串的续写
  • 请参阅支持的有效负载参数
  • 即使模型有提示模板,也不会应用提示模板
  • 更多信息请参阅 OpenAI 的文档
  • 一如既往,请保持终端窗口打开,运行lms log stream以查看模型接收到的输入

支持的有效负载参数

每个参数的解释请参阅 https://platform.openai.com/docs/api-reference/chat/create

model
top_p
top_k
messages
temperature
max_tokens
stream
stop
presence_penalty
frequency_penalty
logit_bias
repeat_penalty
seed

社区

LM Studio Discord 服务器上与其他 LM Studio 开发者聊天,讨论 LLM、硬件等。