All Products
Search
Document Center

Intelligent Media Management:Retrieval Semantik

Last Updated:Apr 25, 2026

Intelligent Media Management (IMM) menggunakan model retrieval vektor semantik untuk mengambil data media berdasarkan semantik. Topik ini menjelaskan cara menggunakan retrieval semantik.

Deskripsi fitur

Metode retrieval skalar tradisional mengandalkan atribut metadata seperti nama file, waktu pembuatan, dan format untuk mengambil informasi. Berbeda dengan retrieval skalar, retrieval semantik menggunakan metode retrieval vektor untuk mengambil informasi berdasarkan makna atau semantik konten, seperti "pemandangan hutan dari udara", "kota bersalju", dan "padang rumput musim panas lalu." Anda dapat menggunakan fitur retrieval semantik untuk mengambil data yang disimpan di Object Storage Service (OSS) dan Photo and Drive Service.

Skenario

Pencarian file kerja

Retrieval semantik memungkinkan Anda mencari file kerja yang diinginkan berdasarkan konten semantik atau kata kunci, seperti "instruksi sistem ERP", "proses perbaikan perangkat", dan "analisis operasi bisnis tahun 2024", guna mempermudah pencarian file dan meningkatkan efisiensi kerja.

Retrieval multimedia

Retrieval semantik memungkinkan Anda mengintegrasikan kemampuan pencarian dan pengambilan data media yang cepat dan efisien ke dalam aplikasi jaringan multimedia Anda. Misalnya, Anda dapat menerapkan retrieval semantik pada aplikasi jejaring sosial berbasis gambar untuk memungkinkan pengguna mencari gambar menggunakan konten semantik seperti "jalan-jalan di pinggiran kota musim semi lalu", "reuni Tahun Baru Imlek", dan "pengalaman saya di laut." Hal ini memberikan kenyamanan dan keseruan yang lebih besar.

Penyimpanan online

Banyak layanan penyimpanan online menyediakan pencarian file berbasis skalar berdasarkan atribut seperti nama file, waktu pembuatan, dan ekstensi. Retrieval semantik memungkinkan Anda mengambil jenis data tertentu—seperti dokumen dan gambar—secara efisien berdasarkan konten semantik.

Retrieval video pengawasan

Retrieval semantik memungkinkan pencarian dan pengambilan video pengawasan berdasarkan kata kunci semantik, seperti "video pengawasan luar ruangan bersalju kemarin" dan "kebun buah di hari cerah."

Batasan

Penting
  • Retrieval semantik hanya mendukung gambar dan dokumen.

  • Retrieval semantik hanya tersedia di wilayah China (Beijing).

  • Retrieval semantik mendukung format gambar berikut: JPG, PNG, BMP, GIF, WebP, TIFF, HEIC, dan AVIF.

  • Fitur ini mendukung gambar dengan ukuran maksimal 20 MB, lebar atau tinggi tidak melebihi 30.000 piksel, dan jumlah total piksel tidak melebihi 250 juta. Jumlah total piksel gambar dinamis, seperti gambar GIF, dihitung dengan rumus: Lebar × Tinggi × Jumlah frame. Jumlah total piksel gambar statis, seperti gambar PNG, dihitung dengan rumus: Lebar × Tinggi.

  • Batas panjang karakter dokumen adalah 300.000. Karakter tambahan yang melebihi batas tersebut akan dipotong.

  • Pengindeksan dan analisis data dilakukan secara asinkron. Saat Anda memanggil operasi API pengindeksan seperti IndexFileMeta untuk membuat indeks, Anda perlu menggunakan callback untuk memeriksa apakah analisis data telah selesai. Waktu penyelesaian analisis data berkisar dari beberapa detik hingga menit, tergantung pada tipe data, ukuran, dan kompleksitas analisis. Setelah analisis data selesai, mesin penyimpanan membuat indeks, yang memerlukan waktu beberapa detik untuk diselesaikan. Setelah indeks dibuat, Anda dapat mencari data menggunakan retrieval semantik.

Prasyarat

  • Indeks telah dibuat berdasarkan metadata dalam skenario aplikasi Anda. Untuk informasi selengkapnya, lihat Buat indeks metadata.

  • Untuk dataset, pilih templat alur kerja "Official:CognitionImageManagement" atau "Official:CognitionDocumentManagement". Templat ini masing-masing sesuai untuk retrieval semantik gambar dan dokumen.

Penting

Jika Anda tidak lagi memerlukan retrieval semantik, kami menyarankan agar Anda menghapus dataset tersebut. Dataset secara otomatis dan terus-menerus mengekstraksi metadata dari OSS, yang menghasilkan biaya pemanggilan API.

Penagihan

  • Penagihan IMM: Retrieval semantik menghasilkan biaya terkait manajemen metadata. Untuk informasi selengkapnya, lihat Item yang dikenai biaya.

Catatan

Saat menggunakan retrieval semantik, Anda harus memilih templat alur kerja "Official:CognitionImageManagement" atau "Official:CognitionDocumentManagement" untuk dataset Anda. Templat ini digunakan masing-masing untuk retrieval semantik gambar dan dokumen. Templat tersebut berisi beberapa operator. Operator retrieval semantik tidak dikenai biaya, tetapi operator lainnya dikenai biaya. Untuk informasi selengkapnya tentang pemetaan antara templat dan operator, lihat Templat alur kerja dan operator.

Penggunaan

Panggil operasi SemanticQuery untuk mencari metadata dalam dataset test-dataset di proyek test-project.

Retrieval semantik gambar

Misalnya, sebuah album foto berisi banyak foto perjalanan, beberapa di antaranya adalah foto panda yang diambil di Chengdu Research Base of Giant Panda Breeding pada Juli 2020. Untuk menemukan foto-foto tersebut menggunakan retrieval semantik, Anda dapat membuat dataset untuk mengindeks metadata foto-foto tersebut. Kemudian, Anda dapat menggunakan kueri kata kunci seperti "Pandas in Chengdu in July 2020" untuk mengambilnya.

Contoh berikut menunjukkan cara mencari file yang berisi "Pandas in Chengdu in July 2020" dalam dataset test-dataset di proyek test-project:

Contoh permintaan

{
    "ProjectName": "test-project",
    "DatasetName": "test-dataset",
    "Query": "Pandas in Chengdu in July 2020"
}

Contoh tanggapan

{
    "RequestId": "645FB6D9-5EA0-02C9-B253-****",
    "Files": [
        {
            "ProduceTime": "2020-07-19T17:11:11+08:00",
            "ObjectACL": "default",
            "ContentType": "image/jpeg",
            "ProjectName": "test-project",
            "Size": 22868,
            "URI": "oss://test-bucket/test-object.jpg",
            "Addresses": [
                {
                    "Language": "zh-Hans",
                    "Township": "Sanhe Sub-district",
                    "AddressLine": "Chengdu Research Base of Giant Panda Breeding, Sanhe Sub-district, Xindu District, Chengdu City, Sichuan Province",
                    "Country": "China",
                    "City": "Chengdu",
                    "District": "Xindu District",
                    "Province": "Sichuan Province"
                }
            ],
            "ObjectType": "file",
            "OwnerId": "****",
            "FileModifiedTime": "2021-05-13T10:22:44+08:00",
            "ImageWidth": 270,
            "OSSStorageClass": "Standard",
            "MediaType": "image",
            "ObjectId": "****",
            "CreateTime": "2022-07-06T07:10:18.497753661+08:00",
            "Filename": "1.jpg",
            "Labels": [
                {
                    "CentricScore": 0.757,
                    "Language": "zh-Hans",
                    "LabelConfidence": 0.946,
                    "LabelName": "Panda",
                    "LabelLevel": 2,
                    "ParentLabelName": "Wildlife"
                },
                ...
            ],
            "Orientation": 1,
            "EXIF": "...",
            "ContentMd5": "HZwoCnxPZ/fvhz4oRJ****",
            "ImageHeight": 270,
            "ImageScore": {
                "OverallQualityScore": 0.719
            },
            "ETag": "\"1D9C280A7C4F67F7EF873E28449D****\"",
            "DatasetName": "test-dataset",
            "FileHash": "\"1D9C280A7C4F67F7EF873E2****\"",
            "UpdateTime": "2022-07-06T07:10:18.497753661+08:00",
            "OSSCRC64": "5634447745650079669",
            "OSSTaggingCount": 0,
            "LatLong": "34.000000,119.000000",
            "OSSObjectType": "Normal"
        }
    ]
}

Kode contoh (IMM SDK untuk Python 1.27.3)

# -*- coding: utf-8 -*-

import os
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client(
        access_key_id: str,
        access_key_secret: str,
    ) -> imm20200930Client:
        """
        Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi client.
        @param access_key_id:
        @param access_key_secret:
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret
        )
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main() -> None:
        # Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Untuk mencegah risiko keamanan, kami menyarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai Pengguna RAM.
        # Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor dan keamanan semua sumber daya dalam akun Anda dapat dikompromikan.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/document_detail/2361894.html.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        semantic_query_request = imm_20200930_models.SemanticQueryRequest(
            query='Pandas in Chengdu in July 2020',
            project_name='test-project',
            dataset_name='test-dataset',
            max_results=100
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Cetak respons operasi API.
            response = client.semantic_query_with_options(semantic_query_request, runtime)
            print(response.body.to_map())
        except Exception as error:
            # Cetak pesan error jika diperlukan.
            UtilClient.assert_as_string(error.message)
            print(error)


if __name__ == '__main__':
    Sample.main()

Retrieval semantik dokumen

Misalnya, Anda menyimpan berbagai dokumen di penyimpanan online. Untuk menggunakan retrieval semantik guna mengambil dokumen tentang proses layanan TI dari penyimpanan online tersebut, Anda dapat membuat dataset untuk mengindeks dokumen-dokumen tersebut dan menggunakan kata kunci seperti "IT service process" untuk mengambil dokumen tersebut.

Contoh berikut menunjukkan cara mencari file yang berisi "IT service process" dalam dataset test-dataset di proyek test-project dengan parameter permintaan berikut:

Contoh permintaan

{
    "ProjectName": "test-project",
    "DatasetName": "test-dataset",
    "MediaTypes": ["document"],  
    "Query": "IT service process"
}

Contoh tanggapan

{
  "RequestId": "CD870E69-D2E8-031B-BD3E-****",
  "Files": [
    {
      "ObjectACL": "default",
      "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "ProjectName": "test-project",
      "ObjectId": "2f66ba6e902e5ad42341a9e7365b19f6130d4a077e4f57150450e281d0b7afd9",
      "Size": 28340,
      "CreateTime": "2024-03-08T10:13:19.569053164+08:00",
      "Filename": "3839a9a0-c630-420d-ae69-ea24792412fd.docx",
      "URI": "oss://test-bucket/test-object.docx",
      "ObjectType": "file",
      "ContentMd5": "Y7SmYa831Hq1qryuRyl6mg==",
      "OwnerId": "****",
      "FileModifiedTime": "2024-01-10T16:18:31+08:00",
      "ETag": "\"63B4A661AF37D47AB5AABCAE47297A9A\"",
      "DatasetName": "test-dataset",
      "FileHash": "63B4A661AF37D47AB5AABCAE47297A9A",
      "UpdateTime": "2024-03-08T10:13:19.569053164+08:00",
      "OSSStorageClass": "Standard",
      "MediaType": "document",
      "OSSCRC64": "6833019149643646551",
      "OSSTaggingCount": 0,
      "OSSObjectType": "Normal"
    }
  ]
}

Kode contoh (IMM SDK untuk Python 1.27.3)

# -*- coding: utf-8 -*-

import os
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client(
        access_key_id: str,
        access_key_secret: str,
    ) -> imm20200930Client:
        """
        Menginisialisasi client menggunakan ID AccessKey dan Rahasia AccessKey.
        @param access_key_id:
        @param access_key_secret:
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret
        )
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main() -> None:
        # Kami menyarankan menggunakan Pengguna RAM untuk pemanggilan API dan O&M rutin karena lebih aman. Pasangan AccessKey dari Akun Alibaba Cloud memberikan izin penuh atas semua operasi API.
        # Untuk mencegah risiko keamanan, jangan hard-code ID AccessKey dan Rahasia AccessKey dalam kode Anda. Kami menyarankan agar Anda memperoleh pasangan AccessKey dari variabel lingkungan.
        # Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi variabel lingkungan, lihat https://www.alibabacloud.com/help/document_detail/2361894.html.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        semantic_query_request = imm_20200930_models.SemanticQueryRequest(
            query='IT service process',
            project_name='test-project',
            dataset_name='test-dataset',
          	media_types=['document'],
            max_results=100
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Mencetak respons API.
            response = client.semantic_query_with_options(semantic_query_request, runtime)
            print(response.body.to_map())
        except Exception as error:
            # Mencetak pesan error jika terjadi pengecualian.
            UtilClient.assert_as_string(error.message)
            print(error)


if __name__ == '__main__':
    Sample.main()