日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

OpenAPI封裝了云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL版向量操作的DDL和DML,使您可以通過OpenAPI來管理向量數(shù)據(jù)。本文以SDK Java調(diào)用方式介紹如何通過API導(dǎo)入并查詢向量數(shù)據(jù)。

前提條件

操作流程

  1. 初始化向量庫

  2. 創(chuàng)建Namespace。

  3. 創(chuàng)建Collection。

  4. 上傳向量數(shù)據(jù)。

  5. 召回向量數(shù)據(jù)。

初始化向量庫

在使用向量檢索前,需初始化knowledgebase庫以及全文檢索相關(guān)功能。

調(diào)用示例如下:

InitVectorDatabaseRequest request = new InitVectorDatabaseRequest();
request.setDBInstanceId("gp-bp1c62r3l489****");
request.setManagerAccount("myaccount");
request.setManagerAccountPassword("myaccount_password");
request.setRegionId("ap-southeast-1");
InitVectorDatabaseResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));

參數(shù)說明,請(qǐng)參見InitVectorDatabase - 初始化向量數(shù)據(jù)庫。

創(chuàng)建Namespace

Namespace用于Schema隔離,在使用向量前,需至少創(chuàng)建一個(gè)Namespace或者使用public的Namespace。

調(diào)用示例如下:

CreateNamespaceRequest request = new CreateNamespaceRequest();
request.setDBInstanceId("gp-bp1c62r3l489****");
request.setManagerAccount("myaccount");
request.setManagerAccountPassword("myaccount_password");
request.setNamespace("vector_test");
request.setNamespacePassword("vector_test_password");
request.setRegionId("ap-southeast-1");
CreateNamespaceResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));

參數(shù)說明,請(qǐng)參見CreateNamespace - 創(chuàng)建命名空間

創(chuàng)建完后,可以在實(shí)例的knowledgebase庫查看對(duì)應(yīng)的Schema。

SELECT schema_name FROM information_schema.schemata;

創(chuàng)建Collection

Collection用于存儲(chǔ)向量數(shù)據(jù),并使用Namespace隔離。

調(diào)用示例如下:

Map<String,String> metadata = new HashMap<>();
metadata.put("title", "text");
metadata.put("link", "text");
metadata.put("content", "text");
metadata.put("pv", "int");
List<String> fullTextRetrievalFields = Arrays.asList("title", "content");

CreateCollectionRequest request = new CreateCollectionRequest();
request.setDBInstanceId("gp-bp1c62r3l489****");
request.setManagerAccount("myaccount");
request.setManagerAccountPassword("myaccount_password");
request.setNamespace("vector_test");
request.setCollection("document");
request.setDimension(10L);
request.setFullTextRetrievalFields(StringUtils.join(fullTextRetrievalFields, ","));
request.setMetadata(new Gson().toJson(metadata));
request.setParser("zh_ch");
request.setRegionId("ap-southeast-1");
CreateCollectionResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));

參數(shù)說明,請(qǐng)參見CreateCollection - 創(chuàng)建向量數(shù)據(jù)集

創(chuàng)建完后,可以在實(shí)例的knowledgebase庫查看對(duì)應(yīng)的Table。

SELECT tablename FROM pg_tables WHERE schemaname='vector_test';

上傳向量數(shù)據(jù)

將準(zhǔn)備好的Embedding向量數(shù)據(jù)上傳到對(duì)應(yīng)的Collection中。

調(diào)用示例如下:

UpsertCollectionDataRequest request = new UpsertCollectionDataRequest();
request.setDBInstanceId("gp-bp1c62r3l489****");
request.setCollection("document");
request.setNamespace("vector_test");
request.setNamespacePassword("vector_test_password");
request.setRegionId("ap-southeast-1");

List<UpsertCollectionDataRequest.UpsertCollectionDataRequestRows> rows = new ArrayList<>();
UpsertCollectionDataRequest.UpsertCollectionDataRequestRows row = new UpsertCollectionDataRequest.UpsertCollectionDataRequestRows();
row.setId("0CB55798-ECF5-4064-B81E-FE35B19E01A6");
row.setVector(Arrays.asList(0.2894745251078251,0.5364747050266715,0.1276845661831275,0.22528871956822372,0.7009319238651552,0.40267406135256123,0.8873626696379067,0.1248525955774931,0.9115507046412368,0.2450859133174706));
Map<String, String> rowsMetadata = new HashMap<>();
rowsMetadata.put("title", "測試文檔");
rowsMetadata.put("content","測試內(nèi)容");
rowsMetadata.put("link","http://127.0.0.1/document1");
rowsMetadata.put("pv","1000");
row.setMetadata(rowsMetadata);
rows.add(row);
request.setRows(rows);
UpsertCollectionDataResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));

參數(shù)說明,請(qǐng)參見UpsertCollectionData - 上傳向量數(shù)據(jù)

上傳完成,可以在實(shí)例的knowledgebase庫查看數(shù)據(jù)。

SELECT * FROM vector_test.document;

召回向量數(shù)據(jù)

準(zhǔn)備需要召回的查詢向量或全文檢索字段,執(zhí)行查詢接口。

調(diào)用示例如下:

QueryCollectionDataRequest request = new QueryCollectionDataRequest();
request.setDBInstanceId("gp-bp1c62r3l489****");
request.setCollection("document");
request.setNamespace("vector_test");
request.setNamespacePassword("vector_test_password");
request.setContent("測試");
request.setFilter("pv > 10");
request.setTopK(10L);
request.setVector(Arrays.asList(0.7152607422256894,0.5524872066437732,0.1168505269851303,0.704130971473022,0.4118874999967596,0.2451574619214022,0.18193414783144812,0.3050522957905741,0.24846180714868163,0.0549715380856951));
request.setRegionId("ap-southeast-1");
QueryCollectionDataResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));

返回結(jié)果如下:

{
  "Matches": {
    "match": [
      {
        "Id": "0CB55798-ECF5-4064-B81E-FE35B19E01A6",
        "Metadata": {
          "title":"測試文檔",
          "content":"測試內(nèi)容",
          "link":"http://127.0.0.1/document1",
          "pv":"1000"
        },
        "Values": [
           0.2894745251078251,
           0.5364747050266715,
           0.1276845661831275,
           0.22528871956822372,
           0.7009319238651552,
           0.40267406135256123,
           0.8873626696379067,
           0.1248525955774931,
           0.9115507046412368,
           0.2450859133174706
        ]
      }
    ]
  },
  "RequestId": "ABB39CC3-4488-4857-905D-2E4A051D0521",
  "Status": "success"
}

相關(guān)文檔

向量檢索