最近更新时间:2026-04-16 17:59:58
借助多模态大模型视觉理解能力,支持对您传入的KS3中的图片或视频进行识别并理解,您通过该功能针对视觉信息完成如识别、描述等视觉相关任务并进行获取回答。
本功能可快速理解您存储空间中的视频与图像资源,您可直接获取图片和视频里的信息,避免额外的公网流量消耗与繁杂的操作。
使用不同的提示词表现效果不同,建议您根据实际的业务需求选择应用示例的提示词。
图像问答:描述图像中的内容或者对其进行分类打标,如识别人物、地点、车辆、宠物、获取其定位信息等。
视频理解:分析视频内容,如生成关键时间段的视频内容摘要,或对具体事件进行定位。
文字识别与信息抽取:识别图像中的文字、公式,或者抽取票据、证件、表单中的信息并输出。
输出多种语言:支持33种语言,中文、日语、韩语、印尼语、越南语、泰语、英语、法语、德语、俄语、葡萄牙语、西班牙语、意大利语、瑞典语、丹麦语、捷克语、挪威语、荷兰语、芬兰语、土耳其语、波兰语、斯瓦希里语、罗马尼亚语、塞尔维亚语、希腊语、哈萨克语、乌兹别克语、宿务语、阿拉伯语、乌尔都语、波斯语、印地语/天城语、希伯来语。
便捷高效:无需额外操作实现数据智能理解,可直接对对象存储数据进行理解并描述内容,获取简明扼要的资源信息。
成本友好:海量输出存储KS3之上,在轻松构建AI应用的同时,避免使用模型服务产生数据源的外网流量。
前提条件:
您先开通数据处理并授权
通过试用申请,您可通过商务经理或提交工单申请试用,单个账号可拥有100万token 试用额度
目前数据智能仅支持北京
数据智能理解最多单次可进行5张图片提问,1个视频文件提问
对图片、视频理解感知操作需要具备GetObject权限
不支持配置防盗链与开启原图保护的存储桶使用
操作名称:llm/completions
参数 | 类型 | 是否必须 | 描述 |
messages | array | 是 | 对话消息体 |
+role | string | 是 | user,仅支持user 父节点:messages |
+content | array | 是 | 对话容器 父节点:messages |
++ type | string | 是 | 当前支持以下类型: · text:文本 · image_url:图像 · video_url:视频 父节点:content |
stream | bool | 否 | 是否流式输出,默认false即非流式输出,true ,流式输出 |
POST http://test.ks3-cn-beijing.ksyuncs.com?x-kss-process=llm/completions HTTP/1.1
Authorization:xxx
Date:Tue, 31 Mar 2026 08:32:26 GMT
Content-Type:application/json; charset=UTF-8
{
"stream": false,
"messages":[
{
"role":"user",
"content":[
{"type":"image_url","image_url":{"url":"ks3://ks3-resources/suiyi.jpg"}},
{"type":"image_url","image_url":{"url":"ks3://test-bucket/suiyi.jpg"}},// 最多支持5张图片
{"type":"text","text":"描述两张图片的差异,并从图片色彩、构图、内容做出对比,并以英文输出"}
]
}
]
}参数 | 说明 |
|---|---|
image_url.url | 传入的图片地址,仅限对象存储 KS3中的资源。格式如下: |
{
"stream": true,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "请生成这个视频的摘要"
},
{
"type": "video_url",
"fps": 0.2,
"video_url": {
"url": "ks3://bucket/path/to/video.mp4"
}
}
]
}
]
}参数 | 说明 |
|---|---|
video_url.url | 传入的视频地址 URL,仅限对象存储KS3中的资源,仅支持设置设置一个视频URL格式如下: |
fps | 视频截帧频率,即每秒截几帧。可选参数,取值范围 (0.2, 10),默认值为1.0 |
x-kss-request-id: 92ae424793354a759fc5d5700387da0d
Content-Type: application/json;charset=UTF-8
Content-Length: 2796
Date: Fri, 30 Jan 2026 06:55:37 GMT
Keep-Alive: timeout=60
Connection: keep-alive
{
"content": "",
"finishReason": "stop"
}x-kss-request-id: b5bcb99f9b9a4c8ba3109ba8a54add21
Content-Type: text/event-stream
Transfer-Encoding: chunked
Date: Fri, 30 Jan 2026 06:54:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive
event:message
data:{"content":"","finishReason":null}
event:message
data:{"content":"图片中有一群小朋友","finishReason":null}
event:message
data:{"content":"图片中有一群小朋友,他们身穿干净整洁的校服","finishReason":null}
event:message
data:{"content":"图片中有一群小朋友,他们身穿干净整洁的校服,远处有一位正在向孩子们跑来的老师","finishReason":"stop"}
event:finish
data:[DONE]
public void completionsWithJsonResponse() {
// 初始化 Ks3Client,参见"初始化"文档
Ks3Client ks3Client = initKs3Client();
try {
// 构建请求参数(链式调用)
CompletionParam param = new CompletionParam()
.addMessage(new CompletionParam.Message()
.setRole("user")
.addTextContent("请描述这张图片的内容")
.addImageUrlContent("ks3://bucket-name/path/to/image.jpg"));
// 创建请求
CompletionRequest request = new CompletionRequest("bucket-name", param);
// 发送请求并获取结果
CompletionResult result = ks3Client.llmCompletions(request);
// 读取 JSON 响应
try (InputStream content = result.getContent()) {
if (content != null) {
byte[] bytes = new byte[4096];
StringBuilder sb = new StringBuilder();
int bytesRead;
while ((bytesRead = content.read(bytes)) != -1) {
sb.append(new String(bytes, 0, bytesRead, StandardCharsets.UTF_8));
}
System.out.println("JSON 响应: " + sb);
}
}
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} catch (IOException e) {
System.out.println("IOException occurred while reading response content.");
System.out.println("Error Message: " + e.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}public void completionsWithSseResponse() {
// 初始化 Ks3Client,参见"初始化"文档
Ks3Client ks3Client = initKs3Client();
try {
// 构建请求参数(链式调用)
CompletionParam param = new CompletionParam()
.setStream(true)
.addMessage(new CompletionParam.Message()
.setRole("user")
.addTextContent("请分析这段视频的内容")
.addVideoUrlContent("ks3://bucket-name/path/to/video.mp4", 1.0f));
// 创建请求
CompletionRequest request = new CompletionRequest("bucket-name", param);
// 发送请求并获取结果
CompletionResult result = ks3Client.llmCompletions(request);
// 解析 SSE 响应流
try (InputStream content = result.getContent()) {
if (content != null) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(content, StandardCharsets.UTF_8));
String line;
StringBuilder eventData = new StringBuilder();
while ((line = reader.readLine()) != null) {
if (line.isEmpty()) {
// 空行表示一个事件的结束
if (eventData.length() > 0) {
System.out.println("SSE Event: " + eventData);
eventData.setLength(0);
}
} else if (line.startsWith("data:")) {
// 提取 data 字段内容
eventData.append(line.substring(5).trim());
} else if (line.startsWith("event:")) {
// SSE 事件类型
System.out.println("SSE Event Type: " + line.substring(6).trim());
} else if (line.startsWith("id:")) {
// SSE 事件 ID
System.out.println("SSE Event ID: " + line.substring(3).trim());
} else {
// 其他内容
eventData.append(line);
}
}
// 处理最后一个事件(如果没有以空行结尾)
if (eventData.length() > 0) {
System.out.println("SSE Event: " + eventData);
}
}
}
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} catch (IOException e) {
System.out.println("IOException occurred while reading response content.");
System.out.println("Error Message: " + e.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}数据智能邀测期间,接口调用单账户有100万免费token ,超出后按token 用量计费,其余将产生图像或视频文件的API读取次数,
例如:调用接口对3张图片进行分析,则会产生对应的token 以及3次文件读取请求费用
纯净模式
