跳至主要内容

/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 代理服务器

  1. 设置 config.yaml
model_list:
- model_name: anthropic-claude
litellm_params:
model: claude-3-7-sonnet-latest
  1. 启动代理
litellm --config /path/to/config.yaml
  1. 测试一下!
使用 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,
)

请求格式


请求体将采用 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"}]}

可选字段

  • metadata (对象)
    包含有关请求的附加元数据(例如,作为不透明标识符的 user_id)。
  • stop_sequences (字符串数组)
    自定义序列,当在生成的文本中遇到时,会导致模型停止。
  • stream (布尔值)
    指示是否使用服务器发送事件流式传输响应。
  • system (字符串或数组)
    提供上下文或向模型提供特定指令的系统 prompt。
  • temperature (数值)
    控制模型响应的随机性。有效范围:0 < temperature < 1
  • thinking (对象)
    启用扩展思考的配置。如果启用,它包含
    • budget_tokens (整数)
      最少 1024 个 token(且少于 max_tokens)。
    • type (枚举)
      例如,“enabled”。
  • tool_choice (对象)
    指示模型应如何利用提供的任何工具。
  • tools (对象数组)
    模型可用的工具定义。每个工具包含
    • name (字符串)
      工具名称。
    • description (字符串)
      工具的详细描述。
    • input_schema (对象)
      描述工具预期输入格式的 JSON 模式。
  • 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”。
  • 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 数。