对话生成(深度推理)
接口描述(Description)
基于基本的对话生成接口,您可以指定支持深度推理的模型进行调用,来提升答案的准确性,该接口返回内容中,reasoning_content
部分为推理过程输出,您可以观察和使用这部分思维链内容,目前支持深度推理的模型可参考:模型清单
调用前可在ModelStudio服务管理,检查模型开通状态,若未开通则无法调用
请求地址(Request URL)
[POST] https://chatapi.sensenova.cn/v1/llm/chat-completions
请求头(Request Header)
无特殊Header,请参考接口鉴权
请求体(Request Body)
请注意,单次请求,用户输入的token总数(即所有
content
的token总数) + 用户期望模型生成的最大token数(即max_new_tokens
的值),必须 <= 模型最大上下文长度(不同模型的上下文长度支持情况,参考模型清单。
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
model | string | 是 | - | 参考模型清单 | 模型ID |
n | int | 否 | 1 | [1,4] | 生成回复数量,响应参数中的index 即为回复序号(在使用某些模型时不支持传入该参数) |
max_new_tokens | int | 否 | 1024 | [1,2048] | 期望模型生成的最大token数(不同模型支持的上下文长度不同) |
messages | object[] | 是 | - | - | 输入给模型的对话上下文,数组中的每个对象为聊天的上下文信息 |
repetition_penalty | float | 否 | 1.0 | (0,2] | 重复惩罚系数,1代表不惩罚,推荐使用范围为[1,1.2] |
stream | boolean | 否 | false | true/false | 是否使用流式传输,数据将按data-only SSE 返回中间结果 |
temperature | float | 否 | 0.8 | (0,2] | 温度采样参数,控制生成多样性(最多支持小数点后六位) |
top_p | float | 否 | 0.7 | (0,1) | 核采样参数,在概率和大于等于top_p的token集合中采样 |
user | string | 否 | - | - | 外部用户ID,方便追踪用户行为 |
plugins | string | 是 | - | - | 深度推理不支持工具调用,传空值即可 |
thinking | object | 是 | - | - | 是否开启深度思考功能 |
messages
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
role | string | 是 | - | 枚举值 user assistant system | 消息作者的角色,枚举值。请注意,数组中最后一项必须为 user |
content | string | 是 | - | - | 消息的内容 |
thinking
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
enabled | boolean | 是 | true | true/false | 是否开启深度思考 |
请求示例-单轮对话(Request Example)
curl -X POST https://chatapi.sensenova.cn/v1/llm/chat-completions \
-H 'Content-Type: application/json' -H 'Authorization: {$API-KEY}' \
-d '{
"model": "DeepSeek-R1-Distill-Qwen-14B",
"max_new_tokens": 1024,
"messages": [
{
"role": "user",
"content": "1+1等于几"
}
],
"thinking": {
"enabled": true
},
"repetition_penalty": 1.05,
"stream": false,
"temperature": 0.8,
"top_p": 0.7,
"plugins": {
}
}'
请求示例-多轮对话(Request Example)
curl -X POST https://chatapi.sensenova.cn/v1/llm/chat-completions \
-H 'Content-Type: application/json' -H 'Authorization: {$API-KEY}' \
-d '{
"model": "DeepSeek-R1-Distill-Qwen-14B",
"max_new_tokens": 1024,
"messages": [
{
"role": "system",
"content": "你是DeepSeek系列大模型,你可以用推理思维链的能力回答用户问题"
},
{
"role": "user",
"content": "帮我写个孔乙己的观后感"
},
{
"role": "assistant",
"content": "<think>\n好的,用户让我帮他写一篇《孔乙己》的观后感。首先,我需要分析他的需求。他可能是一位学生,老师布置了写观后感的作业,或者他只是对这部作品感兴趣,想分享自己的感受。\n\n接下来,我要考虑如何结构这篇观后感。通常,观后感包括剧情概述、个人感受、主题分析和启示等部分。但为了避免太像作业,我会尽量写得自然一些,加入自己的真实想法。<think>以下是《孔乙己》观后感"
},
{
"role": "user",
"content": "你怎么评价这篇课文"
}
],
"thinking": {
"enabled": true
},
"repetition_penalty": 1.05,
"stream": false,
"temperature": 0.8,
"top_p": 0.7,
"plugins": {
}
}'
请求示例-OpenAI 兼容接口(Request Example)
https://api.sensenova.cn/compatible-mode/v1/chat/completions
以上接口兼容了OpenAI格式,具体调用方法参考:OpenAI兼容模式
响应(Response)
名称 | 类型 | 描述 |
---|---|---|
data | object | 生成内容 |
- `data` 部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
id | string | 消息ID |
choices | object[] | 生成的回复列表 |
usage | object | token使用量 |
- `choices` 部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
message | string | 非流式请求时,生成的回复内容 |
finish_reason | string | 停止生成的原因,枚举值 因结束符停止生成: stop 因达到最大生成长度停止生成: length 因触发敏感词停止生成: sensitive 因触发模型上下文长度限制: context |
reasoning_content | string | 深度思考的内容 |
index | int | 生成的回复序号 |
role | string | 回复消息的角色 |
delta | string | 流式请求时,生成的回复内容 |
响应示例(Response Example)
- 流式返回样例 流失返回结果过长,只体现部分response
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":2,"total_tokens":7},"choices":[{"role":"assistant","delta":"","reasoning_content":"\n","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":3,"total_tokens":8},"choices":[{"role":"assistant","delta":"","reasoning_content":"嗯","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":4,"total_tokens":9},"choices":[{"role":"assistant","delta":"","reasoning_content":",","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":5,"total_tokens":10},"choices":[{"role":"assistant","delta":"","reasoning_content":"用户","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":6,"total_tokens":11},"choices":[{"role":"assistant","delta":"","reasoning_content":"问","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":7,"total_tokens":12},"choices":[{"role":"assistant","delta":"","reasoning_content":"的是","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":8,"total_tokens":13},"choices":[{"role":"assistant","delta":"","reasoning_content":"“","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":9,"total_tokens":14},"choices":[{"role":"assistant","delta":"","reasoning_content":"1","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":10,"total_tokens":15},"choices":[{"role":"assistant","delta":"","reasoning_content":"+","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":11,"total_tokens":16},"choices":[{"role":"assistant","delta":"","reasoning_content":"1","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":12,"total_tokens":17},"choices":[{"role":"assistant","delta":"","reasoning_content":"等于","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":13,"total_tokens":18},"choices":[{"role":"assistant","delta":"","reasoning_content":"几","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":302,"total_tokens":307},"choices":[{"role":"assistant","delta":"\n\n","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":303,"total_tokens":308},"choices":[{"role":"assistant","delta":"1","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":304,"total_tokens":309},"choices":[{"role":"assistant","delta":"+","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":305,"total_tokens":310},"choices":[{"role":"assistant","delta":"1","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":306,"total_tokens":311},"choices":[{"role":"assistant","delta":"等于","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":307,"total_tokens":312},"choices":[{"role":"assistant","delta":"2","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":308,"total_tokens":313},"choices":[{"role":"assistant","delta":"。","finish_reason":""}]},"status":{"code":0,"message":"ok"}}
data:{"data":{"id":"b89fbaf3-b714-490c-8118-933cbfa497bf","usage":{"prompt_tokens":5,"completion_tokens":348,"total_tokens":353},"choices":[{"role":"","delta":"","finish_reason":"stop"}]},"status":{"code":0,"message":"ok"}}
data:[DONE]
- 非流式
{
"data": {
"id": "35d56398-4195-412d-83d7-818882bf50d6",
"usage": {
"prompt_tokens": 5,
"completion_tokens": 400,
"knowledge_tokens": 0,
"total_tokens": 405
},
"choices": [
{
"index": 0,
"role": "assistant",
"message": "1加1等于2。",
"finish_reason": "stop",
"reasoning_content": "\n\n嗯,用户说1+1等于1,这明显不符合常规数学运算规则。让我先思考一下可能的解释方向。\n\n用户可能是在玩文字游戏,比如在布尔代数里,1代表真值,1+1确实等于1,因为布尔代数中的加法是逻辑或运算。或者用户可能是在讨论集合论,比如两个集合的并集,如果两个集合有重叠,那么并集的元素数量可能不会增加。不过用户没有提供具体上下文,我需要更谨慎地分析。\n\n也有可能用户是在开玩笑,或者想测试我的反应。比如在某些编程语言中,如果变量被错误地赋值,可能会出现1+1等于1的情况,但这通常是因为类型转换错误。或者用户可能是在讨论模运算,比如在模2运算中,1+1等于0,但用户说的是等于1,这不符合模2的情况。\n\n再想想,用户可能是在讨论某种特定的数学结构,比如在某些代数系统中,加法的定义不同。或者用户可能是在讨论逻辑电路中的或门,输入两个1,输出还是1。不过这些都需要具体上下文。\n\n用户可能是在测试我的逻辑能力,或者想看看我如何处理这种明显错误的陈述。我需要确认用户是否在开玩笑,或者是否有其他意图。比如,用户可能是在讨论某种哲学或抽象概念,比如“1+1等于1”在某种隐喻中的意义,比如两个人合作变成一个整体。\n\n也有可能用户是在讨论某种错误的数学理论,或者是在引用某个特定领域的知识。比如在某些非标准数学系统中,加法的定义可能不同。或者用户可能是在讨论某种编程错误,比如在JavaScript中,如果变量被错误地处理,可能会出现1+1等于1的情况,但这通常是因为类型转换错误。\n\n我需要考虑用户可能的意图,然后给出一个既准确又友好的回答。首先,我应该指出在常规数学中1+1等于2,然后提供可能的其他解释,比如布尔代数、集合论、编程中的类型转换错误,或者用户可能的其他意图。同时,我应该保持开放的态度,邀请用户提供更多上下文,以便更好地回答问题。\n\n另外,我需要确保回答的语气友好,避免让用户感到被冒犯。比如,可以说“在常规数学中,1+1等于2,但在某些特定情况下,比如布尔代数中,1+1确实等于1,因为布尔代数中的加法是逻辑或运算。”这样既纠正了错误,又提供了可能的解释。\n\n最后,我应该总结一下,确保用户理解我的回答,并鼓励他们提供更多信息,以便我更好地帮助他们。\n"
}
],
"plugins": {
}
}
}
错误信息
参考错误码