全部产品
Search
文档中心

Object Storage Service:Indeks Vektor (Python SDK V2)

更新时间:Nov 09, 2025

Dengan OSS AISearch, Anda dapat dengan cepat menemukan file objek di antara sejumlah besar objek berdasarkan kondisi seperti konten semantik, metadata OSS, metadata multimedia, ETags objek, tag, dan metadata kustom untuk meningkatkan efisiensi pengambilan. Topik ini menjelaskan cara menggunakan Python SDK V2 untuk pengambilan vektor.

Catatan

  • Kode contoh dalam topik ini menggunakan Wilayah Hangzhou, Tiongkok (cn-hangzhou) sebagai contoh. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari produk Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara wilayah yang didukung oleh OSS dan titik akhir, lihat Wilayah dan titik akhir OSS.

  • Contoh dalam topik ini menunjukkan cara membaca kredensial akses dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses.

Kode contoh

Aktifkan fitur AISearch

Kode berikut menunjukkan cara mengaktifkan fitur AISearch untuk bucket tertentu.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah dan tambahkan deskripsi.
parser = argparse.ArgumentParser(description="contoh query meta terbuka")
# Tambahkan argumen baris perintah --region yang diperlukan untuk menentukan wilayah tempat bucket berada.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tambahkan argumen baris perintah --bucket yang diperlukan untuk menentukan nama bucket yang akan dioperasikan.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tambahkan argumen baris perintah --endpoint opsional untuk menentukan nama domain yang digunakan untuk mengakses OSS.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

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

    # Muat informasi autentikasi dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default yang disediakan oleh SDK.
    cfg = oss.config.load_default()
    # Setel penyedia informasi autentikasi.
    cfg.credentials_provider = credentials_provider
    # Setel wilayah berdasarkan argumen baris perintah.
    cfg.region = args.region
    # Jika endpoint diberikan, perbarui endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

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

    # Bangun OpenMetaQueryRequest untuk mengaktifkan fitur AISearch untuk bucket.
    result = client.open_meta_query(oss.OpenMetaQueryRequest(
            bucket=args.bucket,
            mode='semantic',# Setel ke "semantic" untuk memilih AISearch.
    ))

    # Cetak kode status dan ID permintaan dari permintaan.
    print(f'kode status: {result.status_code},'
          f' ID permintaan: {result.request_id},'
          )

# Panggil fungsi utama saat dijalankan sebagai program utama.
if __name__ == "__main__":
    main()

Peroleh informasi indeks metadata

Kode berikut menunjukkan cara memperoleh informasi indeks metadata untuk bucket tertentu.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah dan tambahkan argumen yang diperlukan.
parser = argparse.ArgumentParser(description="contoh status query meta")
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

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

    # Muat informasi kredensial dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default dari SDK.
    cfg = oss.config.load_default()
    # Setel penyedia kredensial ke kredensial yang diperoleh dari variabel lingkungan.
    cfg.credentials_provider = credentials_provider
    # Setel wilayah tempat layanan OSS berada.
    cfg.region = args.region
    # Jika endpoint diberikan, setel endpoint kustom.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

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

    # Panggil metode get_meta_query_status untuk memperoleh informasi indeks metadata dari bucket tertentu.
    result = client.get_meta_query_status(oss.GetMetaQueryStatusRequest(
            bucket=args.bucket,
    ))

    # Cetak informasi relevan dalam hasil yang dikembalikan.
    print(f'kode status: {result.status_code},'
            f' ID permintaan: {result.request_id},'
            f' waktu pembuatan: {result.meta_query_status.create_time},'
            f' waktu pembaruan: {result.meta_query_status.update_time},'
            f' status: {result.meta_query_status.state},'
            f' fase: {result.meta_query_status.phase},'
    )

# Panggil fungsi utama saat skrip dijalankan langsung.
if __name__ == "__main__":
    main()

Kueri objek yang memenuhi kondisi tertentu

Kode berikut menunjukkan cara menggunakan fitur AISearch untuk menanyakan objek yang cocok dengan konten semantik tertentu.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah untuk memproses input baris perintah.
parser = argparse.ArgumentParser(description="contoh query meta semantik")
# 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 OSS, yang bersifat opsional.')  # Nama domain OSS.

def main():
    # Mengurai 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 default SDK.
    cfg = oss.config.load_default()
    # Setel penyedia kredensial.
    cfg.credentials_provider = credentials_provider
    # Setel wilayah.
    cfg.region = args.region
    # Jika endpoint diberikan, perbarui endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

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

    # Mulai permintaan query metadata dalam mode AISearch.
    result = client.do_meta_query(oss.DoMetaQueryRequest(
            bucket=args.bucket,
            mode='semantic',
            meta_query=oss.MetaQuery(
                max_results=1000,
                query='Pemandangan udara hutan bersalju',
                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()

Nonaktifkan fitur AISearch

Kode berikut menunjukkan cara menonaktifkan fitur AISearch untuk bucket tertentu.

import argparse
import alibabacloud_oss_v2 as oss

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

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

    # Muat informasi kredensial dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default dari SDK.
    cfg = oss.config.load_default()
    # Setel penyedia kredensial ke kredensial yang diperoleh dari variabel lingkungan.
    cfg.credentials_provider = credentials_provider
    # Setel informasi wilayah dalam konfigurasi.
    cfg.region = args.region
    # Jika endpoint diberikan, setel endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

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

    # Panggil metode close_meta_query untuk menonaktifkan fitur pengambilan untuk bucket.
    result = client.close_meta_query(oss.CloseMetaQueryRequest(
            bucket=args.bucket,
    ))

    # Cetak kode status dan ID permintaan dari respons.
    print(f'kode status: {result.status_code}, ID permintaan: {result.request_id}')

# Jalankan fungsi utama saat skrip ini dijalankan langsung.
if __name__ == "__main__":
    main()

Referensi

  • Untuk informasi lebih lanjut tentang AISearch, lihat AISearch.

  • Untuk informasi lebih lanjut tentang operasi API untuk pengindeksan data, lihat Pengindeksan Data.

  • Untuk kode contoh lengkap untuk AISearch, lihat contoh GitHub.