Skip to main content
通过 OpenAI Chat Completions 原生协议创建对话补全。接口接收一组按时间顺序排列的消息,并返回模型的下一条回复。 它适合构建聊天助手、问答、摘要、内容生成,以及需要在应用中调用业务工具的 Agent 工作流。

端点与鉴权

本页面描述的是 OpenAI 原生协议:请求和响应使用 OpenAI Chat Completions 的字段结构。若需以 Anthropic、Gemini 或其他格式提交请求,请查看对应的协议适配文档。

最小请求

modelmessages 为必填字段。模型名称请使用 Tikway 模型列表中显示的标识。
成功时,响应中的主要内容位于 choices[0].message.content

完整请求参数

以下参数遵循 OpenAI Chat Completions 原生协议。参数能否被实际执行取决于所选模型与 Tikway 的模型接入配置。为了便于查阅,复杂参数单独展开;简单标量参数集中在后文说明。

model

必填。指定本次请求使用的模型,名称以 Tikway 模型列表为准。例如:
模型决定可用的输入模态、推理、结构化输出、工具调用与采样参数。切换模型前,请确认模型页列出的能力。

messages

必填。传入截至当前轮的完整对话历史,且顺序不能改变。Tikway 不会自动保存聊天上下文;下一轮请求时,应用必须自行回传前几轮的用户消息、assistant 消息和工具结果。
developer 用于应用级规则;较新的 OpenAI 模型应优先使用它。 system 主要用于兼容已有实现。user 表示用户输入,assistant 表示模型前一轮回复。 函数调用后,应用还必须追加 role: "tool" 消息,并将其 tool_call_id 对应到模型返回的调用 ID。旧版 function 角色仍可见于历史项目,但新接入应使用 tool 用户消息可以把 content 写成内容块数组。例如图像输入:
常用内容块还包括:
  • input_audiodata 为 Base64 内容,format 为音频格式。
  • file:使用 file_idfile_data 引用文件。
是否支持这些块取决于模型;developersystem 消息只应使用文本内容。

streamstream_options

stream: true 时,接口通过 SSE 连续推送 chat.completion.chunk 客户端应拼接 choices[].delta.content,直至收到 data: [DONE]stream_options.include_usage 可要求网关在流尾额外返回用量统计。
不要在普通 JSON 请求客户端中开启 stream;它需要按 SSE 事件读取响应。详见 流式响应

toolstool_choiceparallel_tool_calls

tools 声明模型可以选择的函数。模型只会生成调用意图,绝不会执行函数;应用服务负责校验 function.arguments、调用业务系统,并以 tool 消息将结果写回下一轮请求。
tool_choice 可取以下值:
  • auto:模型自行决定是否调用工具。
  • none:禁止调用工具。
  • required:要求模型至少调用一个工具。
  • 指定函数对象:强制调用某个函数。
parallel_tool_calls: false 用于要求每轮最多一个调用。完整报文流转见 函数调用 旧版 functionsfunction_call 已弃用。

response_format

控制输出形态。默认是文本;json_object 是旧版 JSON Mode;支持 Structured Outputs 的模型优先使用 json_schema,以约束输出符合 JSON Schema。
若使用 { "type": "json_object" },请在 developeruser 指令中明确要求模型输出 JSON,否则模型可能持续输出空白内容直到达到上限。

max_completion_tokens

限制单次完成可使用的最大 token 数,包含可见输出与推理 token。对新的推理模型,使用此字段而非已弃用的 max_tokens
若响应的 finish_reasonlength,说明本次达到该上限;可适当增大上限或压缩输入历史。

temperaturetop_p

二者都是采样控制参数。temperature 通常在 02:低值使输出更稳定,高值使结果更多样。top_p 通常在 01,用概率质量限制候选 token。一般只调节其中一个。

reasoning_effort

只适用于支持推理控制的模型。它约束模型投入的推理量;可用值会随模型不同而变化,包括 noneminimallowmediumhighxhighmax
降低推理强度通常可减少延迟和 token 使用,但也可能影响复杂任务的质量。

audiomodalities

当目标模型支持音频输出时,使用 modalities 声明输出模态,并通过 audio 指定格式和音色:
format 可为 wavmp3flacopuspcm16。音色和音频响应字段是否可用,以目标模型支持范围为准。

logprobstop_logprobslogit_bias

logprobs: true 会请求响应返回各输出 token 的对数概率;top_logprobs 可设置每个位置附带的候选数量(通常为 020)。这类数据适合研究、评分或调试,不适合一般聊天界面。
logit_bias 以模型 tokenizer 的 token ID 为 key、偏置值为 value;通常 -100 接近禁止,100 强烈偏向。不同模型的 tokenizer 不同,不能跨模型复用 token ID。

prediction

当应用已经知道大部分期望输出、只需让模型改写少量内容时,可传入预测内容以降低延迟。它只适用于支持该能力的模型。

Prompt Caching:prompt_cache_keyprompt_cache_options

长且稳定的指令或上下文可从缓存中获益。prompt_cache_key 是稳定的路由键;prompt_cache_options 指定缓存模式和生命周期。
mode 可为 implicitexplicitprompt_cache_retention 是已弃用字段,请不要在新项目中使用。

其他控制参数

  • frequency_penaltypresence_penalty 通常为 -22,分别用于降低重复与鼓励新话题。
  • stop 指定停止序列,但部分新模型不支持。
  • n 指定候选数量,默认为 1;增加候选会增加消耗。
  • seed 尝试提高相同请求的可复现性,但不保证绝对一致。
  • service_tier 请求指定的服务等级。
  • verbosity 控制支持该能力的模型的输出详略。
  • web_search_options 只对支持 Web Search 的模型有效。
metadata 可附加非敏感管理标签。store 控制是否保存完成记录。 safety_identifier 应传入稳定的终端用户标识,切勿使用邮箱或手机号。旧版 user 字段已弃用,应使用 safety_identifier

深入阅读