All Products
Search
Document Center

Object Storage Service:Kesadaran Konten AI

Last Updated:Mar 11, 2026

Saat menyimpan volume besar data tidak terstruktur, seperti gambar dan video, di Object Storage Service (OSS), metode pencarian tradisional berdasarkan nama objek atau tag manual menjadi tidak efisien karena tidak mampu memahami semantik konten objek. OSS menggunakan model AI multi-modal untuk secara otomatis mengekstraksi deskripsi semantik dan ringkasan singkat dari objek dalam bucket, lalu membangun indeks yang dapat dicari. Hal ini memungkinkan pencarian konten objek secara langsung menggunakan bahasa alami, termasuk fitur pencarian lanjutan seperti teks-ke-gambar dan teks-ke-video, sehingga secara signifikan meningkatkan akurasi dan efisiensi pengambilan data. Fitur ini juga menyediakan fondasi kuat untuk membangun aplikasi tingkat tinggi, seperti Generasi yang Diperkaya dengan Pengambilan Data (RAG).

Skenario

  • Pencarian cerdas untuk skenario IP Camera (IPC): Dalam skenario keamanan cerdas, fitur ini mendukung pencarian semantik untuk pemutaran video, dorongan event pemantauan, dan rekomendasi kata kunci tren di aplikasi. Misalnya, saat pengguna akhir melihat pemutaran, sistem dapat secara otomatis menghasilkan "Kata Kunci Tren Hari Ini".

  • Basis pengetahuan Generasi yang Diperkaya dengan Pengambilan Data (RAG): Anda dapat membangun basis pengetahuan RAG eksternal menggunakan volume besar data dan kemampuan kesadaran konten di OSS. Saat pengguna mengajukan pertanyaan, fitur kesadaran konten meningkatkan proses pengambilan RAG dengan menyediakan konteks yang lebih akurat dan relevan kepada model besar, sehingga menghasilkan jawaban berkualitas lebih tinggi.

  • Platform penyimpanan dan manajemen pengetahuan: Anda dapat membangun platform manajemen pengetahuan, platform manajemen aset media, dan platform kantor cerdas perusahaan berdasarkan konten pengetahuan dari pengindeksan data OSS dan fitur kesadaran konten. Fitur ini mampu mengekstraksi hampir 70 item metadata dari objek multimedia, yang dapat digunakan untuk membangun platform manajemen pengetahuan berbasis cloud.

Cara kerja

Inti dari AI Content Awareness adalah pencarian semantik, yang memahami bahasa alami untuk mencocokkan kueri dengan konten multimedia objek, bukan mengandalkan pencocokan kata kunci tradisional. Prosesnya sebagai berikut:

  1. Aktifkan fitur dan lakukan pengindeksan awal: Saat Anda mengaktifkan fitur ini untuk suatu bucket, sistem memicu pemindaian satu kali terhadap objek yang sudah ada dan memproses semua objek yang didukung dalam bucket tersebut secara asinkron.

  2. Ekstraksi fitur dan hasilkan deskripsi: Sistem menggunakan model besar untuk mengekstraksi fitur semantik inti dari setiap objek, menghasilkan dua jenis teks deskriptif berbasis kesadaran konten: deskripsi detail (sekitar 100 kata) dan ringkasan singkat (di bawah 20 kata).

  3. Vektorisasi dan bangun indeks: Sistem melakukan vektorisasi terhadap fitur semantik dan deskripsi berbasis kesadaran konten dari objek, lalu membangun pustaka indeks vektor untuk mendukung pencarian berskala besar dan berkinerja tinggi.

  4. Lakukan pencarian semantik dan penyusunan ulang: Saat pengguna memulai kueri, sistem melakukan vektorisasi terhadap pernyataan pencarian dan mengambil objek yang paling mirip dari indeks vektor. Sistem kemudian menggabungkan representasi vektor dan deskripsi berbasis kesadaran konten untuk menyusun ulang hasilnya, sehingga meningkatkan akurasi dan tingkat recall, secara tepat mengidentifikasi informasi kunci dalam dataset besar, serta memungkinkan pencarian semantik yang ditingkatkan.

  5. Kembalikan hasil untuk aplikasi: Hasil pencarian mencakup deskripsi detail dan ringkasan singkat yang dihasilkan oleh fitur kesadaran konten. Anda dapat langsung memperoleh informasi kunci dan menggunakannya untuk membangun aplikasi tingkat tinggi, seperti "Tren Pencarian" atau "Ringkasan Harian".

Pengindeksan awal berjalan secara asinkron. Proses ini dapat memakan waktu beberapa menit hingga beberapa jam, tergantung pada jumlah dan ukuran objek dalam bucket. Selama periode ini, objek yang sudah ada tidak dapat dicari. Untuk objek baru atau yang diperbarui, sistem secara otomatis memicu pembaruan indeks inkremental.

Batasan

Sebelum memulai, pastikan bucket Anda berada di salah satu wilayah berikut yang mendukung AI Content Awareness: China (Beijing), China (Zhangjiakou), China (Hangzhou), China (Shanghai), China (Shenzhen), China (Chengdu), Singapura, dan AS (Virginia).

Catatan

Sebelum menggunakan fitur AI Content Awareness di wilayah Singapura dan AS (Virginia), Anda harus mengirimkan tiket untuk mengajukan aktivasi.

1. Buat bucket dan unggah file

  1. Login ke OSS console.

  2. Pada halaman Buckets, klik Create Bucket.

  3. Pada halaman Create Bucket, masukkan nama bucket yang relevan dengan bisnis Anda, misalnya videos-oss-metaquery. Pertahankan pengaturan default untuk parameter lainnya.

  4. Klik Create. Pada halaman sukses, klik View Bucket.

  5. Pada halaman Objects, klik Upload File > Scan Files. Pilih file video yang akan diunggah, seperti VideoA.mp4, VideoB.mp4, dan VideoC.mp4. Pertahankan pengaturan default untuk parameter lainnya dan klik Upload.

2. Aktifkan AI Content Awareness

Anda harus mengaktifkan OSS AI Content Awareness untuk bucket Anda dalam fitur Data Index - AISearch. Setelah mengaktifkan fitur ini, Anda dapat menggunakan API kueri Data Index untuk melakukan pencarian dan kueri semantik.

  1. Di panel navigasi sebelah kiri, pilih Object Management > Data Indexing.

  2. Pada halaman Data Index, jika Anda pertama kali menggunakan fitur Data Index, ikuti petunjuk untuk memberikan izin kepada role AliyunMetaQueryDefaultRole. Hal ini memungkinkan OSS mengelola data dalam bucket. Setelah memberikan izin, klik Enable Data Indexing.

  3. Pilih AISearch. Pada bagian AI Content Awareness , pilih Image Content Awareness atau Video Content Awareness sesuai kebutuhan.

  4. (Opsional) aturan filter objek: Konfigurasikan opsi ini untuk menjalankan analisis AI hanya pada objek yang sesuai dengan aturan tertentu. Anda dapat menetapkan hingga lima aturan filter objek berdasarkan awalan, ukuran objek, LastModifiedTime, atau ObjectTag. Contoh: Tambahkan aturan awalan dengan nilai videos/ untuk memproses hanya objek dalam folder videos.

    Catatan

    Jika Anda mengaktifkan filter objek, biaya Data Indexing - AISearch dan biaya kesadaran konten hanya dikenakan berdasarkan jumlah objek yang difilter.

  5. Klik Enable.

Catatan

Pembuatan indeks metadata memerlukan waktu. Durasi tergantung pada jumlah objek dalam bucket. Jika prosesnya terlalu lama, Anda dapat refresh halaman untuk memeriksa status aktif.

3. Jalankan kueri

Setelah indeks dibuat, Anda dapat menjalankan pencarian semantik menggunakan konsol, SDK, atau antarmuka baris perintah. Cukup masukkan teks deskriptif, seperti a yard with a parked car, dan sistem akan mengembalikan objek kunci yang cocok beserta ringkasan kontennya. Anda dapat langsung mengembangkan aplikasi berdasarkan API atau SDK ini tanpa perlu mengelola elastisitas sumber daya dasar, proses vektorisasi, atau pembuatan dan penyimpanan indeks karena layanan ini sepenuhnya berarsitektur tanpa server.

Konsol

  1. Pada halaman Buckets, klik nama bucket Anda.

  2. Pada halaman Objects, pastikan video telah diunggah.

  3. Di panel navigasi sebelah kiri, pilih Object Management > Data Indexing.

  4. Pada halaman Data Indexing, masukkan a yard with a parked car di kotak pencarian. Pada bagian Media Type, pilih Video. Klik Query Now. Pencarian akan mengembalikan video yang sesuai dengan deskripsi tersebut, beserta ringkasan kontennya.

SDK

Java

Fitur pencarian vektor hanya tersedia di Java SDK versi 3.18.2 dan yang lebih baru. Untuk informasi selengkapnya, lihat Vector Search (Java SDK V1).

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;
import java.util.ArrayList;
import java.util.List;

public class DoMetaQuery {
    public static void main(String[] args) throws Exception {
        // Titik akhir diatur ke China (Hangzhou) dalam contoh ini. Ganti dengan titik akhir aktual.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Tentukan nama bucket, misalnya examplebucket.
        String bucketName = "examplebucket";
        // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan wilayah tempat bucket berada. Contoh ini menggunakan cn-hangzhou, yang menunjukkan wilayah China (Hangzhou).
        String region = "cn-hangzhou";

        // Buat instance OSSClient.
        // Saat instance OSSClient tidak lagi diperlukan, panggil metode shutdown untuk melepaskan sumber dayanya.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            int maxResults = 20;
            List<String> mediaTypes = new ArrayList<String>();
            mediaTypes.add("image");
            String query = "Snow";
            String simpleQuery = "{\"Operation\":\"gt\", \"Field\": \"Size\", \"Value\": \"30\"}";
            String sort = "Size";
            DoMetaQueryRequest doMetaQueryRequest = new DoMetaQueryRequest(bucketName, maxResults, query, sort, MetaQueryMode.SEMANTIC, mediaTypes, simpleQuery);
            DoMetaQueryResult doMetaQueryResult = ossClient.doMetaQuery(doMetaQueryRequest);
        } catch (OSSException oe) {
            System.out.println("Error Message: " + oe.getErrorMessage());
            System.out.println("Error Code:       " + oe.getErrorCode());
            System.out.println("Request ID:      " + oe.getRequestId());
            System.out.println("Host ID:           " + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Error Message: " + ce.getMessage());
        } finally {
            if(ossClient != null){
                ossClient.shutdown();
            }
        }
    }
}

Python

Untuk informasi selengkapnya, lihat AISearch.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah untuk memproses input baris perintah.
parser = argparse.ArgumentParser(description="do meta query semantic sample")
# Tambahkan argumen baris perintah yang diperlukan.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)  # Wilayah tempat bucket berada.
parser.add_argument('--bucket', help='Nama bucket.', required=True)  # Nama bucket.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')  # Nama domain OSS, opsional.

def main():
    # Uraikan argumen baris perintah.
    args = parser.parse_args()

    # Muat kredensial akses dari variabel lingkungan.
    # Sebelum menjalankan, Anda perlu menyetel variabel lingkungan: OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Muat konfigurasi SDK default.
    cfg = oss.config.load_default()
    # Tetapkan penyedia kredensial.
    cfg.credentials_provider = credentials_provider
    # Tetapkan wilayah.
    cfg.region = args.region
    # Jika titik akhir disediakan, perbarui titik akhir dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat instance klien OSS.
    client = oss.Client(cfg)

    # Mulai permintaan kueri metadata dalam mode AISearch.
    result = client.do_meta_query(oss.DoMetaQueryRequest(
            bucket=args.bucket,
            mode='semantic',
            meta_query=oss.MetaQuery(
                max_results=1000,
                query='An aerial view of a snow-covered forest',
                order='desc',
                media_types=oss.MetaQueryMediaTypes(
                    media_type=['image']
                ),
                simple_query='{"Operation":"gt", "Field": "Size", "Value": "30"}',
            ),
    ))

    # Cetak hasil pengambilan.
    print(vars(result))

if __name__ == "__main__":
    main()

Go

Untuk informasi selengkapnya, lihat AISearch (Go SDK V2).

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

var (
	region     string
	bucketName string
)

func init() {
	// Gunakan parameter baris perintah untuk menentukan wilayah. Secara default, parameter ini berupa string kosong.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Gunakan parameter baris perintah untuk menentukan nama bucket. Secara default, parameter ini berupa string kosong.
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	flag.Parse() // Uraikan parameter baris perintah.

	// Periksa apakah nama bucket ditentukan. Jika nama bucket tidak ditentukan, kembalikan parameter default dan keluar dari program.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Periksa apakah wilayah ditentukan. Jika wilayah tidak ditentukan, kembalikan parameter default dan keluar dari program.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Buat dan konfigurasikan klien serta gunakan variabel lingkungan untuk meneruskan penyedia kredensial dan wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	client := oss.NewClient(cfg) // Gunakan konfigurasi klien untuk membuat instance OSSClient baru.

	// Lakukan AISearch untuk mengkueri objek yang memenuhi kondisi semantik tertentu.
	request := &oss.DoMetaQueryRequest{
		Bucket: oss.Ptr(bucketName),
		Mode:   oss.Ptr("semantic"),
		MetaQuery: &oss.MetaQuery{
			MaxResults:  oss.Ptr(int64(99)),
			Query: oss.Ptr("Overlook the snow-covered forest"), // Tentukan konten semantik.
			MediaType: oss.Ptr("image"), // Tentukan jenis media yang akan dikueri. Dalam contoh ini, jenis medianya diatur ke image.
			SimpleQuery: oss.Ptr(`{"Operation":"gt", "Field": "Size", "Value": "30"}`),
		},
	}
	result, err := client.DoMetaQuery(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to do meta query %v", err)
	}

	log.Printf("do meta query result:%#v\n", result)
}

PHP

Untuk informasi selengkapnya, lihat AISearch (PHP SDK V2).

<?php

// Impor file autoloader untuk memastikan pustaka dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Definisikan deskripsi argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah tempat bucket berada. Parameter ini wajib.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. Parameter ini opsional.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket. Parameter ini wajib.
];

// Ubah deskripsi argumen ke format opsi panjang yang dibutuhkan oleh getopt.
// Titik dua (:) setelah setiap argumen menunjukkan bahwa argumen tersebut memerlukan nilai.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Uraikan argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah argumen wajib ditentukan.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Peroleh informasi bantuan argumen.
        echo "Error: the following arguments are required: --$key, $help" . PHP_EOL;
        exit(1); // Jika argumen wajib tidak ditentukan, keluar dari program.
    }
}

// Ekstrak nilai dari argumen yang telah diuraikan.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat informasi kredensial dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk membaca Access Key ID dan Access Key Secret dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tetapkan penyedia kredensial.
$cfg->setRegion($region); // Tetapkan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Jika titik akhir disediakan, tetapkan titik akhir.
}

// Buat instance klien OSS.
$client = new Oss\Client($cfg);

// Lakukan kueri AISearch untuk objek yang memenuhi kondisi yang ditentukan.
$request = new Oss\Models\DoMetaQueryRequest($bucket, new Oss\Models\MetaQuery(
    maxResults: 99,
    query: "Overlook the snow-covered forest",
    mediaTypes: new Oss\Models\MetaQueryMediaTypes('image'),
    simpleQuery: '{"Operation":"gt", "Field": "Size", "Value": "30"}',
), 'semantic');

$result = $client->doMetaQuery($request);
printf(
    'status code:' . $result->statusCode . PHP_EOL .
    'request id:' . $result->requestId . PHP_EOL .
    'result:' . var_export($result, true)
);

ossutil

Contoh berikut menunjukkan cara mengkueri objek yang memenuhi kondisi tertentu dalam bucket examplebucket.

ossutil api do-meta-query --bucket examplebucket --meta-query "{\"Query\":\"Overlooking the snow covered forest\",\"MediaTypes\":{\"MediaType\":\"video\"},\"SimpleQuery\":\"{\\\"Operation\\\":\\\"gt\\\", \\\"Field\\\": \\\"Size\\\", \\\"Value\\\": \\\"1\\\"}\"}" --meta-query-mode semantic

Untuk informasi selengkapnya tentang perintah ini, lihat do-meta-query.

Penagihan

Penggunaan fitur AI Content Awareness dikenai biaya sebagai berikut:

  • Biaya pengindeksan data: Anda harus mengaktifkan AI Content Awareness dalam mode Data Index - AISearch, yang mengakibatkan biaya terkait Data Index - AISearch.

  • Biaya AI Content Awareness: Biaya ini mencakup biaya kesadaran konten gambar dan video, yang ditagih berdasarkan jenis dan penggunaan objek yang diproses. Setelah Anda mengaktifkan AI Content Awareness, OSS secara otomatis memindai objek gambar dan video yang sudah ada dalam bucket. Saat objek gambar atau video baru diunggah, OSS secara otomatis memicu AI Content Awareness, sehingga objek tersebut juga dikenai biaya. Kami menyarankan agar Anda memantau tagihan Anda secara berkala.

  • Biaya permintaan API: Biaya permintaan API dikenakan selama pengindeksan objek yang sudah ada dan pembaruan indeks untuk objek inkremental, dihitung berdasarkan jumlah panggilan API. Operasi API yang relevan adalah sebagai berikut:

    Operasi

    API

    Pemindaian objek dalam bucket

    ListObjects

    Membangun indeks untuk objek dalam bucket

    HeadObject dan GetObject

    Objek dalam bucket memiliki tag

    GetObjectTag

    Objek dalam bucket memiliki metadata kustom

    GetObjectMeta

    Bucket berisi objek tautan simbolik

    GetSymlink

Untuk menghentikan biaya terkait, Anda harus segera menonaktifkan AISearch.

API Terkait

Fitur AI Content Awareness diimplementasikan berdasarkan RESTful API berikut. Jika aplikasi Anda memiliki persyaratan kustomisasi tinggi, Anda dapat memanggil API ini secara langsung untuk pengembangan, tetapi harus mengimplementasikan perhitungan signature secara manual.

  • Untuk informasi selengkapnya tentang mengaktifkan fitur manajemen metadata, lihat OpenMetaQuery.

  • Untuk informasi selengkapnya tentang mengkueri status saat ini dari manajemen metadata, lihat GetMetaQueryStatus.

  • Untuk informasi selengkapnya tentang mengkueri objek yang memenuhi kondisi tertentu, lihat DoMetaQuery.

  • Untuk informasi selengkapnya tentang menonaktifkan fitur manajemen metadata, lihat CloseMetaQuery.