一、模型介绍
SenseNova V6 Pro
模型版本 | V6.0 |
---|---|
模型简介 | 日日新-商量融合模态大模型 |
更新日期 | 2025/4/9 |
模型最大上下文长度限制 | 32K(32768),单位 token |
模型权限 | 公开调用 |
模型速率限制 | 60 RPM,128K TPM |
适配接口 | 适配接口 |
SenseNova V6 Turbo
模型版本 | V6.0 |
---|---|
模型简介 | 日日新-商量融合模态大模型 |
更新日期 | 2025/4/9 |
模型最大上下文长度限制 | 32K(32768),单位 token |
模型权限 | 公开调用 |
模型速率限制 | 60 RPM,128K TPM |
适配接口 | 适配接口 |
SenseNova V6 Reasoner
模型版本 | V6.0 |
---|---|
模型简介 | 日日新-商量融合模态大模型 |
更新日期 | 2025/4/9 |
模型最大上下文长度限制 | 32K(32768),单位 token |
模型权限 | 公开调用 |
模型速率限制 | 60 RPM,128K TPM |
适配接口 | 适配接口 |
二、引导
如何使用【图文对话生成】
在本入门教程中,我们将演示如何通过我们的 OpenAPI
,使用对话生成。
1.调用前的准备工作
首先,您需要完成一些调用前的准备工作,主要包括:
2.获取您可用的模型列表
调用 “获取模型列表” 接口,查看您可用的模型ID。 关于每个模型的介绍,可以查看 模型清单 。
3.上传图片
调用 “创建并上传文件” 接口,上传成功后可以获得上传图片的文件ID(即file_id)。
- 也可以在直接在
content
字段中,直接使用image_url
,将要上传的图片URL放在请求体中
4.使用图文对话生成
调用 “图文对话生成” 接口,进行对话。其中,有几个参数的使用方法需要注意:
- 请求体中的
model
参数 直接填写您从第二步获取到的模型ID即可。 - 请求体中的
messages
参数 您可以在这个参数中填写您想跟大模型对话的内容,参数image_file_id
直接填写您从第三步获取到的上传图片的文件ID即可,例如:
- 图片识别:
json{
"messages": [
{
"role": "user",
"content": [
{
"type": "image_file_id",
"image_file_id": "file_id"
},
{
"type": "text",
"text": "这是什么?"
}
]
}
]
}
视觉对话:
json{
"messages": [
{
"role": "user",
"content": [
{
"type": "image_file_id",
"image_file_id": "file_id"
},
{
"type": "text",
"text": "图片中的小猫在干什么?"
}
]
}
]
}
到这里,您已经完成了一个简单的多模态对话生成的使用,如果过程中出现了以上文档没有解释到的其他问题,欢迎您随时联系我们!
三、图文对话生成
接口描述(Description)
最新更新:扩大了请求体的大小限制(45MB),同时支持了视频解析,参考video_url
,video_file_id
基于给定的聊天对话信息,创建模型响应,支持在会话历史中传图片或视频相关信息,图片和视频不可同时填写:
- 如果传图片,最多可接收6张图片,出于响应速度和处理时长考虑,单次请求中的图片总大小要求小于45MB,超过限制则接口报错响应。
- 如果传视频,最多可接收1个视频,同样要求文件大小小于45MB,超过限制则接口报错响应。
- 如果同时传图片和视频,则接口报错响应。
请求地址(Request URL)
[POST] https://api.sensenova.cn/v1/llm/chat-completions
请求头(Request Header)
无特殊Header,请参考接口鉴权
请求体(Request Body)
请注意,单次请求,用户输入的token总数(即所有content
的token总数) + 用户期望模型生成的最大token数(即max_new_tokens
的值),必须 <= 模型最大上下文长度(不同模型的上下文长度支持情况,参考模型清单)。
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
model | string | 是 | - | 参考模型清单 | 模型ID |
messages | object[] | 是 | - | - | 输入给模型的对话上下文,数组中的每个对象为聊天的上下文信息 |
max_new_tokens | int | 否 | 1024 | [1,16384] | 期望模型生成的最大token数(不同模型支持的上下文长度不同,因此最大值也不同,参考模型清单) |
repetition_penalty | float | 否 | 1 | (0,2] | 重复惩罚系数,1代表不惩罚,大于1倾向于生成不重复token,小于1倾向于生成重复token,推荐使用范围为[1,1.2] |
stream | boolean | 否 | FALSE | "开启:true 关闭:false" | 是否使用流式传输,如果开启,数据将按照data-only SSE(server-sent events)返回中间结果,并以 data: [DONE] 结束 |
temperature | float | 否 | 0.8 | (0,2] | 温度采样参数,大于1的值倾向于生成更加多样的回复,小于1倾向于生成更加稳定的回复(最多支持小数点后六位) |
top_p | float | 否 | 0.7 | (0,1) | 核采样参数,解码生成token时,在概率和大于等于top_p的最小token集合中进行采样 |
user | string | 否 | - | - | 外部用户ID,应用开发者可将应用系统用户ID传入,方便追踪 |
messages
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
role | string | 是 | - | "枚举值 user assistant system" | 消息作者的角色,枚举值。请注意,数组中最后一项必须为 user |
content | object[] | 是 | - | - | 消息的内容 |
type
的枚举值:text`` image_url
image_file_id
image_base64
video_url``video_file_id
content
文本部分,可复数,参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
type | string | 是 | text | - | 消息内容类型 |
text | string | 是 | - | - | 文本内容 |
content
图像部分,可复数,以下参数格式三选一,不同图片信息可选择不同的参数格式,参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
type | string | 是 | image_url | - | 消息内容类型 |
image_url | string | 是 | - | - | 图片的url地址 |
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
type | string | 是 | image_file_id | - | 消息内容类型 |
image_file_id | string | 是 | - | - | 通过文件管理接口上传的图片文件的file_id |
- 此处
image_file_id
源自 文件上传部分,描述了用户可以在ModelStudio自带的文件管理中,存储调用模型所需要的图片文件ID
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
type | string | 是 | image_base64 | - | 消息内容类型 |
image_base64 | string | 是 | - | - | 图片经过base64编码后的内容 |
content
视频部分,只能单数,以下参数格式二选一,不可与图像部分同时存在,参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
type | string | 是 | video_url | - | 消息内容类型 |
video_url | string | 是 | - | - | 视频文件的url地址 |
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
type | string | 是 | video_file_id | - | 消息内容类型 |
video_file_id | string | 是 | - | - | 通过文件管理接口上传的视频文件的file_id |
- 此处
video_file_id
源自 文件上传部分,描述了用户可以在ModelStudio自带的文件管理中,存储调用模型所需要的视频文件ID
请求示例(Request Example)
bashcurl --request POST "https://api.sensenova.cn/v1/llm/chat-completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" \
-d '{
"model": "string",
"messages": [
{
"role": "string",
"content": [
{
"type": "image_url",
"image_url": "string"
},
{
"type": "text",
"text": "string"
}
]
}
],
"max_new_tokens": 1024,
"repetition_penalty": 1.0,
"stream": false,
"temperature": 0.8,
"top_p": 0.7,
"user": "string"
}'
响应(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 | 流式请求时,生成的回复内容 |
usage
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 用户输入内容的token数 |
knowledge_tokens | int | 知识库内容输入模型的token数(仅在使用了知识库且检索到知识库内容的情况下不为0) |
completion_tokens | int | 生成消息对应的token数 |
total_tokens | int | 总token数 |
响应示例(Response Example)
- 流式
jsondata:{"data":{"id":"123456789012345","choices":[{"delta":"This","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":1,"total_tokens":7}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"is","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":2,"total_tokens":8}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"a","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":3,"total_tokens":9}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"test","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":4,"total_tokens":10}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"!","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":5,"total_tokens":11}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"","finish_reason":"stop","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":6,"total_tokens":13}},"status":{"code":0, "message": "ok"}}
data:[DONE]
- 非流式
jsondata:{"data":{"id":"123456789012345","choices":[{"delta":"This","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":1,"total_tokens":7}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"is","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":2,"total_tokens":8}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"a","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":3,"total_tokens":9}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"test","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":4,"total_tokens":10}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"!","finish_reason":"","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":5,"total_tokens":11}},"status":{"code":0, "message": "ok"}}
data:{"data":{"id":"123456789012345","choices":[{"delta":"","finish_reason":"stop","index": 0,"role":"assistant"}],"usage":{"prompt_tokens":6,"knowledge_tokens": 0,"completion_tokens":6,"total_tokens":13}},"status":{"code":0, "message": "ok"}}
data:[DONE]
- 非流式
json{
"data": {
"id": "4b44cd86cd2c000",
"choices": [
{
"message": "This is a test!",
"finish_reason": "stop",
"index": 0,
"role": "string"
}
],
"usage": {
"prompt_tokens": 6,
"knowledge_tokens": 0,
"completion_tokens": 6,
"total_tokens": 12
}
}
}
四、错误信息
返回头(Response Header)
请求的返回头部信息中,会包含 HTTP 状态码
和 x-request-id
,用途如下:
HTTP 状态码
:用于标识请求的状态信息,跟返回体错误信息里的error.code
存在映射关系,具体见下方映射关系表x-request-id
:每个请求唯一ID,用于跟踪请求情况及问题排查
返回体(Response Body)
接口调用报错时,返回示例:
json{
"error":{
"code": 0, //错误码
"message": "string", //错误信息
"details": [] //错误细节
}
}
其中, code
跟 HTTP 状态码
的映射关系如下:
code | HTTP 状态码 | 解释 | 报错原因 | 解决方案 |
---|---|---|---|---|
- | 200 | 请求成功 | - | - |
- | 302 | 重定向 | - | - |
1 | 408 | 取消调用 | 客户端取消调用; | - |
2 | 500 | 内部错误 | 服务器内部错误; | 稍后重试,或者联系我们 |
3 | 400 | 参数无效 | "请求的参数名不对;请求的参数值不符合校验规则;" | 检查请求参数是否正确 |
4 | 504 | 调用超时 | 服务器内部超时; | 稍后重试,或者联系我们 |
5 | 404 | 资源无效 | 请求的资源是无效的or model not found; | 检查请求的模型,在模型服务管理的状态是否为开通,若没有开通,或看不到此调用的模型ID,即没有调用权限,可联系大装置客服处理 |
6 | 409 | 资源冲突 | 请求的资源是重复的; | 检查请求参数 |
7 | 403 | 没有权限 | 账户没有访问对应资源权限; | 检查账号具备的接口访问权限(登录“用户控制台-订阅中心”查看),或者检查请求的参数值是否被允许 |
8 | 429 | 超出限制 | "请求的速度太快;请求的资源数量超过限制;" | 调整您的请求,参考每个模块的接口列表里的调用限制,以及接口文档里对于资源的数量限制 |
9 | 400 | 请求失败 | 请求无法在当前系统状态下执行; | 稍后重试,或者联系我们 |
10 | 409 | 并发冲突 | 并发冲突,例如读取/修改/写入错误; | 稍后重试,或者联系我们 |
11 | 400 | 范围无效 | 请求指定的范围无效; | 检查请求参数 |
12 | 501 | 未实现 | 请求的方法/功能未实现; | 检查请求的方法或路径 |
13 | 500 | 内部错误 | 服务器内部错误; | 稍后重试,或者联系我们 |
14 | 503 | 内部错误 | 服务正在维护,暂不可用; | 稍后重试,或者联系我们 |
15 | 500 | 内部错误 | 服务器内部错误; | 稍后重试,或者联系我们 |
16 | 401 | 鉴权失败 | 请求的API鉴权信息不正确,可能是令牌错误,或者生成的 API_TOKEN 过期; | 检查传入的接口鉴权信息是否正确 |
17 | 400 | 参数无效 | 对话生成触发模型上下文长度限制; | 检查messages中的输入tokens+ max_new_tokens≤ 模型上下文长度限制 |
18 | 400 | 参数无效 | 输入/输出内容触发平台安全策略; | 检查messages中的输入内容,尝试更换内容重新请求 |