文档

LM Studio REST API

有状态聊天

了解如何在多个请求中保持对话上下文

/api/v1/chat 端点默认是有状态的。这意味着您无需在每个请求中传递完整的对话历史记录——LM Studio 会自动为您存储和管理上下文。

工作原理

当您发送聊天请求时,LM Studio 会将对话存储在聊天线程中,并在响应中返回一个 response_id。在后续请求中使用此 response_id 即可继续对话。

curl https://:1234/api/v1/chat \
  -H "Authorization: Bearer $LM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ibm/granite-4-micro",
    "input": "My favorite color is blue."
  }'

响应包含一个 response_id

信息

每个响应都包含一个唯一的 response_id,您可以使用它在未来的请求中引用对话的特定位置。这使您可以实现对话的分支。

{
  "model_instance_id": "ibm/granite-4-micro",
  "output": [
    {
      "type": "message",
      "content": "That's great! Blue is a beautiful color..."
    }
  ],
  "response_id": "resp_abc123xyz..."
}

继续对话

在下一次请求中传递 previous_response_id 即可继续对话。模型将记住之前的上下文。

curl https://:1234/api/v1/chat \
  -H "Authorization: Bearer $LM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ibm/granite-4-micro",
    "input": "What color did I just mention?",
    "previous_response_id": "resp_abc123xyz..."
  }'

模型可以引用上一条消息,而无需您重新发送,并将返回一个新的 response_id 以便进一步对话。

禁用有状态存储

如果您不想存储对话,请将 store 设置为 false。响应将不会包含 response_id

curl https://:1234/api/v1/chat \
  -H "Authorization: Bearer $LM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ibm/granite-4-micro",
    "input": "Tell me a joke.",
    "store": false
  }'

这对于不需要保持上下文的一次性请求非常有用。

此页面的源代码可在 GitHub 上找到