Vektör dizininde benzerlik araması yapmak için Go yazılım geliştirme kiti (SDK) V2 ile QueryVectors işlemini çağırabilirsiniz.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabında tam izinler bulunurken RAM kullanıcısı veya RAM rolünde herhangi bir izin bulunmaz. Alibaba Cloud hesabı sahibi veya yönetici, izinleri bir RAM ilkesi veya paket ilkesi kullanarak vermelidir.
|
|
|
|
|
|
|
|
Yöntem tanımı
func (c *VectorsClient) QueryVectors(ctx context.Context, request *QueryVectorsRequest, optFns ...func(*oss.Options)) (*QueryVectorsResult, error)
İstek parametreleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(İsteğe bağlı) Arayüz düzeyindeki yapılandırma parametreleri. Daha fazla bilgi için bkz. Options. |
Dönüş değerleri
|
|
|
|
|
|
|
|
|
|
|
|
Örnek kod
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", "", "The region where the vector bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the vector bucket.")
flag.StringVar(&accountId, "account-id", "", "The ID of the Alibaba Cloud account.")
flag.StringVar(&indexName, "index", "", "The name of the vector index.")
}
func main() {
flag.Parse()
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
if len(accountId) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, account-id required")
}
if len(indexName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, index required")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region).WithAccountId(accountId).
// To access over the public internet, set this to false or remove this line.
WithUseInternalEndpoint(true)
client := vectors.NewVectorsClient(cfg)
request := &vectors.QueryVectorsRequest{
Bucket: oss.Ptr(bucketName),
IndexName: oss.Ptr(indexName),
Filter: map[string]any{
"$and": []map[string]any{
{
"type": map[string]any{
"$in": []string{"comedy", "documentary"},
},
},
},
},
QueryVector: map[string]any{
"float32": []float32{float32(32)},
},
ReturnMetadata: oss.Ptr(true),
ReturnDistance: oss.Ptr(true),
TopK: oss.Ptr(10),
}
result, err := client.QueryVectors(context.TODO(), request)
if err != nil {
log.Fatalf("failed to query vectors %v", err)
}
log.Printf("query vectors result:%#v\n", result)
}
Referanslar
Vektörleri sorgulamaya ilişkin eksiksiz örnek kod için bkz. query_vectors.go.