文档

OpenAI 兼容性 API

发送请求到聊天补全(文本和图像)、补全和嵌入端点。


类似 OpenAI 的 API 端点

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

支持的端点

GET  /v1/models
POST /v1/chat/completions
POST /v1/embeddings
POST /v1/completions
请参见以下关于每个端点的更多信息

重用现有的 OpenAI 客户端

专业提示

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

基本 URL更改为指向 LM Studio

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

client = OpenAI(
+    base_url="https://127.0.0.1:1234/v1"
)

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

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

// ... the rest of your code ...
cURL
- curl https://api.openai.com/v1/chat/completions \
+ curl https://127.0.0.1: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 https://127.0.0.1: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="https://127.0.0.1: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="https://127.0.0.1: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 开发人员聊天,讨论 LLMs、硬件等。