一、核心前提:API 基础信息

请求方式:POST
请求地址:https://api.siliconflow.cn/v1/messages
用途:调用 Anthropic 系列模型(如示例中的 Kimi-K2-Instruct)生成对话响应,支持上下文连续对话、工具调用等场景。

二、请求参数(需主动传入)

分为「请求头参数」和「请求体参数」,两者均为必填 / 可选配置,缺失可能导致请求失败。

  1. 请求头参数(Header)

    参数名 格式示例 类型 作用说明
    Authorization Bearer <token> 字符串 身份验证凭证,<token> 替换为你的 SiliconFlow API 密钥(需在平台申请),用于验证请求合法性。
    Content-Type application/json 字符串 固定值,声明请求体格式为 JSON,API 仅支持该格式,否则返回 400 错误。用于身份验证和数据格式声明,必须在请求头中携带。
  2. 请求体参数(Body)
    JSON 格式的核心配置,控制模型调用的核心逻辑:

    参数名 格式示例 类型 是否必填 作用说明
    model “Pro/moonshotai/Kimi-K2-Instruct” 字符串 指定要调用的大模型标识,需使用 SiliconFlow 支持的模型名称(示例为 Kimi-K2 指令模型),可在平台查询所有支持的模型标识。
    messages [{“role”: “user”, “content”: “2025年中国大模型产业将面临哪些机遇和挑战?”}] 数组 对话历史列表,每个元素是一轮对话的「角色 - 内容」对象,支持多轮上下文对话。
  • role:角色类型,可选值:

  • user:用户(提问方)

  • assistant:助手(历史回复方)

  • system:系统(全局配置指令,如模型行为约束)

  • content:对应角色的消息内容(用户提问、助手回复、系统指令)。
    max_tokens 8192 整数 否 限制模型生成的「最大输出令牌数」(tokens 是文本基本单位,1 个英文单词≈1 token,1 个中文汉字≈1.5 tokens),用于控制响应长度,避免生成过长内容。
    示例值 8192 表示允许模型最多生成 8192 个输出令牌,具体上限需参考模型支持的最大令牌数(Kimi-K2 支持超长上下文,该值可设较高)。
    补充:messages 支持多轮对话示例(含上下文):

    1
    2
    3
    4
    5
    6
    7
    "messages": [
    {"role": "system", "content": "请用专业、简洁的语言回答"},
    {"role": "user", "content": "什么是大模型?"},
    {"role": "assistant", "content": "大模型是指参数规模达百亿级以上的生成式人工智能模型..."},
    {"role": "user", "content": "2025年它的产业机遇是什么?"}
    ]

    三、响应参数(API 返回结果)

    当请求成功(状态码 200)时,返回 JSON 格式结果,包含以下字段:

    参数名 格式示例 类型 作用说明
    id (如 msg-xxx) 字符串 该次对话请求的唯一标识符,用于追踪请求、排查问题(如后续查询令牌消耗、响应内容)。
    type “message” 字符串 响应类型,固定为 message(表示是对话消息响应)。
    role “assistant” 字符串 响应角色,固定为 assistant(表示是模型生成的回复)。
    content [{“id”: ““, “input”: {}, “name”: ““, “type”: “tool_use”}] 数组 模型生成的核心内容:
  • type: “tool_use”:表示响应涉及工具调用(示例为占位,实际场景中会携带工具参数);

  • 若无需工具调用,content 可能直接包含文本内容(如 {“type”: “text”, “text”: “响应文本”});

  • id:内容唯一标识,name:工具名称(若有),input:工具调用参数(若有)。
    model “Pro/moonshotai/Kimi-K2-Instruct” 字符串 实际调用的模型标识,与请求体 model 一致,用于确认调用的模型是否正确。
    stop_reason “end_turn” 字符串 模型停止生成的原因,常见值:

  • end_turn:正常结束一轮对话;

  • length:达到 max_tokens 限制;

  • stop_sequence:触发预设的停止序列(如 ###)。
    stop_sequence (如 ###) 字符串 触发模型停止生成的序列(若未设置则为空),需与请求时的预设一致。
    usage {“input_tokens”: 2095, “output_tokens”: 503} 对象 令牌消耗统计(API 计费核心依据):

  • input_tokens:输入文本的令牌数(含 messages 中所有内容);

  • output_tokens:模型生成的输出令牌数。
    四、状态码说明(排查请求问题)
    文档列出的常见状态码含义:
    状态码 含义
    200 请求成功,响应体为上述参数格式。
    400 请求错误(如参数格式错误、messages 数组为空、model 标识无效)。
    401 未授权(token 错误、过期或未携带)。
    404 资源未找到(如请求地址错误,需确认是否为 https://api.siliconflow.cn/v1/messages)。
    429 请求过于频繁(触发 SiliconFlow 限流策略,需降低调用频率)。
    503 服务不可用(模型维护中或平台负载过高,建议稍后重试)。
    504 网关超时(模型响应时间过长,可尝试降低 max_tokens 或简化提问)。

    核心总结
    关键请求参数:model(指定模型)、messages(对话上下文)、max_tokens(输出长度)、Authorization(身份验证)。
    核心响应参数:content(模型回复)、usage(令牌消耗)、stop_reason(停止原因)。
    实际使用时,需替换 为真实 API 密钥,messages 按角色顺序组织上下文,max_tokens 根据需求调整(不超过模型上限)。