Skip to content
LangSmith 文档版本 跟随上游 源快照 0e6459ec 更新于 2026-10-18

API 格式

使用 OpenAI Chat Completions、Anthropic Messages 或 OpenAI Responses 请求,通过 LLM Gateway 调用跨提供商的模型。

NOTE

LLM Gateway 处于 beta 阶段。

标准 LLM Gateway API 支持三种请求和响应格式。选择你的应用程序已在使用的格式,然后通过同一端点调用 bring-your-own-key 或 Gateway Credits 模型。

比较 API 格式

API 格式Base URL提示端点兼容客户端
OpenAI Chat Completionshttps://gateway.smith.langchain.com/v1POST /chat/completionsOpenAI 兼容的 Chat Completions 客户端
Anthropic Messageshttps://gateway.smith.langchain.comPOST /v1/messagesAnthropic Messages 客户端
OpenAI Responseshttps://gateway.smith.langchain.com/v1POST /responsesOpenAI 兼容的 Responses 客户端

所有格式都使用工作区范围的 LangSmith API 密钥进行身份验证。将其作为提供商 API 密钥或 Authorization: Bearer token 传递。

这些 Base URL 适用于 LangSmith Cloud 上的美国网关。有关其他区域和 BYOC 数据平面,请参阅检查可用性。

对于 bring-your-own-key 模型,将 model 设置为 <provider>/<model>,例如 openai/gpt-5.4-mini、anthropic/claude-opus-5 或 azure/<deployment-name>。对于 Gateway Credits 模型,传递受支持的模型名称,例如 moonshotai/kimi-k3。

使用 Chat Completions

将 OpenAI 兼容客户端指向 https://gateway.smith.langchain.com/v1。有关完整的请求和响应模式,请参阅 OpenAI Chat Completions API。

bash
curl https://gateway.smith.langchain.com/v1/chat/completions \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"model":"anthropic/claude-opus-5","messages":[{"role":"user","content":"Hello!"}]}'
python
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.smith.langchain.com/v1",
    api_key=os.environ["LANGSMITH_API_KEY"],
)
response = client.chat.completions.create(
    model="anthropic/claude-opus-5",
    messages=[{"role": "user", "content": "Hello!"}],
)
typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://gateway.smith.langchain.com/v1",
  apiKey: process.env.LANGSMITH_API_KEY,
});
const response = await client.chat.completions.create({
  model: "anthropic/claude-opus-5",
  messages: [{ role: "user", content: "Hello!" }],
});

使用 Messages

将 Anthropic 客户端指向 https://gateway.smith.langchain.com。有关完整的请求和响应模式,请参阅 Anthropic Messages API。

bash
curl https://gateway.smith.langchain.com/v1/messages \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"model":"openai/gpt-5.4-mini","max_tokens":1024,"messages":[{"role":"user","content":"Hello!"}]}'
python
import os

import anthropic

client = anthropic.Anthropic(
    base_url="https://gateway.smith.langchain.com",
    api_key=os.environ["LANGSMITH_API_KEY"],
)
message = client.messages.create(
    model="openai/gpt-5.4-mini",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://gateway.smith.langchain.com",
  apiKey: process.env.LANGSMITH_API_KEY,
});
const message = await client.messages.create({
  model: "openai/gpt-5.4-mini",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello!" }],
});

使用 Responses

将 OpenAI 兼容客户端指向 https://gateway.smith.langchain.com/v1。有关完整的请求和响应模式,请参阅 OpenAI Responses API。

bash
curl https://gateway.smith.langchain.com/v1/responses \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"model":"anthropic/claude-opus-5","input":"Hello!"}'
python
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.smith.langchain.com/v1",
    api_key=os.environ["LANGSMITH_API_KEY"],
)
response = client.responses.create(
    model="anthropic/claude-opus-5",
    input="Hello!",
)
typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://gateway.smith.langchain.com/v1",
  apiKey: process.env.LANGSMITH_API_KEY,
});
const response = await client.responses.create({
  model: "anthropic/claude-opus-5",
  input: "Hello!",
});

启用提示缓存

OpenAI 模型(Chat Completions 和 Responses)自动支持隐式提示缓存,无需额外参数。

Anthropic 模型和一些较旧的 OpenAI 模型需要显式选择启用提示缓存。通过任何标准网关端点调用这些模型时,请在请求体中传递提供商特定字段。

NOTE

在开发网关级缓存策略期间,显式缓存支持是临时措施。以下字段会透传到上游提供商。

Anthropic 模型

包含带有 ttl 值的 prompt_cache_options:

bash
curl https://gateway.smith.langchain.com/v1/responses \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "anthropic/claude-opus-5",
      "input": "Hello!",
      "prompt_cache_options": {"ttl": "30m"}
    }'
python
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.smith.langchain.com/v1",
    api_key=os.environ["LANGSMITH_API_KEY"],
)
response = client.responses.create(
    model="anthropic/claude-opus-5",
    input="Hello!",
    extra_body={"prompt_cache_options": {"ttl": "30m"}},
)
typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://gateway.smith.langchain.com/v1",
  apiKey: process.env.LANGSMITH_API_KEY,
});
const response = await client.responses.create({
  model: "anthropic/claude-opus-5",
  input: "Hello!",
  // @ts-ignore — provider-specific field
  prompt_cache_options: { ttl: "30m" },
});

同一字段也适用于 Chat Completions 端点:

bash
curl https://gateway.smith.langchain.com/v1/chat/completions \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "anthropic/claude-opus-5",
      "messages": [{"role": "user", "content": "Hello!"}],
      "prompt_cache_options": {"ttl": "30m"}
    }'

较旧的 OpenAI 模型

一些较旧的 OpenAI 模型支持通过 prompt_cache_retention 进行显式缓存控制。对于大多数模型,将其设置为 "in_memory"。对于 gpt-5.5,请使用 "24h":

bash
curl https://gateway.smith.langchain.com/v1/responses \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "openai/gpt-5.4-mini",
      "input": "Hello!",
      "prompt_cache_retention": "in_memory"
    }'
bash
curl https://gateway.smith.langchain.com/v1/responses \
    -H "Authorization: Bearer $LANGSMITH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "openai/gpt-5.5",
      "input": "Hello!",
      "prompt_cache_retention": "24h"
    }'

有关 prompt_cache_retention 的完整文档,请参阅 OpenAI 提示缓存指南。

了解转换行为

端点决定你的应用程序发送和接收的格式。模型 ID 决定上游提供商。

  • 当提供商原生支持所选格式时,网关会保留该格式。
  • 否则,网关会将请求转换为提供商支持的格式,并将响应转换回来,包括流式响应。
  • 转换可能拒绝无法在目标提供商格式中表示的字段。当需要提供商原生行为时,请使用直接模型访问。

无论采用哪种格式,每个请求都会解析相同的 Provider Secrets、策略和追踪配置。

列出模型

调用 GET /v1/models 以列出工作区已配置提供商以及 Gateway Credits 中可用的模型。网关返回一个 OpenAI 兼容列表:

bash
curl https://gateway.smith.langchain.com/v1/models \
    -H "Authorization: Bearer $LANGSMITH_API_KEY"
json
{
  "object": "list",
  "data": [
    {"id": "openai/gpt-5.4-mini", "object": "model"},
    {"id": "fireworks/accounts/fireworks/models/glm-5p2", "object": "model"},
    {"id": "anthropic/claude-opus-5", "object": "model"},
    {"id": "moonshotai/kimi-k3", "object": "model"}
  ]
}

Bring-your-own-key 模型 ID 使用 <provider>/<model> 形式。托管模型使用响应中显示的 slug。调用时请完全按照所示传递任一 ID。未配置密钥的 bring-your-own-key 提供商会省略;托管模型不需要提供商密钥。

处理错误

状态或症状含义
400 Bad Request请求格式错误、模型 ID 不可用或格式不正确,或者请求无法转换。
401 UnauthorizedLangSmith API 密钥缺失或无效。
403 Forbidden该密钥没有所需的网关权限。
429 Too Many Requests已达到网关速率限制或上游提供商速率限制。
GET /v1/models 中未出现带提供商前缀的模型该提供商可能未配置,或未返回模型目录。

有关特定于设置的解决方案,请参阅快速开始。

另请参阅


BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。