全部产品
Search
文档中心

Intelligent Media Management:Kueri metadata file

更新时间:Jul 06, 2025

Setelah membuat indeks metadata, Anda dapat mengkueri metadata satu atau beberapa file dengan memanggil operasi API dari Intelligent Media Management (IMM). Anda juga dapat menggunakan pencarian berdasarkan bidang, pencarian kata kunci fuzzy, atau pencarian kata kunci bahasa alami. Topik ini menjelaskan cara mengkueri metadata file.

Prasyarat

Indeks metadata telah dibuat untuk file Anda sesuai dengan skenario penggunaan. Untuk informasi lebih lanjut, lihat Buat indeks metadata.

Metode kueri

Tabel berikut menjelaskan metode yang dapat digunakan untuk mengkueri metadata file.

Metode

Deskripsi

Kueri metadata satu file

Panggil operasi GetFileMeta untuk mengkueri metadata satu file.

Kueri metadata beberapa file

Panggil operasi BatchGetFileMeta untuk memanggil metadata beberapa file sekaligus.

Lakukan kueri sederhana

Panggil operasi SimpleQuery untuk mengkueri file yang memenuhi kondisi tertentu dan mencantumkan metadata berdasarkan bidang dalam urutan pengurutan tertentu.

Anda juga dapat menggunakan nesting untuk melakukan kueri kompleks dan melakukan operasi agregasi untuk mengumpulkan statistik dan menganalisis nilai-nilai dari berbagai bidang. Untuk daftar bidang dan operator yang didukung, lihat Bidang dan operator yang didukung.

Lakukan pencarian fuzzy

Panggil operasi FuzzyQuery untuk mengkueri file yang cocok dengan string tertentu dan mencantumkan metadata file.

IMM mencari string tertentu di dalam bidang metadata yang diekstraksi, seperti nama file, label, jalur, atau label kustom. Jika salah satu nilai bidang metadata dari sebuah file cocok dengan string tertentu, semua metadata file tersebut dikembalikan.

Lakukan pencarian kata kunci bahasa alami

Panggil operasi SemanticQuery untuk mengkueri metadata dalam dataset berdasarkan kata kunci bahasa alami.

Operasi ini mendukung pencarian semantik berdasarkan bidang Labels, ProduceTime, dan AddressLine. Sebagai contoh, untuk mengkueri metadata file yang secara semantik terkait dengan 'langit di atas Hangzhou,' Anda dapat menentukan 'Query=langit di atas Hangzhou' sebagai kondisi kueri.

Kueri metadata satu file

Contoh berikut mencari dataset test-dataset dari proyek test-project untuk metadata objek oss://test-bucket/test-object.jpg.

  • Permintaan sampel

    {
        "ProjectName": "test-project",
        "URI": "oss://test-bucket/test-object.jpg",
        "DatasetName": "test-dataset"
    }
                            
  • Respon sampel

    {
        "RequestId": "645FB6D9-5EA0-02C9-B253-****",
        "Files": [
            {
                "ProduceTime": "2020-08-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": "Tanggou Town",
                        "AddressLine": "Chenlongzhuang, Tanggou Town, Shuyang County, Suqian City, Jiangsu Province",
                        "Country": "China",
                        "City": "Suqian",
                        "District": "Shuyang",
                        "Province": "Jiangsu"
                    }
                ],
                "ObjectType": "file",
                "CustomLabels": {
                    "category": "Persons"
                },
                "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.921999990940094,
                        "Language": "zh-Hans",
                        "LabelConfidence": 1,
                        "LabelName": "Hairstyle",
                        "LabelLevel": 2,
                        "ParentLabelName": "Daily behavior"
                    },
                    ...
                ],
                "Orientation": 1,
                "Figures": [
                    {
                        "Beard": "none",
                        "MaskConfidence": 0.6959999799728394,
                        "Gender": "female",
                        "Boundary": {
                            "Left": 70,
                            "Top": 75,
                            "Height": 134,
                            "Width": 101
                        },
                        ...
                    }
                ],
                "EXIF": "...",
                "ContentMd5": "HZwoCnxPZ/fvhz4oRJ****",
                "ImageHeight": 270,
                "ImageScore": {
                    "OverallQualityScore": 0.6140000224113464
                },
                "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 sampel lengkap (IMM SDK for Python V1.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 AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien. 
            @param access_key_id:
            @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
            )
            # Tentukan titik akhir. 
            config.endpoint = f'imm.cn-beijing.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # Pasangan AccessKey dari akun Alibaba Cloud memiliki izin pada semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi adalah operasi berisiko tinggi. Kami merekomendasikan Anda menggunakan pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin. 
            # Alasan keamanan, kami merekomendasikan Anda tidak menyematkan pasangan AccessKey Anda dalam kode proyek Anda. 
            # Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan untuk mengimplementasikan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/en/imm/developer-reference/configure-environment-variables. 
            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)
            get_file_meta_request = imm_20200930_models.GetFileMetaRequest(
                project_name='test-project',
                dataset_name='test-dataset',
                uri='oss://test-bucket/test-object.jpg'
            )
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API. 
                response = client.get_file_meta_with_options(get_file_meta_request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # Cetak pesan kesalahan jika perlu. 
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()

Kueri metadata beberapa file

Contoh berikut mencari dataset test-dataset dari proyek test-project untuk metadata objek oss://test-bucket/test-object1.jpg dan oss://test-bucket/test-object2.jpg.

  • Permintaan sampel

    {
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "URIs": "[\"oss://test-bucket/test-object.jpg\", \"oss://test-bucket/test-object2.jpg\"]"
    }
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

  • Kode sampel lengkap (IMM SDK for Python V1.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 AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien. 
            @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
            )
            # Tentukan titik akhir. 
            config.endpoint = f'imm.cn-beijing.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # Pasangan AccessKey dari akun Alibaba Cloud memiliki izin pada semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi adalah operasi berisiko tinggi. Kami merekomendasikan Anda menggunakan pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin. 
            # Alasan keamanan, kami merekomendasikan Anda tidak menyematkan pasangan AccessKey Anda dalam kode proyek Anda. 
            # Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan untuk mengimplementasikan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/en/imm/developer-reference/configure-environment-variables. 
            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)
            batch_get_file_meta_request = imm_20200930_models.BatchGetFileMetaRequest(
                project_name='test-project',
                dataset_name='test-dataset',
                uris=[
                    'oss://test-bucket/test-object1.jpg',
                    'oss://test-bucket/test-object2.jpg'
                ]
            )
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API. 
                response = client.batch_get_file_meta_with_options(batch_get_file_meta_request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # Cetak pesan kesalahan jika perlu. 
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()

Lakukan kueri sederhana

Contoh 1

Berikut adalah kondisi kueri:

  • Nama proyek: test-project

  • Nama dataset: test-dataset

  • Jenis file: gambar

  • Pengurutan hasil kueri: dalam urutan menaik ukuran file

  • Jumlah maksimum hasil kueri yang dikembalikan: 100

Berikut ini adalah contohnya:

  • Permintaan sampel

    {
        "Query": "{\"Field\": \"ContentType\", \"Operation\": \"prefix\", \"Value\": \"image\"}",
        "ProjectName": "test-project",
        "DatasetName": "test-dataset"
        "Sort": "Size",
        "Order": "asc",
        "MaxResults": 100
    }
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

  • Kode sampel lengkap (IMM SDK for Python V1.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 AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien. 
            @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 pada semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi adalah operasi berisiko tinggi. Kami merekomendasikan Anda menggunakan pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin. 
            # Alasan keamanan, kami merekomendasikan Anda tidak menyematkan pasangan AccessKey Anda dalam kode proyek Anda. 
            # Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan untuk mengimplementasikan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/en/imm/developer-reference/configure-environment-variables. 
            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)
            request = imm_20200930_models.SimpleQueryRequest()
            params = {
                # Tentukan kondisi kueri 
                "Query": {"SubQueries": [{"Field": "ContentType", "Operation": "eq", "Value": "image/jpeg"}, {"Field": "Size", "Operation": "gt", "Value": "10485760"}, {"Field": "CustomLabels.category", "Operation": "eq", "Value": "Persons"}], "Operation": "and"},
                # Tentukan nama proyek IMM.
                "ProjectName": "test-project",
                # Tentukan nama dataset.
                "DatasetName": "test-dataset",
                # Tentukan bidang pengurutan. 
                "Sort": "Size",
                # Tentukan urutan pengurutan. 
                "Order": "asc",
                # Tetapkan jumlah maksimum hasil kueri menjadi 100. 
                "MaxResults": 100
            }
            request.from_map(params)
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API. 
                response = client.simple_query_with_options(request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # Cetak pesan kesalahan jika perlu. 
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()

Contoh 2

Berikut adalah kondisi kueri:

  • Nama proyek: test-project

  • Nama dataset: test-dataset

  • Jenis file: gambar

  • Ukuran file: lebih besar dari 10 MB

  • Label kustom (CustomLabels.category): Persons

  • Pengurutan hasil kueri: dalam urutan menaik ukuran file

  • Jumlah maksimum hasil kueri yang dikembalikan: 100

Berikut ini adalah contohnya:

  • Permintaan sampel

    {
        "Query": "{\"SubQueries\": [{\"Field\": \"ContentType\", \"Operation\": \"prefix\", \"Value\": \"image\"}, {\"Field\": \"Size\", \"Operation\": \"gt\", \"Value\": \"10485760\"}, {\"Field\": \"CustomLabels.category\", \"Operation\": \"eq\", \"Value\": \"Persons\"}], \"Operation\": \"and\"}",
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Sort": "Size",
        "Order": "asc",
        "MaxResults": 100
                            
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

Contoh 3

Berikut adalah kondisi kueri:

  • Nama proyek: test-project

  • Nama dataset: test-dataset

  • Jalur file: oss://test-bucket/

  • Ukuran file: lebih besar dari 10 MB

  • Label (Labels.LabelName): "TV" atau "Stereo"

  • Pengurutan hasil kueri: dalam urutan menaik ukuran file

  • Jumlah maksimum hasil kueri yang dikembalikan: 100

Berikut ini adalah contohnya:

  • Permintaan sampel

    {
        "Query": "{\"SubQueries\":[{\"Field\":\"URI\",\"Value\":\"oss://test-bucket/\",\"Operation\":\"prefix\"},{\"Field\":\"Size\",\"Value\":\"10485760\",\"Operation\":\"gt\"},{\"SubQueries\":[{\"Field\":\"Labels.LabelName\",\"Value\":\"TV\",\"Operation\":\"eq\"},{\"Field\":\"Labels.LabelName\",\"Value\":\"Stereo\",\"Operation\":\"eq\"}],\"Operation\":\"or\"}],\"Operation\":\"and\"}",
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Sort": "Size",
        "Order": "asc",
        "MaxResults": 100
    }
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

Contoh 4

Berikut adalah kondisi kueri:

  • Nama proyek: test-project

  • Nama dataset: test-dataset

  • Jenis file: gambar

  • Ukuran file: lebih besar dari 10 MB

  • Label kustom (CustomLabels.category): Persons

  • Hasil yang dikembalikan: total ukuran file yang cocok

Berikut ini adalah contohnya:

  • Permintaan sampel

    {
        "Query": "{\"SubQueries\": [{\"Field\": \"ContentType\", \"Operation\": \"eq\", \"Value\": \"image/jpeg\"}, {\"Field\": \"Size\", \"Operation\": \"gt\", \"Value\": \"10485760\"}, {\"Field\": \"CustomLabels.category\", \"Operation\": \"eq\", \"Value\": \"Persons\"}], \"Operation\": \"and\"}",
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Aggregations": "[{\"Field\":\"Size\",\"Operation\":\"sum\"}]"
    }
  • Respon sampel

    {
        "RequestId": "0FB9BA35-E16B-0DFE-BD52-****",
        "Aggregations": [
            {
                "Field": "Size",
                "Value": 10485760,
                "Operation": "sum"
            }
        ]
    }

Contoh 5

Berikut adalah kondisi kueri:

  • Nama proyek: test-project

  • Nama dataset: test-dataset

  • Ukuran file: lebih besar dari 10 MB

  • Wajah (Figures.Age dan Figures.Gender): usia dan jenis kelamin

  • Pengurutan hasil kueri: dalam urutan menaik ukuran file

  • Jumlah maksimum hasil kueri yang dikembalikan: 100

Berikut ini adalah contohnya:

  • Permintaan sampel

    {
        "Query": "{\"Operation\":\"not\",\"SubQueries\":[{\"Operation\":\"nested\",\"SubQueries\":[{\"Operation\":\"and\",\"SubQueries\":[{\"Field\":\"Figures.Age\",\"Operation\":\"gt\",\"Value\":\"36\"},{\"Field\":\"Figures.Gender\",\"Operation\":\"eq\",\"Value\":\"male\"},{\"Field\":\"Size\",\"Operation\":\"gt\",\"Value\":\"10485760\"}]}]}]}",
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Sort": "Size",
        "Order": "asc",
        "MaxResults": 100
    }
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

Contoh 6

Berikut adalah kondisi kueri:

  • Nama proyek: test-project

  • Nama dataset: test-dataset

  • Jenis file: gambar

  • Ukuran file: lebih besar dari 10 MB

  • Label kustom (CustomLabels.category): eksistensi

  • Hasil yang dikembalikan: total ukuran file yang cocok

Berikut ini adalah contohnya:

  • Permintaan sampel

    {
        "Query": "{\"SubQueries\": [{\"Field\": \"ContentType\", \"Operation\": \"eq\", \"Value\": \"image/jpeg\"}, {\"Field\": \"Size\", \"Operation\": \"gt\", \"Value\": \"10485760\"}, {\"Field\": \"CustomLabels.category\", \"Operation\": \"exist\"}], \"Operation\": \"and\"}",
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Aggregations": "[{\"Field\":\"Size\",\"Operation\":\"sum\"}]"
    }
  • Respon sampel

    {
        "RequestId": "0FB9BA35-E16B-0DFE-BD52-****",
        "Aggregations": [
            {
                "Field": "Size",
                "Value": 10485760,
                "Operation": "sum"
            }
        ]
    }

Lakukan pencarian fuzzy

Contoh berikut mencari dataset test-dataset dari proyek test-project untuk metadata file yang cocok dengan string jpg:

  • Permintaan sampel

    {
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Query": "jpg"
    }
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

  • Kode sampel lengkap (IMM SDK for Python V1.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 AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien. 
            @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 pada semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi adalah operasi berisiko tinggi. Kami merekomendasikan Anda menggunakan pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin. 
            # Alasan keamanan, kami merekomendasikan Anda tidak menyematkan pasangan AccessKey Anda dalam kode proyek Anda. 
            # Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan untuk mengimplementasikan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/en/imm/developer-reference/configure-environment-variables. 
            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)
            fuzzy_query_request = imm_20200930_models.FuzzyQueryRequest(
                # Tentukan nama proyek IMM. 
                project_name='test-project',
                # Tentukan nama dataset. 
                dataset_name='test-dataset',
                # Tentukan kata kunci. 
                query='jpg'
            )
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API. 
                response = client.fuzzy_query_with_options(fuzzy_query_request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # Cetak pesan kesalahan jika perlu. 
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()

Lakukan pencarian kata kunci bahasa alami

Contoh berikut mencari dataset test-dataset dari proyek test-project untuk foto panda yang diambil di Chengdu pada Juli 2020:

  • Permintaan sampel

    {
        "ProjectName": "test-project",
        "DatasetName": "test-dataset",
        "Query": "Panda di Chengdu pada Juli 2020"
        "MaxResults": 100
    }
  • Respon sampel (Lihat respon sampel di bagian Kueri metadata satu file)

  • Kode sampel lengkap (IMM SDK for Python V1.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 AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien. 
            @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 pada semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi adalah operasi berisiko tinggi. Kami merekomendasikan Anda menggunakan pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin. 
            # Alasan keamanan, kami merekomendasikan Anda tidak menyematkan pasangan AccessKey Anda dalam kode proyek Anda. 
            # Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan untuk mengimplementasikan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/en/imm/developer-reference/configure-environment-variables. 
            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='Panda di Chengdu pada Juli 2020',
                project_name='test-project',
                dataset_name='test-dataset',
                max_results=100
            )
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API. 
                response = client.semantic_query_with_options(semantic_query_request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # Cetak pesan kesalahan jika perlu. 
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()