Topik ini menjelaskan cara menggunakan Python SDK V2 untuk memanggil operasi QueryVectors dan melakukan pencarian kesamaan dalam indeks vektor.
Izin
Akun Alibaba Cloud memiliki semua izin secara default. Pengguna Resource Access Management (RAM) atau Peran RAM tidak memiliki izin secara default. Akun Alibaba Cloud atau administrator harus memberikan izin kepada Pengguna RAM atau Peran RAM menggunakan Kebijakan RAM atau Kebijakan Bucket.
API | Aksi | Deskripsi |
QueryVectors |
| Mengkueri data vektor. |
Definisi metode
query_vectors(request: QueryVectorsRequest, **kwargs) → QueryVectorsResultParameter permintaan
Parameter | Tipe | Deskripsi |
request | QueryVectorsRequest | Menetapkan parameter permintaan, termasuk vektor kueri, kondisi filter, dan jumlah hasil yang akan dikembalikan. Untuk informasi lebih lanjut, lihat QueryVectorsRequest. |
Nilai kembali
Tipe | Deskripsi |
QueryVectorsResult | Nilai kembali, yang berisi daftar vektor hasil. Untuk informasi lebih lanjut, lihat QueryVectorsResult. |
Untuk definisi lengkap metode, lihat query_vectors.
Kode contoh
import argparse
import alibabacloud_oss_v2 as oss
import alibabacloud_oss_v2.vectors as oss_vectors
parser = argparse.ArgumentParser(description="contoh vektor query vectors")
parser.add_argument('--region', help='Wilayah di mana 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')
parser.add_argument('--index_name', help='Nama indeks vektor.', required=True)
parser.add_argument('--account_id', help='ID akun.', required=True)
def main():
args = parser.parse_args()
# Memuat nilai kredensial dari variabel lingkungan
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Menggunakan konfigurasi default SDK
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
cfg.account_id = args.account_id
if args.endpoint is not None:
cfg.endpoint = args.endpoint
vector_client = oss_vectors.Client(cfg)
query_filter = {
"$and": [{
"type": {
"$nin": ["comedy", "documentary"]
}
}]
}
query_vector = {"float32": [0.1] * 128}
result = vector_client.query_vectors(oss_vectors.models.QueryVectorsRequest(
bucket=args.bucket,
index_name=args.index_name,
filter=query_filter,
query_vector=query_vector,
return_distance=True,
return_metadata=True,
top_k=10
))
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
)
if result.vectors:
for vector in result.vectors:
print(f'vektor: {vector}')
if __name__ == "__main__":
main()Referensi
Untuk kode contoh lengkap untuk mengkueri vektor, lihat query_vectors.py.