跳到主要内容

创建模型响应

本接口用于创建模型响应请求,支持多轮对话、工具调用、结构化输出等高级功能。通过 Responses API,您可以构建更加灵活和强大的 AI 应用。

开通服务

  • 开发环境:直接创建 API Key 即可使用上下文缓存功能。
  • 生产环境:需要提交工单开通上下文缓存功能。
  • 使用前请确保您已获取 API Key。参见快速开始获取 API Key。

请求方法

POST<ai-api-base-url>/llm/v1/responses

其中,<ai-api-base-url> 为您的 API Key 所属数据中心的域名:

  • 北京数据中心:https://ai.rong-api.com
  • 北美数据中心:https://ai.us-light-api.com
提示

在多轮连续对话中,建议在每次请求之间加入约 100 毫秒的延迟,否则可能会导致调用失败。

请求头参数

参数名类型必传默认值说明
Authorizationstring-身份认证令牌,格式为 Bearer <your API key>,需替换为实际 API Key,用于验证用户权限。

正文参数

基础参数

参数名类型必传默认值说明
modelstring-您需要调用的模型。支持的模型:
  • Doubao/Doubao-seed-1.6
  • Doubao/Doubao-seed-1.6-thinking
  • Doubao/Doubao-seed-1.6-flash
inputstring/array-输入的内容,模型需要处理的输入信息。详见输入参数说明
instructionsstring/nullnull在模型上下文中插入系统消息或者开发者作为第一条指令。当与 previous_response_id 一起使用时,前一个回复中的指令不会被继承到下一个回复中。
注意:不可与缓存能力一起使用。配置了 instructions 字段后,本轮请求无法写入缓存和使用缓存,表现为:
  • caching 字段配置为 {"type":"enabled"} 时报错
  • 传入带缓存的 previous_response_id 时,缓存输入(cached_tokens)为 0
previous_response_idstring/nullnull上一个模型回复的唯一标识符。使用该标识符可以实现多轮对话。
注意:在多轮连续对话中,建议在每次请求之间加入约 100 毫秒的延迟,否则可能会导致调用失败。
expire_atinteger创建时刻+259200设置存储的过期时刻,需传入 UTC Unix 时间戳(单位:秒),取值范围:(创建时刻, 创建时刻+259200],即最多保留3天。对 store(上下文存储)和 caching(上下文缓存)都生效。
注意:缓存存储时间计费,过期时刻-创建时刻,不满 1 小时按 1 小时计算。
max_output_tokensinteger/nullnull模型输出最大 token 数,包含模型回答和思维链内容。

输出控制参数

参数名类型必传默认值说明
temperaturefloat/null1采样温度,取值范围:[0, 2]。控制了生成文本时对每个候选词的概率分布进行平滑的程度。较高的值(如 0.8)会使输出更加随机,较低的值(如 0.2)会使输出更加集中确定。
建议:仅调整 temperaturetop_p 其中之一,不建议两者都修改。
top_pfloat/null0.7核采样概率阈值,取值范围:[0, 1]。模型会考虑概率质量在 top_p 内的 token 结果。0.1 意味着只考虑概率质量最高的前 10% 的 token。取值越大生成的随机性越高,取值越低生成的确定性越高。
建议:仅调整 temperaturetop_p 其中之一,不建议两者都修改。

功能控制参数

参数名类型必传默认值说明
thinkingobject取决于调用的模型控制模型是否开启深度思考模式。包含 type 字段,取值范围:
  • enabled:开启思考模式,模型一定先思考后回答
  • disabled:关闭思考模式,模型直接回答问题,不会进行思考
  • auto:自动思考模式,模型根据问题自主判断是否需要思考,简单题目直接回答
cachingobject{"type": "disabled"}是否开启缓存。包含 type 字段,取值范围:
  • enabled:开启缓存
  • disabled:关闭缓存
storeboolean/nulltrue是否储存生成的模型响应,以便后续通过 API 检索。
  • true:储存当前模型响应,对话内容能被后续的 API 检索到
  • false:不储存,对话内容不能被后续的 API 检索到
streamboolean/nullfalse响应内容是否流式返回。
  • false:模型生成完所有内容后一次性返回结果
  • true:按 SSE 协议逐块返回模型生成内容,并以一条 data: [DONE] 消息结束

输出格式参数

参数名类型必传默认值说明
textobject-模型文本输出的格式定义,可以是自然语言,也可以是结构化的 JSON 数据。详见文本格式参数说明

工具参数

参数名类型必传默认值说明
toolsarray-模型可以调用的工具,当您需要让模型调用工具时,需要配置该结构体。详见工具参数说明
tool_choicestring/object见说明仅 Doubao/Doubao-seed-1.6*** 模型支持此字段。控制模型返回信息中是否有待调用的工具。当没有指定工具时,默认值为 none;如果存在工具,默认值为 auto。详见 tool_choice 参数说明
max_tool_callsinteger-最大工具调用轮次,取值范围:[1, 10]。
  • Web Search 基础联网搜索的默认值:3
  • Image Process 图像处理工具的默认值:10,不支持修改
  • Knowledge Search 私域知识库搜索工具的默认值为 3

input 参数说明

input 参数用于指定模型需要处理的输入内容,支持以下两种类型:

文本输入(string)

直接输入文本字符串,等同于使用 user 角色输入的文本信息。

示例:

JSON
"input": "请介绍一下融云 AI API 服务。"

元素列表(array)

输入给模型的信息元素数组,可以包括以下类型:

  • 输入的消息:发送给模型的消息,支持文本、图片、视频等多种内容类型
  • 上下文元素:模型生成回复时需参考的历史信息和工具调用记录

输入的消息(message)

发送给模型的消息,其中角色用于指示指令遵循的优先级层级。由 developersystem 角色给出的指令优先于 user 角色给出的指令。assistant 角色的消息通常被认为是模型在先前交互中生成的回复。

消息结构

字段类型必传说明
typestring消息输入的类型,固定为 message
rolestring输入消息的角色。可选值:usersystemassistantdeveloper
contentstring/array用于生成回复的内容,支持文本、图片或视频输入。详见 content 内容类型
statusstring项目状态。可选值:in_progresscompletedincomplete

content 内容类型

文本内容(string)

直接输入文本字符串。

示例:

JSON
{
"type": "message",
"role": "user",
"content": "请介绍一下融云 AI API 服务。"
}

内容列表(array)

包含一个或多个输入项的列表,支持以下内容类型:

输入模型的文本
字段类型必传说明
typestring输入项的类型,固定为 input_text
textstring输入模型的文本内容。
translation_optionsobject翻译配置,仅特定翻译模型支持。详见下方说明。

translation_options 字段:

字段类型必传说明
source_languagestring需要翻译的信息的源语言语种。
target_languagestring需要翻译为何目标语言语种。

示例:

JSON
{
"type": "input_text",
"text": "输入模型的文本内容",
"translation_options": {
"source_language": "en",
"target_language": "zh"
}
}
输入模型的图片
字段类型必传默认值说明
typestring-输入项的类型,固定为 input_image
image_urlstring-要发送给模型的图片 URL。可以是完整的 URL,或以 data URL 形式编码的 base64 图片。
detailstringauto发送给模型的图片细节级别。可选值:highlowauto

示例:

JSON
{
"type": "input_image",
"image_url": "https://example.com/image.jpg",
"detail": "auto"
}
输入模型的视频
字段类型必传说明
typestring输入项的类型,固定为 input_video
video_urlstring要发送给模型的视频 URL。可以是完整的 URL,或以 data URL 形式编码的 base64 视频。
fpsfloat每秒钟从视频中抽取指定数量的图像,取值范围:[0.2, 5]。

示例:

JSON
{
"type": "input_video",
"video_url": "https://example.com/video.mp4",
"fps": 1.0
}

上下文元素

表示模型生成回复时需参考的上下文内容,包括历史消息、工具调用信息等。

输入的信息

历史请求中发送给模型的信息。

字段类型必传说明
typestring消息输入的类型,固定为 message
rolestring输入消息的角色。可选值:systemuserdeveloper
contentarray输入的消息中 content 字段的结构完全一致。
statusstring项目状态。可选值:in_progresscompletedincomplete

工具函数信息

模型调用工具函数的信息。

字段类型必传说明
typestring工具调用的类型,固定为 function_call
call_idstring模型生成的函数工具调用的唯一 ID。
namestring要运行的函数的名称。
argumentsstring要传递给函数的参数的 JSON 字符串。
statusstring该项的状态。

示例:

JSON
{
"type": "function_call",
"call_id": "call_abc123",
"name": "get_weather",
"arguments": "{\"city\":\"北京\"}"
}

工具返回的信息

调用工具后,工具返回的信息。

字段类型必传说明
typestring工具调用的类型,固定为 function_call_output
call_idstring模型生成的函数工具调用的唯一 ID。
outputstring调用工具后,工具输出的结果。
statusstring该项的状态。

示例:

JSON
{
"type": "function_call_output",
"call_id": "call_abc123",
"output": "{\"temperature\":\"15°C\",\"weather\":\"晴\"}"
}

text 参数说明

text 是一个 object,用于定义模型文本输出的格式,可以是自然语言,也可以是结构化的 JSON 数据。

text.format 对象用于指定模型文本输出的格式,默认值为 { "type": "text" },支持以下格式类型:

文本格式

响应格式为自然语言。

字段类型必传说明
typestring回复格式的类型,固定为 text

示例:

JSON
{
"text": {
"format": {
"type": "text"
}
}
}

JSON Object 格式

响应格式为 JSON 对象。

字段类型必传说明
typestring回复格式的类型,固定为 json_object

示例:

JSON
{
"text": {
"format": {
"type": "json_object"
}
}
}

JSON Schema 格式

响应格式为 JSON 对象,遵循 schema 字段定义的 JSON 结构。

字段类型必传默认值说明
typestring-回复格式的类型,固定为 json_schema
namestring-用户自定义的 JSON 结构的名称。
schemaobject-回复格式的 JSON 格式定义,以 JSON Schema 对象的形式描述。
descriptionstring/nullnull回复用途描述,模型将根据此描述决定如何以该格式回复。
strictboolean/nullfalse是否在生成输出时,启用严格遵循模式。
  • true:模型将始终遵循 schema 字段中定义的格式
  • false:模型将尽可能遵循 schema 字段中定义的结构

示例:

JSON
{
"text": {
"format": {
"type": "json_schema",
"name": "user_info",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "number" }
},
"required": ["name"]
},
"description": "用户信息",
"strict": false
}
}
}

tools 参数说明

tools 是一个 array,模型可以调用的工具。当您需要让模型调用工具时,需要配置该结构体。当前支持以下工具类型:


自定义工具(Function Calling)

您自定义的函数,使模型能够使用强类型参数和输出调用您自己的代码。

字段类型必传说明
typestring工具类型,固定为 function
functionobject模型可以调用的类型为 function 的工具列表。详见下方说明。

function 字段:

字段类型必传说明
namestring调用的函数的名称。
descriptionstring调用函数的描述,大模型会用它来判断是否调用这个函数。
parametersobject函数请求参数,以 JSON Schema 格式描述。所有字段名大小写敏感,建议用英文字段名,中文置于 description 字段中。

示例:

JSON
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称"
}
},
"required": ["city"]
}
}
}

内置工具

通过预置工具来扩展模型内容,如联网搜索工具、图像处理工具、私域知识库搜索工具等。

联网搜索工具

在互联网上搜索与该提示相关的资源。

注意

使用前需提交工单,咨询和开通"联网内容插件"组件。

字段类型必传默认值说明
typestring-工具类型,固定为 web_search
sourcesstring[]-选择联网搜索的附加内容源。可选:
  • toutiao:联网搜索的附加头条图文内容源
  • douyin:联网搜索的附加抖音百科内容源
  • moji:联网搜索的附加墨迹天气内容源
limitinteger10单轮搜索最大召回条数,取值范围:[1, 50]。影响输入规模与性能,单次搜索最多返回 20 条结果(单轮可能有多次搜索),默认召回 10 条。
user_locationobject{"type": "approximate"}用户地理位置,用于天气查询等场景。包含 typecountrycityregion 字段。填写 type 后,countrycityregion 中至少 1 个字段有有效值。
max_keywordinteger-工具一轮使用,最大并行搜索关键词的数量,取值范围:[1, 50]。例如:如模型判断需要搜索关键词:"融云 IM SDK 集成"、"融云消息推送方案"、"融云音视频通话"。此时 max_keyword = 1,则实际仅搜索第一个关键词"融云 IM SDK 集成"。

示例:

JSON
{
"type": "web_search",
"sources": ["toutiao", "douyin"],
"limit": 10,
"user_location": {
"type": "approximate",
"country": "中国",
"region": "浙江",
"city": "杭州"
},
"max_keyword": 3
}

图像处理工具

使用画点、画线、旋转、缩放、框选/裁剪关键区域等基础图像处理工具。

字段类型必传默认值说明
typestring-工具类型,固定为 image_process
pointobject{"type": "enabled"}画点/连线功能开关,控制是否启用点绘制与连线功能。包含 type 字段,可选值:enabled(开启此功能)、disabled(关闭此功能)。
groundingobject{"type": "enabled"}框选/裁剪功能开关,控制是否启用关键区域框选或裁剪。包含 type 字段,可选值:enabled(开启此功能)、disabled(关闭此功能)。
zoomobject{"type": "enabled"}缩放功能开关,控制是否启用全图/指定区域缩放(支持 0.5-2.0 倍)。包含 type 字段,可选值:enabled(开启此功能)、disabled(关闭此功能)。
rotateobject{"type": "enabled"}旋转功能开关,控制是否启用顺时针旋转(支持 0-359 度)。包含 type 字段,可选值:enabled(开启此功能)、disabled(关闭此功能)。

示例:

JSON
{
"type": "image_process",
"point": { "type": "enabled" },
"grounding": { "type": "enabled" },
"zoom": { "type": "enabled" },
"rotate": { "type": "enabled" }
}

私域知识库搜索工具

使用私域知识库进行信息检索。

字段类型必传默认值说明
typestring-工具类型,固定为 knowledge_search
knowledge_search_idstring-填写需使用的私域知识库 ID。
limitinteger10最大可被采用的搜索结果,取值范围:[1, 200]。
max_keywordinteger-工具一轮使用,最大并行搜索关键词的数量,取值范围:[1, 50]。例如:如模型判断需要搜索关键词:"融云 IM SDK 集成"、"融云消息推送方案"、"融云音视频通话"。此时 max_keyword = 1,则实际仅搜索第一个关键词"融云 IM SDK 集成"。
doc_filtersobject-检索过滤条件,用户可以指定结果过滤的字段。支持对 doc 的 meta 信息过滤。详细使用方式和支持字段见 filter 表达式,可支持对 doc_id 做筛选。此处用过过滤的字段,需要在 collection/create 时添加到 index_configfields 上。
descriptionstring-私域知识库的描述信息。
dense_weightfloat0.5稠密向量的权重,取值范围:[0.2, 1]。1 表示纯稠密检索,趋向于 0 表示纯字面检索。只有在请求的知识库使用的是混合检索时有效,即索引算法为 hnsw_hybrid
ranking_optionsobject-检索后处理选项。详见下方说明。

ranking_options 字段:

字段类型必传默认值说明
rerank_switchbooleanfalse是否自动对检索结果做 rerank。若设置为 true,则会自动请求 rerank 模型排序。
retrieve_countinteger25进入重排的切片数量。此项只有在 rerank_switchtrue 时生效。注意retrieve_count 需要大于等于 limit,否则会抛出错误。
get_attachment_linkbooleanfalse是否获取切片中图片的临时下载链接。

示例:

JSON
{
"type": "knowledge_search",
"knowledge_search_id": "kb_123456",
"limit": 10,
"max_keyword": 3,
"description": "企业内部知识库",
"dense_weight": 0.5,
"ranking_options": {
"rerank_switch": true,
"retrieve_count": 30,
"get_attachment_link": false
}
}

MCP 工具

通过自定义 MCP 服务器与第三方系统集成。

字段类型必传默认值说明
typestring-工具类型,固定为 mcp
server_labelstring-MCP Server 标签,建议设定与工具用途/Server 名称一致。
server_urlstring-MCP Server 访问地址。
headersobject-要发送至 MCP 服务器的可选 HTTP 请求头,用于身份验证或其他用途。包含 Authorization 鉴权信息(不存储)和自定义 key-value。
require_approvalstring/objectalways指定哪些 MCP 服务器工具需要授权。可选值:
  • always:所有工具需用户确认后调用
  • never:所有工具无需确认,直接调用(可能存在安全风险)
  • 对象:指定具体哪些工具需要审批,包含 always.tool_namesnever.tool_names 数组
allowed_toolsarray/object-工具加载范围,默认包含当前 MCP Server 所有工具。可以是工具名称的字符串数组,或包含 tool_names 数组的对象。

示例:

JSON
{
"type": "mcp",
"server_label": "my_mcp_server",
"server_url": "https://example.com/mcp",
"headers": {
"Authorization": "Bearer xxx"
},
"require_approval": "always",
"allowed_tools": ["tool1", "tool2"]
}

tool_choice 参数说明

tool_choice 用于控制模型返回信息中是否有待调用的工具,支持 string 和 object 两种类型。

  • 当没有指定工具时,默认值为 none
  • 如果存在工具,默认值为 auto

工具选择模式(string)

控制模型返回是否包含待调用的工具。

说明
none模型返回信息中不可含有待调用的工具。
required模型返回信息中必须含待调用的工具。选择此项时请确认存在适合的工具,以减少模型产生幻觉的情况。
auto模型自行判断返回信息是否有待调用的工具。

示例:

JSON
{
"tool_choice": "required"
}

工具调用(object)

指定待调用工具的范围。模型返回信息中,只允许包含指定的工具信息。选择此项时请确认该工具适合用户需求,以减少模型产生幻觉的情况。

字段类型必传说明
typestring调用的类型。如果为自定义 Function,此处固定为 function,此时 name 字段为必选。如果为内置工具,此处填写工具名称。
namestring条件必选待调用工具的名称。如果 typefunction,此项为必选。

示例(自定义函数):

JSON
{
"tool_choice": {
"type": "function",
"name": "get_weather"
}
}

示例(内置工具):

JSON
{
"tool_choice": {
"type": "web_search"
}
}

请求示例

bash
curl --location '<ai-api-base-url>/llm/v1/responses' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Doubao/Doubao-seed-1.6",
"input": "请介绍一下融云 AI API 服务。",
"temperature": 0.7,
"top_p": 0.7,
"stream": false
}'

返回结果

非流式调用返回

返回一个 Response 对象

流式调用返回

服务器会在生成 Response 的过程中,通过 Server-Sent Events(SSE)实时向客户端推送事件。

返回结果示例

JSON
{
"id": "resp_0217****",
"created_at": 1756280722.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"model": "Doubao/Doubao-seed-1.6",
"object": "response",
"output": [
{
"id": "rs_0217****404a",
"summary": [
{
"text": "用户询问融云 AI API 服务的相关信息。首先需要明确融云 AI API 的核心定位,它是一个人工智能接口平台。然后应该介绍其主要功能特点,包括支持的模型类型、核心能力等。\n\n回答时应该结构清晰,先给出总体介绍,说明这是什么样的服务。接着列举主要功能,比如支持多种 Doubao 模型、提供多轮对话能力、工具调用功能等。还要提到一些技术特性,如流式输出、缓存机制等,这些都是开发者关心的重点。\n\n最后可以补充应用场景,让用户了解这个服务可以用在哪些地方,比如智能客服、内容生成等。整体语气要专业但易懂,确保开发者能快速理解服务的价值。",
"type": "summary_text"
}
],
"type": "reasoning",
"status": "completed"
},
{
"id": "msg_0217****a93c",
"content": [
{
"text": "融云 AI API 服务是一个强大的人工智能接口平台,提供多种大语言模型的调用能力。\n\n主要功能包括:\n\n1. **多模型支持**:支持 Doubao/Doubao-seed-1.6、Doubao/Doubao-seed-1.6-thinking、Doubao/Doubao-seed-1.6-flash 三种模型,满足不同场景需求。\n\n2. **核心能力**:\n - 多轮对话:通过 previous_response_id 实现上下文连贯的对话\n - 工具调用:支持 Function Calling、联网搜索、图像处理等\n - 流式输出:实时返回生成内容\n - 结构化输出:支持 JSON Schema 格式化输出\n\n3. **技术特性**:\n - 缓存机制:降低重复请求的 Token 消耗\n - 深度思考模式:提升复杂问题的解答质量\n - 灵活参数控制:temperature、top_p 等参数可调\n\n4. **应用场景**:适用于智能客服、内容创作、知识问答、代码辅助、数据分析等多种场景。",
"type": "output_text",
"annotations": null
}
],
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": null,
"temperature": null,
"tool_choice": null,
"tools": null,
"top_p": null,
"max_output_tokens": 32768,
"previous_response_id": null,
"thinking": {
"type": "auto"
},
"service_tier": "default",
"status": "completed",
"text": null,
"usage": {
"input_tokens": 25,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 380,
"output_tokens_details": {
"reasoning_tokens": 156
},
"total_tokens": 405
},
"caching": {
"type": "disabled"
},
"store": true,
"expire_at": 1756539922
}