如何快速使用向量检索服务DashVector?

简介: 本文将介绍如何快速上手使用向量检索服务DashVector。

免费体验阿里云高性能向量检索服务https://www.aliyun.com/product/ai/dashvector


前提条件

说明

  1. 需要使用您的api-key替换示例中的YOUR_API_KEY、您的Cluster Endpoint替换示例中的YOUR_CLUSTER_ENDPOINT,代码才能正常运行。
  2. Cluster Endpoint,可在控制台“Cluster详情”中查看。


Step1. 创建Client

使用HTTP API时可跳过本步骤。

Python示例:

importdashvectorclient=dashvector.Client(
api_key='YOUR_API_KEY',
endpoint='YOUR_CLUSTER_ENDPOINT')
assertclient


Java示例:

importcom.aliyun.dashvector.DashVectorClient;
importcom.aliyun.dashvector.common.DashVectorException;
DashVectorClientclient=newDashVectorClient("YOUR_API_KEY", "YOUR_CLUSTER_ENDPOINT");


Step2. 创建Collection

创建一个名称为quickstart,向量维度为4的collection。

Python示例:

client.create(name='quickstart', dimension=4)
collection = client.get('quickstart')
assert collection


Java示例:

importcom.aliyun.dashvector.models.responses.Response;
importcom.aliyun.dashvector.DashVectorCollection;
Response<Void>response=client.create("quickstart", 4);
System.out.println(response);
DashVectorCollectioncollection=client.get("quickstart");
assertcollection.isSuccess();


HTTP示例:

curl -XPOST \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "quickstart", 
    "dimension": 4
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections


说明

  1. 在未指定距离度量参数时,将使用默认的Cosine距离度量方式。
  2. 在未指定向量数据类型时,将使用默认的Float数据类型。


Step3. 插入Doc

Python示例:

from dashvector import Doc
# 通过dashvector.Doc对象,插入单条数据
collection.insert(Doc(id='1', vector=[0.1, 0.2, 0.3, 0.4]))
# 通过dashvector.Doc对象,批量插入2条数据
collection.insert(
    [
        Doc(id='2', vector=[0.2, 0.3, 0.4, 0.5], fields={'age': 20, 'name': 'zhangsan'}),
        Doc(id='3', vector=[0.3, 0.4, 0.5, 0.6], fields={'anykey': 'anyvalue'})    
    ]
)


Java示例:

import com.aliyun.dashvector.models.Vector;
import com.aliyun.dashvector.models.Doc;
import com.aliyun.dashvector.models.requests.InsertDocRequest;
import com.aliyun.dashvector.models.responses.Response;
import java.util.Arrays;
import java.util.HashMap;
Doc doc1 = Doc.builder()
    .id("1")
    .vector(
        Vector.builder()
            .value(Arrays.asList(0.1f, 0.2f, 0.3f, 0.4f))
            .build()
    ).build();
Doc doc2 = Doc.builder()
    .id("2")
    .vector(
        Vector.builder()
            .value(Arrays.asList(0.2f, 0.3f, 0.4f, 0.5f))
            .build()
    ).fields(new HashMap<String, Object>(){{
        put("age", 20);
        put("name", "zhangsan");
    }}).build();
Doc doc3 = Doc.builder()
    .id("3")
    .field("anykey", "anyvalue")
    .vector(
        Vector.builder()
            .value(Arrays.asList(0.3f, 0.4f, 0.5f, 0.6f))
            .build()
    ).build();
InsertDocRequest request = InsertDocRequest.builder()
    .docs(Arrays.asList(doc1, doc2, doc3))
    .build();
Response<Void> response = collection.insert(request);


HTTP示例:

# 插入3条数据
curl -XPOST \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "docs": [
      {"id": "1", "vector": [0.1, 0.2, 0.3, 0.4]},
      {"id": "2", "vector": [0.2, 0.3, 0.4, 0.5], "fields": {"age": 20, "name": "zhangsan"}},
      {"id": "3", "vector": [0.3, 0.4, 0.5, 0.6], "fields": {"anykey": "anyvalue"}}
    ]
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/docs



Step4. 相似性检索

Python示例:

rets = collection.query([0.1, 0.2, 0.3, 0.4], topk=2)
print(rets)


Java示例:

import com.aliyun.dashvector.models.Vector;
import com.aliyun.dashvector.models.Doc;
import com.aliyun.dashvector.models.requests.QueryDocRequest;
import com.aliyun.dashvector.models.responses.Response;
import java.util.Arrays;
import java.util.List;
Vector vector = Vector.builder().value(Arrays.asList(0.1f, 0.2f, 0.3f, 0.4f)).build();
QueryDocRequest request = QueryDocRequest.builder()
    .vector(vector)
    .topk(2)
    .build();
Response<List<Doc>> response = collection.query(request);


HTTP示例:

curl -XPOST \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "vector": [0.1, 0.2, 0.3, 0.4],
    "topk": 2
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/query


Step5. 删除Doc

Python示例:

# 删除1条数据
collection.delete(ids=['1'])


Java示例:

import com.aliyun.dashvector.models.Doc;
import com.aliyun.dashvector.models.requests.DeleteDocRequest;
import com.aliyun.dashvector.models.responses.Response;
DeleteDocRequest request = DeleteDocRequest.builder()
    .id("1")
    .build();
Response<List<Doc>> response = collection.delete(request);


HTTP示例:

curl -XDELETE \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"ids": ["1"]}' \
  https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/docs


Step6. 查看Collection统计信息

Python示例:

stats = collection.stats()
print(stats)


Java示例:

import com.aliyun.dashvector.models.CollectionStats;
import com.aliyun.dashvector.models.responses.Response;
Response<CollectionStats> response = collection.stats();


HTTP示例:

curl -H 'dashvector-auth-token: YOUR_API_KEY' \
  https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/stats


Step7. 删除Collection

Python示例:

client.delete('quickstart')


Java示例:

import com.aliyun.dashvector.models.responses.Response;
Response<Void> response = client.delete("quickstart");


HTTP示例:

curl -XDELETE -H 'dashvector-auth-token: YOUR_API_KEY' \
  https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart

向量检索服务 DashVector免费试用进行中,玩转大模型搜索,快来试试吧~

了解更多信息,请点击:https://www.aliyun.com/product/ai/dashvector

相关文章
|
4天前
|
人工智能 Cloud Native API
向量检索服务DashVector的体验
向量检索服务DashVector的体验
109 2
|
4天前
|
人工智能 自然语言处理
开通向量检索服务
开通向量检索服务
26 2
|
4天前
|
自然语言处理 算法
向量检索服务的优缺点
使用向量检索服务的好处是它可以将文本信息转化为向量表示,并进行相似度计算。这使得能够高效地搜索与查询进行语义匹配的文本
620 3
|
4天前
|
人工智能 大数据 API
阿里云向量检索服务测评
在当今的大数据时代,向量检索技术已成为处理海量数据、实现高效信息检索的重要手段。阿里云作为国内领先的云计算服务提供商,推出了自己的向量检索服务。本文将对阿里云的向量检索服务进行深入的测评,探讨其在语义检索、知识库搭建、AI多模态搜索等场景的最佳实践,并分析其与其他向量检索工具的优劣。
649 1
|
4天前
|
弹性计算 自然语言处理 开发工具
基于阿里云向量检索 Milvus 版和 LangChain 快速构建 LLM 问答系统
本文介绍如何通过整合阿里云Milvus、阿里云DashScope Embedding模型与阿里云PAI(EAS)模型服务,构建一个由LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的RAG对话系统。
|
4天前
|
人工智能 自然语言处理 算法
向量检索服务
向量检索服务
136 9
|
4天前
|
机器学习/深度学习 人工智能 算法
浅谈向量检索
本文介绍了向量检索的背景、概念和方法,旨在一个给定的向量数据集中,快速找到与查询向量最接近的向量。
|
4天前
|
人工智能 Cloud Native 开发工具
DashVector + ModelScope 玩转多模态检索
本文主要介绍通过DashVector和ModelScope中的Chinese Clip模型实现文搜图、图搜图等功能,同时结合DashText SDK实现sparse vector+dense vector混合检索,熟悉sparse vector的使用方法,提高检索效率。
|
4天前
|
存储 人工智能 算法
推荐的向量检索服务
推荐使用的向量检索服务DashVector。
|
4天前
|
编译器 API 开发工具
向量检索服务体验
根据阿里云发布的阿里云自研的向量引擎 Proxima 内核,进行综合体验。
34 0