对话生成(深度推理)
接口描述(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 | 是 | - | - | 深度推理不支持工具调用,传空值即可 |
messages
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
role | string | 是 | - | 枚举值 user assistant system | 消息作者的角色,枚举值。请注意,数组中最后一项必须为 user |
content | string | 是 | - | - | 消息的内容 |
请求示例-单轮对话(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等于几"
}
],
"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": "你怎么评价这篇课文"
}
],
"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 |
index | int | 生成的回复序号 |
role | string | 回复消息的角色 |
delta | string | 流式请求时,生成的回复内容 |
响应示例(Response Example)
- 流式返回样例 流失返回结果过长,只体现部分response
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":1,"knowledge_tokens":0,"total_tokens":19},"choices":[{"index":0,"role":"assistant","delta":"<think>","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":2,"knowledge_tokens":0,"total_tokens":20},"choices":[{"index":0,"role":"assistant","delta":"\n","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":3,"knowledge_tokens":0,"total_tokens":21},"choices":[{"index":0,"role":"assistant","delta":"嗯","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":4,"knowledge_tokens":0,"total_tokens":22},"choices":[{"index":0,"role":"assistant","delta":",","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":5,"knowledge_tokens":0,"total_tokens":23},"choices":[{"index":0,"role":"assistant","delta":"我现在","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":6,"knowledge_tokens":0,"total_tokens":24},"choices":[{"index":0,"role":"assistant","delta":"要","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":7,"knowledge_tokens":0,"total_tokens":25},"choices":[{"index":0,"role":"assistant","delta":"研究","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
{"data":{"id":"f659b14b-e0ee-489b-9dea-933416ce0880","usage":{"prompt_tokens":18,"completion_tokens":8,"knowledge_tokens":0,"total_tokens":26},"choices":[{"index":0,"role":"assistant","delta":"推理","finish_reason":""}],"plugins":{}},"status":{"code":0,"message":"OK"}}
- 非流式
{
"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": "<think>\n嗯,今天老师布置了一个数学题,题目是“1加1等于几”。看起来很简单,但我觉得还是得仔细想一想,不能马虎对待。\n\n首先,我回忆一下以前学过的加法。加法就是把两个数合并在一起,得到一个总和。比如,如果有1个苹果,再加上1个苹果,总共有多少个苹果呢?应该是2个吧。所以,1加1应该等于2。\n\n不过,为了确保没错,我可以再用手指来数一数。伸出一只手,先竖起一个手指,代表1,然后再竖起另一个手指,现在总共有两个手指竖起来,那就是2了。这样看来,1加1确实等于2。\n\n或者,我可以用实物来验证。比如,拿出一支铅笔,再拿一支铅笔,放在一起,数一数,1支加上1支,就是2支。这样反复验证,结果都是一样的。\n\n还有一种方法是用数轴来理解。从0开始,向右移动1个单位,到达1的位置;然后再移动1个单位,就到了2的位置。所以,1加1等于2。\n\n有时候,我会担心是不是有特殊情况,比如在不同的进制下,结果会不会不一样。比如,在二进制中,1加1等于10,但那是在计算机科学中的情况,而通常在日常生活中,我们使用的是十进制,所以1加1还是等于2。\n\n另外,我还记得数学的基本公理,特别是关于自然数的加法。根据皮亚诺公理,1的后继数是2,所以1加1就是2。这进一步确认了我的答案是正确的。\n\n总之,通过多种方法的验证,无论是实际物品的计数、手指的计算,还是数学公理的应用,都一致表明1加1等于2。因此,我对这个答案非常有信心。\n<think>\n\n1加1等于2。",
"finish_reason": "stop"
}
],
"plugins": {
}
}
}
错误信息
参考错误码