Use o Go SDK V2 para chamar a operação PutVectors e enviar dados vetoriais a um índice de vetores específico.
Permissões
A conta Alibaba Cloud tem todas as permissões por padrão. Usuários e funções do Resource Access Management (RAM), porém, não possuem permissões iniciais. O proprietário da conta Alibaba Cloud ou um administrador deve conceder as permissões de operação usando uma política do RAM ou uma política de bucket.
|
API |
Ação |
Descrição |
|
PutVectors |
|
Grava dados vetoriais. |
Definição do método
func (c *VectorsClient) PutVectors(ctx context.Context, request *PutVectorsRequest, optFns ...func(*oss.Options)) (*PutVectorsResult, error)
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Descrição |
|
ctx |
context.Context |
Contexto da solicitação. |
|
request |
*PutVectorsRequest |
Parâmetros da solicitação, incluindo o nome do bucket de vetores. Para obter mais informações, consulte PutVectorsRequest. |
|
optFns |
...func(*Options) |
Funções opcionais de configuração. |
Valores de retorno
|
Parâmetro |
Tipo |
Descrição |
|
result |
*PutVectorsResult |
Valor retornado. Este parâmetro é válido apenas quando err é nil. Para obter mais informações, consulte PutVectorsResult. |
|
err |
error |
Mensagem de erro. Este parâmetro é nil se a operação for bem-sucedida. |
Código de exemplo
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
)
func init() {
flag.StringVar(®ion, "region", "", "The region in which 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.")
}
func main() {
flag.Parse()
if len(bucketName) == 0 || len(region) == 0 || len(accountId) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region).WithAccountId(accountId).
// To use public access, set this parameter to false or remove this line.
WithUseInternalEndpoint(true)
client := vectors.NewVectorsClient(cfg)
request := &vectors.PutVectorsRequest{
Bucket: oss.Ptr(bucketName),
IndexName: oss.Ptr("exampleIndex"),
Vectors: [ ]map[string]any{
{
"key": "vector1",
"data": map[string]any{
"float32": [ ]float32{1.2, 2.5, 3},
},
"metadata": map[string]any{
"Key1": "value2",
"Key2": [ ]string{"1", "2", "3"},
},
},
},
}
result, err := client.PutVectors(context.TODO(), request)
if err != nil {
log.Fatalf("failed to put vectors %v", err)
}
log.Printf("put vectors result:%#v\n", result)
}
Referências
Para ver o código de exemplo completo de upload de dados vetoriais, consulte put_vectors.go.