Skip to main content
Anthropic Claude 是一款非常强大的 AI 对话系统,只要输入提示词,就能在短短几秒内生成流畅自然的回复。Claude Messages API 是 Anthropic 官方原生的 API 格式,与 OpenAI 兼容格式(Chat Completion)不同,它采用 Anthropic 自有的请求和响应结构,能够更好地利用 Claude 的独特能力,如多模态内容输入、工具调用、深度思考(Extended Thinking)等高级特性。 本文档主要介绍 Claude Messages API 操作的使用流程,利用它我们可以使用与 Anthropic 官方一致的原生接口来调用 Claude 的对话功能。

申请流程

要使用 Claude Messages API,首先到 Ace Data Cloud 控制台 获取您的 API Token,留作备用。 如果你尚未登录或注册,会自动跳转到登录页面邀请你注册和登录,完成后会自动返回当前页面。 一个 API Token 即可调用平台所有服务,无需为每个服务单独申请。 首次申请会赠送免费额度,可免费体验;额度不足时可在 控制台 充值通用余额。
📘 完整文档:Claude Messages API →

基本使用

Claude Messages API 的请求路径为 /v1/messages,与 Anthropic 官方 API 保持一致。我们至少需要提供三个必填参数:
  • model:选择使用的 Claude 模型,如 claude-opus-4-20250514claude-sonnet-4-20250514 等。
  • messages:输入的消息数组,每条消息包含 role(角色)和 content(内容),其中 role 支持 userassistant
  • max_tokens:最大输出 token 数,用于限制单次回复的长度。
常用可选参数:
  • system:系统提示词,用于设定模型的行为和角色。
  • temperature:生成随机性,0-1 之间,值越大回复越发散。
  • stream:是否使用流式响应,设为 true 可实现逐字返回效果。
  • stop_sequences:自定义停止序列,模型遇到这些文本时会停止生成。
  • top_p:核采样参数,与 temperature 配合控制生成的随机性。
  • top_k:仅从概率最高的 K 个选项中采样。
  • tools:工具定义,用于让模型调用外部函数。
  • tool_choice:控制模型如何使用提供的工具。

cURL 示例

Python 示例

调用之后,返回结果如下:
返回结果字段说明:
  • id:本次消息的唯一标识符。
  • type:始终为 message
  • role:始终为 assistant
  • content:回复内容数组,每个元素包含 type(如 text)和对应的内容。
  • model:处理请求的模型名称。
  • stop_reason:停止原因,可能的值包括 end_turn(正常结束)、max_tokens(达到最大长度)、stop_sequence(遇到停止序列)、tool_use(工具调用)。
  • stop_sequence:如果因自定义停止序列而停止,显示匹配的停止序列文本。
  • usage:token 使用统计,包含 input_tokens(输入 token 数)和 output_tokens(输出 token 数)。

系统提示词

Claude Messages API 支持通过 system 字段设定系统提示词,用于定义模型的行为、角色和上下文。

Python 示例

通过设置 system 提示词,可以精确地控制 Claude 的角色和行为方式。

流式响应

该接口也支持流式响应,将 stream 参数设为 true 即可获得逐步返回的效果,非常适合在网页中实现逐字显示。

Python 示例

流式响应以 Server-Sent Events (SSE) 格式返回,每行以 event:data: 为前缀。流式事件类型包括:
  • message_start:消息开始,包含消息的基本信息和模型名称。
  • content_block_start:内容块开始。
  • content_block_delta:内容块增量更新,包含新生成的文本片段。
  • content_block_stop:内容块结束。
  • message_delta:消息级别的增量更新,包含 stop_reason 和最终的 usage 信息。
  • message_stop:消息结束。
输出效果如下:
可以看到,流式响应中 content_block_delta 事件包含了逐步生成的文本内容,通过拼接所有 text_delta 即可获得完整回复。

JavaScript 示例

多轮对话

如果您想要对接多轮对话功能,需要在 messages 数组中交替排列 userassistant 角色的消息,将之前的对话历史一并传入。

Python 示例

返回结果如下:
通过在 messages 中传递完整的对话历史,Claude 可以结合上下文进行准确的回答。

深度思考模型

Claude 支持 Extended Thinking(深度思考)功能,可以让模型在回复之前先进行内部推理,提升处理复杂问题的准确性。使用该功能时需要传入 thinking 参数。

Python 示例

返回结果如下:
可以看到,content 数组中包含了两个内容块:
  • type: "thinking":模型的内部思考过程,展示了推理步骤。
  • type: "text":最终的回答结果。
注意事项:
  • 使用 thinking 时,max_tokens 需要大于 budget_tokens,因为 budget_tokens 是分配给思考过程的 token 预算。
  • budget_tokens 越大,模型进行更深入推理的空间越大,适合处理复杂问题。

视觉模型

Claude 支持多模态输入,可以同时处理文本和图像。在 Messages API 中,通过将 content 设为数组格式,并传入图像内容块即可使用视觉能力。

使用 Base64 编码图像

使用 URL 图像

cURL 示例

支持的图片格式包括:image/jpegimage/pngimage/gifimage/webp 返回结果示例:

工具调用(Tool Use)

Claude Messages API 原生支持工具调用功能,允许模型在需要时调用您预定义的工具/函数。

Python 示例

当模型决定调用工具时,返回结果中 content 会包含 tool_use 类型的内容块:
注意 stop_reasontool_use,表示模型需要调用工具。收到该结果后,您需要执行工具函数并将结果以 tool_result 的形式回传给模型:
模型会基于工具返回的结果,生成最终的自然语言回复。

与 Chat Completion API 的区别

Ace Data Cloud 同时提供两种 Claude API 格式,两者的主要区别如下: 如果您的系统已经对接了 OpenAI 格式的 API,可以使用 Chat Completion API 来无缝切换。如果您需要使用 Claude 的全部原生能力,建议使用 Messages API。

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

结论

通过本文档,您已经了解了如何使用 Claude Messages API 以 Anthropic 原生格式调用 Claude 的对话功能。Messages API 支持基本对话、系统提示词、流式响应、多轮对话、深度思考、视觉理解和工具调用等丰富功能。如有任何问题,请随时联系我们的技术支持团队。