主题
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 Completions | https://gateway.smith.langchain.com/v1 | POST /chat/completions | OpenAI 兼容的 Chat Completions 客户端 |
| Anthropic Messages | https://gateway.smith.langchain.com | POST /v1/messages | Anthropic Messages 客户端 |
| OpenAI Responses | https://gateway.smith.langchain.com/v1 | POST /responses | OpenAI 兼容的 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 Unauthorized | LangSmith API 密钥缺失或无效。 |
403 Forbidden | 该密钥没有所需的网关权限。 |
429 Too Many Requests | 已达到网关速率限制或上游提供商速率限制。 |
GET /v1/models 中未出现带提供商前缀的模型 | 该提供商可能未配置,或未返回模型目录。 |
有关特定于设置的解决方案,请参阅快速开始。
另请参阅
- 快速开始:发出你的第一个请求并查看其追踪。
- 网关如何工作:每个请求会发生什么,以及每个区域和 BYOC 上应使用哪个主机名。
- 直接模型访问:绕过格式转换并使用提供商原生 API。
- 模型回退:针对备用模型重试请求。