上傳Vectors(Java SDK V2)
更新時間:
Copy as MD
本文介紹如何使用 OSS Java SDK V2 調用 PutVectors 介面向指定向量索引(Index)上傳向量資料。向量的維度需與索引建立時的 dimension 一致。
許可權說明
阿里雲帳號預設擁有全部許可權。阿里雲帳號下的 RAM 使用者或 RAM 角色預設沒有任何許可權,需要阿里雲帳號或帳號管理員通過 RAM Policy 或 Bucket Policy 授予操作許可權。
API | Action | 說明 |
PutVectors | oss:PutVectors | 上傳向量資料(Vectors)。 |
範例程式碼
import com.aliyun.sdk.service.oss2.credentials.CredentialsProvider;
import com.aliyun.sdk.service.oss2.credentials.EnvironmentVariableCredentialsProvider;
import com.aliyun.sdk.service.oss2.vectors.OSSVectorsClient;
import com.aliyun.sdk.service.oss2.vectors.models.PutVectorsRequest;
import com.aliyun.sdk.service.oss2.vectors.models.PutVectorsResult;
import java.util.*;
public class PutVectorsSample {
public static void main(String[] args) throws Exception {
CredentialsProvider provider = new EnvironmentVariableCredentialsProvider();
try (OSSVectorsClient client = OSSVectorsClient.newBuilder()
.region("cn-hangzhou")
.accountId("1234567890")
.credentialsProvider(provider)
.build()) {
List<Map<String, Object>> vectors = Arrays.asList(
createVector("key1", new Float[]{1.0f, 2.0f, 3.0f}, "description1"),
createVector("key2", new Float[]{4.0f, 5.0f, 6.0f}, "description2"));
PutVectorsRequest request = PutVectorsRequest.newBuilder()
.bucket("examplebucket")
.indexName("exampleindex")
.vectors(vectors)
.build();
PutVectorsResult result = client.putVectors(request);
System.out.printf("status code: %d, request id: %s%n", result.statusCode(), result.requestId());
}
}
private static Map<String, Object> createVector(String key, Float[] data, String description) {
Map<String, Object> vector = new HashMap<>();
vector.put("key", key);
Map<String, Object> vectorData = new HashMap<>();
vectorData.put("float32", Arrays.asList(data));
vector.put("data", vectorData);
Map<String, String> meta = new HashMap<>();
meta.put("description", description);
vector.put("metadata", meta);
return vector;
}
}相關文檔
同步範例程式碼,請參見 PutVectors.java。
非同步範例程式碼,請參見 PutVectorsAsync.java。
该文章对您有帮助吗?