最近更新时间:2026-11-11 10:30:12
以下代码用于写入向量:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/vectors"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3向量桶客户端,更多配置项请查看初始化文档
client := vectors.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
})
// 填写向量桶名称
bucket := "<bucket_name>"
// 填写向量索引名称
indexName := "<index_name>"
// 写入向量
resp, err := client.PutVectors(&vectors.PutVectorsInput{
VectorBucketName: aws.String(bucket), // 向量桶名称,必填
IndexName: aws.String(indexName), // 索引名称,必填
Vectors: []*vectors.Vector{
{
Key: aws.String("vec1"), // 向量主键,索引内唯一,必填
Data: &vectors.VectorData{ // 向量数据,维度与数据类型须与索引匹配,必填
Float32: []float32{1, 2, 3, 4}, // 向量分量数组
},
Metadata: map[string]interface{}{"color": "red"}, // 向量元数据,非必填
},
{
Key: aws.String("vec2"),
Data: &vectors.VectorData{
Float32: []float32{5, 6, 7, 8},
},
Metadata: map[string]interface{}{"color": "blue"},
},
},
})
if err != nil {
panic(err)
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}以下代码用于获取向量:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/vectors"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3向量桶客户端,更多配置项请查看初始化文档
client := vectors.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
})
// 填写向量桶名称
bucket := "<bucket_name>"
// 填写向量索引名称
indexName := "<index_name>"
// 获取向量
resp, err := client.GetVectors(&vectors.GetVectorsInput{
VectorBucketName: aws.String(bucket), // 向量桶名称,必填
IndexName: aws.String(indexName), // 索引名称,必填
Keys: []*string{aws.String("vec1"), aws.String("vec2")}, // 目标向量主键列表,必填
ReturnData: aws.Boolean(true), // 是否返回向量数据,非必填
ReturnMetadata: aws.Boolean(true), // 是否返回向量元数据,非必填
})
if err != nil {
panic(err)
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}以下代码用于列举向量:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/vectors"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3向量桶客户端,更多配置项请查看初始化文档
client := vectors.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
})
// 填写向量桶名称
bucket := "<bucket_name>"
// 填写向量索引名称
indexName := "<index_name>"
// 列举向量
resp, err := client.ListVectors(&vectors.ListVectorsInput{
VectorBucketName: aws.String(bucket), // 向量桶名称,必填
IndexName: aws.String(indexName), // 索引名称,必填
MaxResults: aws.Long(100), // 单次返回的最大数量,非必填
ReturnData: aws.Boolean(true), // 是否返回向量数据,非必填
ReturnMetadata: aws.Boolean(true), // 是否返回向量元数据,非必填
})
if err != nil {
panic(err)
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}以下代码用于删除向量:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/vectors"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3向量桶客户端,更多配置项请查看初始化文档
client := vectors.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
})
// 填写向量桶名称
bucket := "<bucket_name>"
// 填写向量索引名称
indexName := "<index_name>"
// 删除向量
resp, err := client.DeleteVectors(&vectors.DeleteVectorsInput{
VectorBucketName: aws.String(bucket), // 向量桶名称,必填
IndexName: aws.String(indexName), // 索引名称,必填
Keys: []*string{aws.String("vec1"), aws.String("vec2")}, // 要删除的向量主键列表,必填
})
if err != nil {
panic(err)
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}以下代码用于相似性检索向量:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/vectors"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3向量桶客户端,更多配置项请查看初始化文档
client := vectors.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
})
// 填写向量桶名称
bucket := "<bucket_name>"
// 填写向量索引名称
indexName := "<index_name>"
// 相似性检索向量
resp, err := client.QueryVectors(&vectors.QueryVectorsInput{
VectorBucketName: aws.String(bucket), // 向量桶名称,必填
IndexName: aws.String(indexName), // 索引名称,必填
QueryVector: &vectors.VectorData{ // 查询向量,维度须与索引匹配,必填
Float32: []float32{1, 2, 3, 4}, // 向量分量数组
},
TopK: aws.Long(10), // 返回的最近邻结果数,必填
Filter: map[string]interface{}{"color": map[string]interface{}{"$eq": "red"}}, // 元数据预过滤器,非必填
ReturnData: aws.Boolean(true), // 是否返回向量数据,非必填
ReturnMetadata: aws.Boolean(true), // 是否返回向量元数据,非必填
ReturnDistance: aws.Boolean(true), // 是否返回相似度距离,非必填
})
if err != nil {
panic(err)
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}
纯净模式
