Topik ini membantu Anda memulai dengan cepat menggunakan DashVector.
Prasyarat
Anda telah berhasil membuat kluster. Untuk informasi lebih lanjut, lihat Buat kluster.
Anda telah berhasil membuat Kunci API. Untuk informasi lebih lanjut, lihat Pengelolaan Kunci API.
Anda telah menginstal SDK DashVector versi terbaru. Untuk informasi lebih lanjut, lihat Instal SDK DashVector.
Ganti YOUR_API_KEY dengan Kunci API Anda dan YOUR_CLUSTER_ENDPOINT dengan Titik akhir kluster Anda dalam contoh berikut.
Titik akhir kluster dapat ditemukan di halaman Detail Kluster pada konsol DashVector.
Langkah 1. Buat klien
Langkah ini dapat dilewati jika Anda menggunakan HTTP API.
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");Langkah 2. Buat koleksi
Buat koleksi bernama quickstart dengan empat dimensi vektor.
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/collectionsJika metode pengukuran jarak tidak ditentukan, nilai default Cosine akan digunakan.
Jika tipe data vektor tidak ditentukan, nilai default
Floatakan digunakan.
Langkah 3. Sisipkan Dokumen
from dashvector import Doc
# Gunakan objek dashvector.Doc untuk menyisipkan satu Dok.
collection.insert(Doc(id='1', vector=[0.1, 0.2, 0.3, 0.4]))
# Gunakan objek dashvector.Doc untuk menyisipkan dua Dok sekaligus.
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);# Sisipkan tiga Dok.
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/docsLangkah 4. Lakukan pencarian kesamaan
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/queryLangkah 5. Hapus Dokumen
# Hapus sebuah Dok.
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/docsLangkah 6. Lihat statistik koleksi
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/statsLangkah 7. Hapus koleksi
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