/v1/messages[测试版]
使用 LiteLLM 以 Anthropic v1/messages 格式调用您的所有 LLM API。
概览
功能 | 支持 | 备注 |
---|---|---|
成本跟踪 | ✅ | |
日志记录 | ✅ | 适用于所有集成 |
终端用户跟踪 | ✅ | |
流式传输 | ✅ | |
回退 | ✅ | 在 Anthropic 模型之间 |
负载均衡 | ✅ | 在 Anthropic 模型之间 |
支持的 LLM 提供商 | - anthropic - bedrock(仅限 Anthropic 模型) |
计划中的改进
- Vertex AI Anthropic 支持
用法
LiteLLM Python SDK
非流式传输示例
使用 LiteLLM Python SDK 的示例
import litellm
response = await litellm.anthropic.messages.acreate(
messages=[{"role": "user", "content": "Hello, can you tell me a short joke?"}],
api_key=api_key,
model="anthropic/claude-3-haiku-20240307",
max_tokens=100,
)
响应示例
{
"content": [
{
"text": "Hi! this is a very short joke",
"type": "text"
}
],
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"model": "claude-3-7-sonnet-20250219",
"role": "assistant",
"stop_reason": "end_turn",
"stop_sequence": null,
"type": "message",
"usage": {
"input_tokens": 2095,
"output_tokens": 503,
"cache_creation_input_tokens": 2095,
"cache_read_input_tokens": 0
}
}
流式传输示例
使用 LiteLLM Python SDK 的示例
import litellm
response = await litellm.anthropic.messages.acreate(
messages=[{"role": "user", "content": "Hello, can you tell me a short joke?"}],
api_key=api_key,
model="anthropic/claude-3-haiku-20240307",
max_tokens=100,
stream=True,
)
async for chunk in response:
print(chunk)
LiteLLM 代理服务器
- 设置 config.yaml
model_list:
- model_name: anthropic-claude
litellm_params:
model: claude-3-7-sonnet-latest
- 启动代理
litellm --config /path/to/config.yaml
- 测试一下!
- Anthropic Python SDK
- curl
使用 LiteLLM 代理服务器的示例
import anthropic
# point anthropic sdk to litellm proxy
client = anthropic.Anthropic(
base_url="http://0.0.0.0:4000",
api_key="sk-1234",
)
response = client.messages.create(
messages=[{"role": "user", "content": "Hello, can you tell me a short joke?"}],
model="anthropic-claude",
max_tokens=100,
)
使用 LiteLLM 代理服务器的示例
curl -L -X POST 'http://0.0.0.0:4000/v1/messages' \
-H 'content-type: application/json' \
-H 'x-api-key: $LITELLM_API_KEY' \
-H 'anthropic-version: 2023-06-01' \
-d '{
"model": "anthropic-claude",
"messages": [
{
"role": "user",
"content": "Hello, can you tell me a short joke?"
}
],
"max_tokens": 100
}'
请求格式
请求体将采用 Anthropic messages API 格式。liteLLM 在此端点遵循 Anthropic messages 规范。
请求体示例
{
"model": "claude-3-7-sonnet-20250219",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
必需字段
- model (字符串)
模型标识符(例如,“claude-3-7-sonnet-20250219”)。 - max_tokens (整数)
在停止生成之前要生成的最大 token 数。
注意:模型可能会在此限制之前停止;值必须大于 1。 - messages (对象数组)
会话轮次的有序列表。
每个消息对象必须包含- role (枚举:“user” 或 “assistant”)
指定消息的说话者。 - content (字符串或内容块数组)
构成消息的文本或内容块(例如,包含类型为“text”的对象的数组)。
等效示例等效于{"role": "user", "content": "Hello, Claude"}
{"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]}
- role (枚举:“user” 或 “assistant”)
可选字段
- metadata (对象)
包含有关请求的附加元数据(例如,作为不透明标识符的 user_id)。 - stop_sequences (字符串数组)
自定义序列,当在生成的文本中遇到时,会导致模型停止。 - stream (布尔值)
指示是否使用服务器发送事件流式传输响应。 - system (字符串或数组)
提供上下文或向模型提供特定指令的系统 prompt。 - temperature (数值)
控制模型响应的随机性。有效范围:0 < temperature < 1
。 - thinking (对象)
启用扩展思考的配置。如果启用,它包含- budget_tokens (整数)
最少 1024 个 token(且少于max_tokens
)。 - type (枚举)
例如,“enabled”。
- budget_tokens (整数)
- tool_choice (对象)
指示模型应如何利用提供的任何工具。 - tools (对象数组)
模型可用的工具定义。每个工具包含- name (字符串)
工具名称。 - description (字符串)
工具的详细描述。 - input_schema (对象)
描述工具预期输入格式的 JSON 模式。
- name (字符串)
- top_k (整数)
将采样限制在前 K 个选项。 - top_p (数值)
启用带累积概率截止值的核采样。有效范围:0 < top_p < 1
。
响应格式
响应将采用 Anthropic messages API 格式。
响应示例
{
"content": [
{
"text": "Hi! My name is Claude.",
"type": "text"
}
],
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"model": "claude-3-7-sonnet-20250219",
"role": "assistant",
"stop_reason": "end_turn",
"stop_sequence": null,
"type": "message",
"usage": {
"input_tokens": 2095,
"output_tokens": 503,
"cache_creation_input_tokens": 2095,
"cache_read_input_tokens": 0
}
}
响应字段
content (对象数组)
包含模型生成的文本块。每个块包含- type (字符串)
指示内容类型(例如,“text”、“tool_use”、“thinking” 或 “redacted_thinking”)。 - text (字符串)
模型生成的文本。
注意:最大长度为 5,000,000 个字符。 - citations (对象数组或
null
)
提供引用详细信息的可选字段。每个引用包含- cited_text (字符串)
被引用的摘录。 - document_index (整数)
引用被引用文档的索引。 - document_title (字符串或
null
)
被引用文档的标题。 - start_char_index (整数)
引用的起始字符索引。 - end_char_index (整数)
引用的结束字符索引。 - type (字符串)
通常为“char_location”。
- cited_text (字符串)
- type (字符串)
id (字符串)
响应消息的唯一标识符。
注意:ID 的格式和长度可能会随时间改变。model (字符串)
指定生成响应的模型。role (字符串)
指示生成消息的角色。对于响应,这始终是“assistant”。stop_reason (字符串)
解释模型为何停止生成文本。可能的值包括"end_turn"
:模型到达自然停止点。"max_tokens"
:生成停止,因为达到了最大 token 限制。"stop_sequence"
:遇到自定义停止序列。"tool_use"
:模型调用了一个或多个工具。
stop_sequence (字符串或
null
)
包含导致生成停止的特定停止序列(如果适用);否则为 null。type (字符串)
表示响应对象的类型,始终为“message”。usage (对象)
提供用于计费和速率限制的 token 使用详情。这包括- input_tokens (整数)
已处理的输入 token 总数。 - output_tokens (整数)
已生成的输出 token 总数。 - cache_creation_input_tokens (整数或
null
)
用于创建缓存条目的 token 数。 - cache_read_input_tokens (整数或
null
)
从缓存中读取的 token 数。
- input_tokens (整数)