全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

基于对象存储的视觉识别与理解

最近更新时间:2026-04-16 17:59:58

视觉识别与理解

借助多模态大模型视觉理解能力,支持对您传入的KS3中的图片或视频进行识别并理解,您通过该功能针对视觉信息完成如识别、描述等视觉相关任务并进行获取回答。
本功能可快速理解您存储空间中的视频与图像资源,您可直接获取图片和视频里的信息,避免额外的公网流量消耗与繁杂的操作。

应用场景

使用不同的提示词表现效果不同,建议您根据实际的业务需求选择应用示例的提示词。

  • 图像问答:描述图像中的内容或者对其进行分类打标,如识别人物、地点、车辆、宠物、获取其定位信息等。

  • 视频理解:分析视频内容,如生成关键时间段的视频内容摘要,或对具体事件进行定位。

  • 文字识别与信息抽取:识别图像中的文字、公式,或者抽取票据、证件、表单中的信息并输出。

  • 输出多种语言:支持33种语言,中文、日语、韩语、印尼语、越南语、泰语、英语、法语、德语、俄语、葡萄牙语、西班牙语、意大利语、瑞典语、丹麦语、捷克语、挪威语、荷兰语、芬兰语、土耳其语、波兰语、斯瓦希里语、罗马尼亚语、塞尔维亚语、希腊语、哈萨克语、乌兹别克语、宿务语、阿拉伯语、乌尔都语、波斯语、印地语/天城语、希伯来语

功能优势

  • 便捷高效:无需额外操作实现数据智能理解,可直接对对象存储数据进行理解并描述内容,获取简明扼要的资源信息。

  • 成本友好:海量输出存储KS3之上,在轻松构建AI应用的同时,避免使用模型服务产生数据源的外网流量。

快速使用

前提条件:

  1. 您先开通数据处理并授权

  2. 通过试用申请,您可通过商务经理或提交工单申请试用,单个账号可拥有100万token 试用额度

使用限制

  1. 目前数据智能仅支持北京

  2. 数据智能理解最多单次可进行5张图片提问,1个视频文件提问

  3. 对图片、视频理解感知操作需要具备GetObject权限

  4. 不支持配置防盗链与开启原图保护的存储桶使用

参数说明

操作名称:llm/completions

请求参数

通用参数说明:

参数

类型

是否必须

描述

messages

array

对话消息体

+role

string

user,仅支持user

父节点:messages

+content

array

对话容器

父节点:messages

++ type

string

当前支持以下类型:

· text:文本

· image_url:图像

· video_url:视频

父节点:content

stream

bool

是否流式输出,默认false即非流式输出,true ,流式输出

图片理解HTTP调用示例
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中的资源。格式如下:
- 直接使用空间中的对象 ks3://<bucket>/<object>

视频理解HTTP调用示例
{
  "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格式如下:
-直接使用空间中的对象 ks3://<bucket>/<object>
- 使用空间中携带数据处理命令的对象 ks3://<bucket>/<object>

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]

JAVA SDK 调用示例

Json 响应模式


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();
    }
}

SSE 响应模式

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();
    }
}

控制台使用说明

1.开通数据智能

  1. 登录KS3管理控制台

  2. 进入Bucket列表页面,进入北京地域存储桶,在【数据处理】页签下->【数据智能】页面下进行功能开通。

  3. 开通数据智能后,可通过【立即体验】快捷进行功能使用

2.使用数据智能

  1. 登录KS3管理控制台

  2. 进入Bucket列表页面,进入已经开启数据智能的Bucket文件列表页。

  3. 点击图片与视频文件后 AI 图标,唤起数据智能助手,进行提问

计费说明

数据智能邀测期间,接口调用单账户有100万免费token ,超出后按token 用量计费,其余将产生图像或视频文件的API读取次数,

例如:调用接口对3张图片进行分析,则会产生对应的token 以及3次文件读取请求费用


文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈