OSS Vectors Embed CLI adalah alat command-line yang memungkinkan Anda memanggil model vektor Alibaba Cloud Model Studio, melakukan vektorisasi file lokal atau di OSS, serta menulis vektor ke Bucket Vektor OSS. Alat ini juga mendukung pencarian semantik multi-modal, yang menyederhanakan pengembangan aplikasi seperti basis pengetahuan RAG dan asisten AI. Kemampuan utamanya meliputi:
Integrasi mulus: Terintegrasi secara mulus dengan Alibaba Cloud Model Studio untuk melakukan vektorisasi data.
Beberapa sumber data: Mendukung vektorisasi data dari berbagai sumber, termasuk file lokal, objek OSS, URL pihak ketiga, dan string teks.
Pemrosesan fleksibel: Mendukung pemrosesan file tunggal maupun vektorisasi batch file dalam path tertentu.
Kustomisasi tinggi: Memungkinkan Anda mengonfigurasi kunci vektor dan metadata skalar secara fleksibel.
Pengambilan multimodal: Mendukung pengambilan berdasarkan kemiripan semantik untuk teks, gambar, dan video, sehingga memberdayakan berbagai skenario bisnis.
Gunakan OSS Vectors Embed CLI untuk mengatur sistem pencarian semantik multimodal hanya dalam beberapa perintah sederhana, serta konfigurasikan dengan opsi seperti penulisan batch, kunci vektor kustom, dan parameter model kustom.
OSS Vectors Embed CLI Alibaba Cloud sedang dalam masa pratinjau, dan parameternya dapat berubah sewaktu-waktu.
Langkah 1: Siapkan lingkungan Anda
Sebelum menggunakan CLI, Anda memerlukan kredensial berikut:
Anda telah mengaktifkan OSS dan membuat pasangan AccessKey.
Anda telah mengaktifkan Model Studio dan memperoleh Kunci API.
Konfigurasi kredensial
Konfigurasikan kredensial Anda sebagai variabel lingkungan. CLI akan membaca variabel ini secara otomatis, sehingga Anda tidak perlu memasukkannya setiap kali menjalankan perintah.
# AccessKey Akun Alibaba Cloud
export OSS_ACCESS_KEY_ID="<your-access-key-id>"
export OSS_ACCESS_KEY_SECRET="<your-access-key-secret>"
# Kunci API Model Studio
export DASHSCOPE_API_KEY="<your-dashscope-api-key>"Tips keamanan: Jangan hard-code kredensial di dalam skrip. Gunakan variabel lingkungan sebagai gantinya.
Instal OSS Vectors Embed CLI
Diperlukan Python 3.9 atau versi lebih baru.
Opsi 1: Instal dengan pip (disarankan)
pip install oss-vectors-embed-cliOpsi 2: Instal dalam mode developer
git clone https://github.com/aliyun/oss-vectors-embed-cli.git
cd oss-vectors-embed-cli
pip install -e .Verifikasi instalasi
oss-vectors-embed --version
# Output: oss-vectors-embed, version 0.1.0Buat bucket vektor
Sebelum dapat menulis data vektor, Anda harus membuat bucket vektor dan mengonfigurasi indeks vektor:
Buat bucket vektor: Buka halaman bucket vektor di konsol OSS dan buat satu untuk menyimpan data vektor dan indeks Anda.
Buat indeks vektor: Di dalam bucket vektor Anda, buat indeks vektor dan atur dimensi vektornya agar sesuai dengan model penyematan Anda.
Penting: Dimensi vektor pada indeks vektor harus sesuai dengan dimensi output dari model penyematan. Misalnya, jika Anda menggunakan model text-embedding-v4 (dimensi default: 1024), Anda juga harus mengatur dimensi vektor indeks menjadi 1024.Langkah 2: Tulis vektor
Bucket Vektor OSS menyediakan API PutVectors untuk menulis data vektor. OSS Vectors Embed CLI menggabungkan beberapa panggilan API—membaca file sumber (GetObject), menghasilkan penyematan dengan Model Studio, dan menulis data vektor (PutVectors)—menjadi satu perintah put. Setiap file diproses menjadi satu penyematan. Pemotongan otomatis (chunking) untuk dokumen panjang saat ini belum didukung.
Tulis vektor dari file teks
Gunakan model text embedding, seperti text-embedding-v4, untuk menghasilkan penyematan dari teks. Sumber input yang didukung mencakup string teks, objek OSS, dan file teks lokal.
Dari string teks inline
Hasilkan penyematan dari string teks inline dan tulis ke bucket vektor:
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --text-value: String teks input.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "Artificial intelligence is changing the way we live"Contoh output perintah (termasuk kunci vektor, informasi bucket, dan metadata):
{
"key": "3d8935dd-6395-4c9c-a501-df902846ec80",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "Artificial intelligence is changing the way we live",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
}Catatan: CLI secara otomatis menambahkan bidang informasi sumber, dengan awalan OSSVECTORS-EMBED-SRC-*, ke metadata untuk melacak asal vektor.
Dari file teks lokal
Hasilkan penyematan dari file lokal dan tulis ke bucket vektor:
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --text: Path ke file lokal.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text "<./documents/article.txt>"Contoh output perintah:
{
"key": "415c108e-d653-4d54-a241-d3b70e996666",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "Artificial intelligence is changing the way we live. From being gently woken up by a smart alarm clock based on our sleep cycle, to a voice assistant planning the best route for our commute; from a smart speaker at home playing personalized news summaries, to AI tools at work automatically generating reports, translating documents, and optimizing workflows—AI has quietly integrated into every corner of our daily lives.",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "./documents/article.txt"
}
}Dari objek OSS
Hasilkan penyematan dari objek yang disimpan di OSS dan tulis ke bucket vektor. Gunakan format path oss://bucket-name/object-key.
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --region: Wilayah bucket sumber.
# --text: Path OSS dari file sumber.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--region cn-hangzhou \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text "oss://<your-source-bucket>/<your-file>"Catatan: Gunakan parameter --region untuk menentukan wilayah objek OSS sumber.
Contoh output perintah:
{
"key": "7ca24758-0d5b-46fe-ab90-db82be387650",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "This is an example file.",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "oss://source-bucket/documents/file.txt"
}
}Tulis vektor dari file gambar
Gunakan model penyematan multimodal, seperti qwen2.5-vl-embedding, untuk menghasilkan penyematan dari gambar dan video. Sumber input yang didukung untuk gambar mencakup file lokal, objek OSS, dan URL HTTP/HTTPS.
Dari gambar lokal
Hasilkan penyematan dari file gambar lokal dan tulis ke bucket vektor:
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --image: Path ke file gambar lokal.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--image "<./images/photo.jpg>"Contoh output perintah:
{
"key": "8fc8105b-d54f-464c-bf44-97b088d566ce",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "qwen2.5-vl-embedding",
"contentType": "image",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-LOCATION": "./images/photo.jpg",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "IMAGE"
}
}Dari objek OSS
Hasilkan penyematan dari file gambar yang disimpan di OSS dan tulis ke bucket vektor. Gunakan format path oss://bucket-name/object-key.
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --region: Wilayah bucket sumber.
# --image: Path OSS dari gambar sumber.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--region cn-hangzhou \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--image "oss://<your-source-bucket>/<your-image>"Contoh output perintah:
{
"key": "dbf57dfd-58be-4793-a484-a82eb86e0e08",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "qwen2.5-vl-embedding",
"contentType": "image",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-LOCATION": "oss://source-bucket/photo.jpg",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "IMAGE"
}
}Dari URL gambar
Hasilkan penyematan dari URL gambar dan tulis ke bucket vektor:
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --image: URL gambar.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--image "https://example.com/photo.jpg"Contoh output perintah:
{
"key": "f15cfe75-d4de-497f-b441-3b08243cfa5e",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "qwen2.5-vl-embedding",
"contentType": "image",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-LOCATION": "https://example.com/photo.jpg",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "IMAGE"
}
}Tulis vektor dari file video
Gunakan model vektor multimodal (seperti qwen2.5-vl-embedding) untuk memproses gambar dan video. Sumber input yang didukung untuk video mencakup file video OSS dan URL HTTP/HTTPS. Pemrosesan video mengekstraksi keyframe dari video dan menghasilkan penyematan terpisah untuk setiap frame. Karena setiap penyematan memerlukan kunci unik, parameter --key dan --filename-as-key tidak didukung. CLI secara otomatis menghasilkan kunci unik berurutan untuk setiap frame.
Dari objek OSS
Untuk memproses file video di OSS, CLI menghasilkan URL yang ditandatangani untuk objek tersebut, membuat penyematan, lalu menulisnya ke bucket vektor:
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --region: Wilayah video sumber.
# --video: Path OSS dari video sumber.
# --presign-url: Menghasilkan URL yang ditandatangani untuk objek OSS, yang diperlukan untuk bucket privat.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--region cn-hangzhou \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--video "oss://<your-source-bucket>/<your-video>" \
--presign-urlContoh output perintah:
{
"key": "55606734-8275-4329-96a3-3c156220et54",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "qwen2.5-vl-embedding",
"contentType": "video",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-LOCATION": "oss://source-bucket/video.mp4",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "VIDEO"
}
}Dari URL video
Hasilkan penyematan dari URL video dan tulis ke bucket vektor:
# Penjelasan parameter:
# --account-id: ID Alibaba Cloud Anda.
# --vectors-region: Wilayah bucket vektor OSS.
# --vector-bucket-name: Nama bucket vektor OSS.
# --index-name: Nama indeks vektor OSS.
# --model-id: Model penyematan yang digunakan.
# --video: URL video.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--video "https://example.com/video.mp4"Contoh output perintah:
{
"key": "9157d87b-c44b-4c53-aceb-cd4be7fd8bd9",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "qwen2.5-vl-embedding",
"contentType": "video",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-LOCATION": "https://example.com/video.mp4",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "VIDEO"
}
}Tambahkan metadata skalar
Anda dapat menambahkan metadata skalar kustom ke perintah tulis untuk mengaktifkan pencarian hibrida vektor dan skalar.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "Technical document content" \
--metadata '{"category": "technology", "version": "1.0", "author": "admin"}' # Tambahkan metadata skalar kustom untuk pencarian hibrida vektor dan skalar.Bidang metadata yang ditentukan pengguna digabungkan dengan bidang yang dihasilkan sistem. Contoh output perintah:
{
"key": "c0ed4d9d-5301-49a5-82b7-eaf9d02b04a9",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"category": "technology", // Metadata kustom yang ditambahkan
"version": "1.0", // Metadata kustom yang ditambahkan
"author": "admin", // Metadata kustom yang ditambahkan
"OSSVECTORS-EMBED-SRC-CONTENT": "Technical document content",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
}Langkah 3: Pencarian vektor
Bucket Vektor OSS menyediakan API QueryVectors untuk melakukan pencarian kemiripan vektor. OSS Vectors Embed CLI menyediakan perintah query untuk melakukan pencarian kemiripan. Perintah ini pertama-tama melakukan vektorisasi konten kueri (teks atau gambar), lalu mencari indeks vektor untuk menemukan vektor yang paling mirip secara semantik.
Penting: Model penyematan yang Anda gunakan untuk kueri harus sama dengan model yang digunakan saat mengindeks data.
Pencarian kemiripan teks
Temukan vektor yang paling mirip secara semantik menggunakan kueri teks. Parameter --top-k mengontrol jumlah hasil yang dikembalikan. Perintah berikut mencari indeks my-index untuk vektor yang paling mirip dengan "What is artificial intelligence".
# --text-value: Teks kueri.
# --top-k: Jumlah tetangga terdekat yang dikembalikan.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
query \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "What is artificial intelligence" \
--top-k 100Contoh output mencakup kunci vektor dan metadata:
{
"results": [
{
"Key": "3d8935dd-6395-4c9c-a501-df902846ec80",
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-CONTENT": "Artificial intelligence is changing the way we live",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
},
...
],
"summary": {
"queryType": "text",
"model": "text-embedding-v4",
"index": "my-index",
"resultsFound": 100,
"queryDimensions": 1024
}
}Catatan: Secara default, jarak kemiripan tidak dikembalikan. Untuk menyertakannya, tambahkan parameter --return-distance.
Pencarian kemiripan gambar
Gunakan kueri gambar untuk menemukan vektor yang paling mirip, memungkinkan kasus penggunaan seperti pencarian gambar-ke-gambar.
# --image: Gambar kueri.
# --top-k: Jumlah tetangga terdekat yang dikembalikan.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
query \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--image "./query-images/similar-product.jpg" \
--top-k 100 Contoh output mencakup kunci vektor dan metadata:
{
"results": [
{
"Key": "11dcf66b-708a-4707-8bd4-8656bead19da", // Hasil pencarian vektor, termasuk kunci vektor dan metadata.
"metadata": {
"OSS-VECTORS-EMBED-SRC-CONTENT-TYPE": "IMAGE",
"OSS-VECTORS-EMBED-SRC-LOCATION": "similar-product.png"
}
},
{
...
],
"summary": {
"queryType": "image",
"model": "qwen2.5-vl-embedding",
"index": "my-index",
"resultsFound": 100,
"queryDimensions": 1024
}
}Pencarian hibrida
Gunakan parameter --filter untuk memfilter hasil berdasarkan metadata. Ini mempersempit cakupan pencarian untuk kueri yang lebih tepat. OSS Vectors Embed CLI mendukung pemfilteran sederhana dengan satu kondisi metadata dan pemfilteran gabungan dengan beberapa kondisi.
Pemfilteran satu kondisi
Kueri vektor dengan category bernilai technology:
# --filter: Terapkan filter metadata.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
query \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "Technical documentation" \
--filter '{"category": {"$eq": "technology"}}' \
--top-k 20 \
--return-metadataCatatan: Parameter --return-metadata menyertakan semua metadata dalam hasil, termasuk bidang yang ditentukan pengguna dan yang dihasilkan CLI.
Contoh output:
{
"results": [
{
"Key": "fd91808c-8d7c-480e-a72b-2bfa7d313a80",
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"author": "admin",
"category": "technology",
"OSSVECTORS-EMBED-SRC-CONTENT": "Technical documentation content",
"version": "1.0",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
},
...
],
"summary": {
"queryType": "text",
"model": "text-embedding-v4",
"index": "test1",
"resultsFound": 4,
"queryDimensions": 1024
}
}Pemfilteran multi-kondisi
OSS Vectors Embed CLI menggunakan sintaks filter untuk menggabungkan beberapa kondisi filter, seperti AND dan OR. Contoh berikut menggunakan kondisi AND.
Kueri AND: Cocok dengan semua kondisi.
# AND: Kedua kondisi harus cocok.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
query \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "API Reference" \
--filter '{"$and": [{"category": "documentation"}, {"version": "3.0"}]}' \
--top-k 5
Contoh output:
{
"results": [
{
"Key": "fd91808c-8d7c-480e-a72b-2bfa7d313a80",
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"author": "admin",
"category": "documentation",
"OSSVECTORS-EMBED-SRC-CONTENT": "API Reference",
"version": "3.0",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
},
{
...
],
"summary": {
"queryType": "text",
"model": "text-embedding-v4",
"index": "my-index",
"resultsFound": 5,
"queryDimensions": 1024
}
}Untuk menampilkan hasil pencarian dalam format tabel, gunakan parameter --output table. Ini mengubah output JSON default menjadi tabel yang mudah dibaca, ideal untuk eksplorasi interaktif dan debugging.
# --output table: Tentukan format output sebagai tabel.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
query \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text "./queries/user-question.txt" \
--top-k 3 \
--output tableContoh output tabel:
Query results
┏━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Rank ┃ Vector key ┃ Distance ┃ Metadata ┃
┡━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 1 │ doc:auth-setup │ N/A │ {"category": "docs"} │
│ 2 │ doc:security-config │ N/A │ {"category": "docs"} │
│ 3 │ doc:api-reference │ N/A │ {"category": "docs"} │
└──────┴────────────────────────┴──────────┴────────────────────────┘
Query summary:
Model: text-embedding-v4
Results Found: 3
Query Dimensions: 1024Catatan: Kolom Distance menampilkan N/A karena parameter --return-distance tidak disertakan. Untuk menyertakan jarak dalam hasil, tambahkan parameter ini ke kueri.
Konfigurasi lanjutan
Pemrosesan batch
CLI menggunakan wildcard untuk pemrosesan batch file dalam direktori. Mode ini secara otomatis mengirim permintaan paralel untuk meningkatkan throughput. Contoh berikut memproses semua file di bawah awalan tertentu dalam bucket OSS.
# --text "oss://bucket/path/*": Melakukan vektorisasi dan menulis semua file di bawah awalan yang ditentukan dalam satu batch.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text "oss://bucket/path/*"Contoh output:
{
"type": "streaming_batch",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"totalFiles": 2,
"processedFiles": 2,
"failedFiles": 0,
"totalVectors": 2,
"vectorKeys": [
"1001dfcb-1e78-450b-8526-a9c92fa308c6",
"b6aa1da0-adc7-489e-83e2-e39ff2e1fb9d"
]
}Untuk pemrosesan batch, Anda dapat menggunakan parameter --max-workers untuk mengontrol konkurensi (default: 4). Meningkatkan nilai ini meningkatkan throughput tetapi mengonsumsi lebih banyak kuota API. Bucket Vektor OSS mendukung penulisan batch hingga 500 vektor per permintaan, dengan maksimal 5 permintaan konkuren.
# --max-workers: Mengatur tingkat konkurensi.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text "./documents/*.txt" \
--max-workers 5Contoh output:
{
"type": "streaming_batch",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"totalFiles": 5,
"processedFiles": 5,
"failedFiles": 0,
"totalVectors": 5,
"vectorKeys": [
"doc1.txt",
"doc2.txt",
"doc3.txt",
"doc4.txt",
"doc5.txt"
]
}Kunci vektor kustom
CLI menyediakan cara fleksibel untuk menentukan kunci vektor. Anda dapat menggunakan string kustom, nama file sumber, atau menambahkan awalan ke setiap kunci.
Kunci kustom
Gunakan parameter --key untuk mengatur kunci vektor ke nilai tertentu:
# Atur kunci vektor menjadi "doc-001".
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "Document content" \
--key "doc-001" Contoh output:
{
"key": "doc-001", // Kunci vektor diatur menjadi "doc-001".
"bucket": "my-test-2",
"index": "test1",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "Document content",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
}Nama file sumber sebagai kunci
Gunakan parameter --filename-as-key untuk secara otomatis menggunakan nama file sumber sebagai kunci vektor:
# Gunakan nama file sumber "article.txt" sebagai kunci vektor.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text "article.txt" \
--filename-as-keyContoh output:
{
"key": "article.txt",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "Artificial intelligence is changing the way we live. From being gently woken up by a smart alarm clock based on our sleep cycle, to a voice assistant planning the best route for our commute; from a smart speaker at home playing personalized news summaries, to AI tools at work automatically generating reports, translating documents, and optimizing workflows—AI has quietly integrated into every corner of our daily lives.",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "article.txt"
}
}Awalan kunci
# --key-prefix: Menambahkan awalan ke kunci vektor.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "Document content" \
--key "doc-001" \
--key-prefix "project-a/"Contoh output:
{
"key": "project-a/doc-001", // Awalan "project-a/" ditambahkan ke kunci vektor.
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "Document content",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
}Parameter model kustom
Gunakan parameter --dashscope-inference-params untuk menyesuaikan perilaku model penyematan sesuai skenario berbeda.
Tulis dengan parameter kustom
Saat melakukan vektorisasi data, Anda dapat menentukan parameter seperti tipe output dan dimensi:
# Sesuaikan tipe output dan dimensi vektor model.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
put \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id text-embedding-v4 \
--text-value "Technical document content" \
--dashscope-inference-params '{"output_type": "dense", "dimension": "1024"}'Contoh output:
{
"key": "73359c62-55a7-458a-a171-003755f3338e",
"bucket": "my-vector-bucket",
"index": "my-index",
"model": "text-embedding-v4",
"contentType": "text",
"embeddingDimensions": 1024,
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT": "Document content",
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
}Kueri dengan parameter kustom
Saat mengkueri vektor, Anda dapat mengontrol perilaku seperti kebijakan pemotongan teks:
# Atur kebijakan pemotongan teks.
oss-vectors-embed \
--account-id <your-account-id> \
--vectors-region cn-hangzhou \
query \
--vector-bucket-name <your-vector-bucket> \
--index-name <your-index> \
--model-id qwen2.5-vl-embedding \
--text-value "Technical documentation" \
--dashscope-inference-params '{"truncate": "END"}' \
--top-k 10
--return-distanceContoh output:
{
"results": [
{
"Key": "3d8935dd-6395-4c9c-a501-df902846ec80",
"metadata": {
"OSSVECTORS-EMBED-SRC-CONTENT-TYPE": "TEXT",
"OSSVECTORS-EMBED-SRC-CONTENT": "Technical documentation",
"OSSVECTORS-EMBED-SRC-LOCATION": "direct_text_input"
}
},
...
],
"summary": {
"queryType": "text",
"model": "text-embedding-v4",
"index": "my-index",
"resultsFound": 10,
"queryDimensions": 1024
}
}Model penyematan yang didukung
Model penyematan teks
Model ID | Dimensi default | Dimensi opsional |
text-embedding-v4 | 1024 | 2048/1536/768/512/256/128/64 |
text-embedding-v3 | 1024 | 768/512/256/128/64 |
text-embedding-v2 | 1536 | — |
text-embedding-v1 | 1536 | — |
Model penyematan multimodal
Model ID | Dimensi | Jenis input |
qwen2.5-vl-embedding | 2048/1024/768/512 | Teks, gambar, dan video |
tongyi-embedding-vision-plus | 1152 | Teks, gambar, dan video |
tongyi-embedding-vision-flash | 768 | Teks, gambar, dan video |
multimodal-embedding-v1 | 1024 | Teks, gambar, dan video |
Panduan pemilihan model:
Untuk kasus penggunaan teks saja, gunakan text-embedding-v4.
Untuk kasus penggunaan yang menggabungkan teks dan gambar, gunakan qwen2.5-vl-embedding.
Untuk aplikasi berkecepatan tinggi, gunakan tongyi-embedding-vision-flash.
Parameter
Parameter global
Parameter | Wajib | Deskripsi |
| Ya | ID akun Alibaba Cloud Anda. |
| Ya | Wilayah bucket vektor, misalnya |
| Tidak | Titik akhir akses untuk bucket vektor. |
| Tidak | Mengaktifkan mode debug. |
Parameter perintah Put
Parameter | Wajib | Deskripsi |
| Ya | Nama bucket vektor. |
| Ya | Nama indeks vektor. |
| Ya | ID model DashScope yang menghasilkan vektor. |
| Tidak | Teks yang akan diproses. Anda hanya boleh menentukan salah satu dari |
| Tidak | Path ke file teks atau objek OSS. |
| Tidak | Path ke file gambar, objek OSS, atau URL. |
| Tidak | URL video. |
| Tidak | Kunci unik kustom untuk vektor. |
| Tidak | Menambahkan awalan ke kunci yang dihasilkan otomatis atau ditentukan pengguna. |
| Tidak | Menggunakan nama file input sebagai kunci vektor. |
| Tidak | Meneruskan parameter spesifik model ke DashScope dalam format JSON, misalnya |
| Tidak | Metadata untuk vektor, dalam format JSON. |
| Tidak | Jumlah maksimum permintaan konkuren untuk pemrosesan batch. Default: 4. |
| Tidak | Jumlah vektor per permintaan penulisan batch. Nilainya harus antara 1 hingga 500. Default: 500. |
| Tidak | Menentukan format output. Nilai yang valid adalah |
| Tidak | Wilayah objek OSS sumber. Wajib jika input berupa objek OSS. |
| Tidak | Mengaktifkan akses melalui URL yang ditandatangani saat input berupa objek OSS. |
Parameter perintah Query
Parameter | Wajib | Deskripsi |
| Ya | Nama bucket vektor. |
| Ya | Nama indeks vektor. |
| Ya | ID model DashScope yang menghasilkan vektor. |
| Tidak | Teks kueri. |
| Tidak | Path ke file yang berisi teks kueri. |
| Tidak | Path ke gambar yang akan dikueri. |
| Tidak | URL video yang akan dikueri. |
| Tidak | Jumlah tetangga terdekat yang dikembalikan. Default: 5. |
| Tidak | Kriteria filter, ditentukan sebagai string JSON. |
| Tidak | Menyertakan jarak kemiripan dalam hasil. |
| Tidak | Menyertakan metadata dalam hasil. Diaktifkan secara default. |
| Tidak | Meneruskan parameter spesifik model ke DashScope dalam format JSON, misalnya |
| Tidak | Menentukan format output. Nilai yang valid adalah |
Sintaks filter
Operator | Deskripsi | Contoh |
| Sama dengan |
|
| Tidak sama dengan |
|
| Di dalam / Tidak di dalam array |
|
| Logika AND |
|
| Logika OR |
|
Referensi
Untuk informasi lebih lanjut tentang OSS Vectors Embed CLI, lihat OSS Vectors Embed CLI di GitHub.