Gunakan Go SDK V2 untuk memanggil operasi PutVectorIndex guna membuat indeks vektor dalam bucket vektor.
Izin
Secara default, Akun Alibaba Cloud memiliki semua izin. Pengguna Manajemen Akses Sumber Daya (RAM) dan Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin secara default. Administrator Akun Alibaba Cloud harus memberikan izin kepada Pengguna RAM atau Peran RAM menggunakan Kebijakan RAM atau Kebijakan bucket.
API | Aksi | Deskripsi |
PutVectorIndex |
| Membuat indeks vektor. |
Definisi metode
func (c *VectorsClient) PutVectorIndex(ctx context.Context, request *PutVectorIndexRequest, optFns ...func(*oss.Options)) (*PutVectorIndexResult, error) Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan. |
request | *PutVectorIndexRequest | Parameter permintaan. Untuk informasi lebih lanjut, lihat PutVectorIndexRequest. |
optFns | ...func(*Options) | (Opsional) Parameter konfigurasi tingkat operasi. Untuk informasi lebih lanjut, lihat Options. |
Nilai kembali
Parameter | Tipe | Deskripsi |
result | *PutVectorIndexResult | Nilai kembali dari operasi. Parameter ini valid hanya jika err adalah nil. Untuk informasi lebih lanjut, lihat PutVectorIndexResult. |
err | error | Status permintaan. Jika permintaan gagal, err bukan nil. |
Kode contoh
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"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/vectors"
)
var (
region string
bucketName string
accountId string
indexName string
)
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket vektor berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket vektor.")
flag.StringVar(&accountId, "account-id", "", "ID akun vektor.")
flag.StringVar(&indexName, "index", "", "Nama indeks vektor.")
}
func main() {
flag.Parse()
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
if len(accountId) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, accountId diperlukan")
}
if len(indexName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, indeks diperlukan")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region).WithAccountId(accountId)
client := vectors.NewVectorsClient(cfg)
request := &vectors.PutVectorIndexRequest{
Bucket: oss.Ptr(bucketName),
DataType: oss.Ptr("float32"),
Dimension: oss.Ptr(128),
DistanceMetric: oss.Ptr("cosine"),
IndexName: oss.Ptr(indexName),
Metadata: map[string]any{
"nonFilterableMetadataKeys": []string{"foo", "bar"},
},
}
result, err := client.PutVectorIndex(context.TODO(), request)
if err != nil {
log.Fatalf("gagal menempatkan indeks vektor %v", err)
}
log.Printf("hasil indeks vektor: %#v\n", result)
}Referensi
Untuk kode contoh lengkap untuk membuat indeks vektor, lihat put_vector_index.go.