Aprenda a crear una colección, insertar vectores y ejecutar búsquedas por similitud con DashVector.
Requisitos previos
A cluster is created. Cree un clúster
An API key is obtained. Gestión de claves de API
Instale la versión más reciente del SDK de DashVector. Para obtener más información, consulte Install the DashVector SDK.
Nota
Reemplace YOUR_API_KEY y YOUR_CLUSTER_ENDPOINT con sus valores reales.
Encuentre el endpoint de su clúster en la página Cluster Detail de la consola de DashVector.
Paso 1. Cree un cliente
Si utiliza la API HTTP, omita este paso.
import dashvector
client = dashvector.Client(
api_key='YOUR_API_KEY',
endpoint='YOUR_CLUSTER_ENDPOINT'
)
assert clientimport com.aliyun.dashvector.DashVectorClient;
import com.aliyun.dashvector.common.DashVectorException;
DashVectorClient client = new DashVectorClient("YOUR_API_KEY", "YOUR_CLUSTER_ENDPOINT");Paso 2. Cree una colección
Cree una colección llamada quickstart con cuatro dimensiones de vector.
client.create(name='quickstart', dimension=4)
collection = client.get('quickstart')
assert collectionimport com.aliyun.dashvector.models.responses.Response;
import com.aliyun.dashvector.DashVectorCollection;
Response<Void> response = client.create("quickstart", 4);
System.out.println(response);
DashVectorCollection collection = client.get("quickstart");
assert collection.isSuccess();curl -XPOST \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "quickstart",
"dimension": 4
}' https://YOUR_CLUSTER_ENDPOINT/v1/collectionsNota
La métrica de distancia predeterminada es Cosine.
El tipo de datos de vector predeterminado es
Float.
Paso 3. Inserte documentos
from dashvector import Doc
# Use the dashvector.Doc object to insert a single Doc.
collection.insert(Doc(id='1', vector=[0.1, 0.2, 0.3, 0.4]))
# Use the dashvector.Doc object to insert two Docs at a time.
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'})
]
)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);# Insert three Docs.
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/docsPaso 4. Ejecute una búsqueda por similitud
rets = collection.query([0.1, 0.2, 0.3, 0.4], topk=2)
print(rets)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);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/queryPaso 5. Elimine un documento
# Delete a Doc.
collection.delete(ids=['1'])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);curl -XDELETE \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"ids": ["1"]}' \
https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/docsPaso 6. Consulte las estadísticas de la colección
stats = collection.stats()
print(stats)import com.aliyun.dashvector.models.CollectionStats;
import com.aliyun.dashvector.models.responses.Response;
Response<CollectionStats> response = collection.stats();curl -H 'dashvector-auth-token: YOUR_API_KEY' \
https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/statsPaso 7. Elimine una colección
client.delete('quickstart')import com.aliyun.dashvector.models.responses.Response;
Response<Void> response = client.delete("quickstart");curl -XDELETE -H 'dashvector-auth-token: YOUR_API_KEY' \
https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart