Voyage AI RankerCompatible with Milvus 2.6.x

Voyage AI Ranker memanfaatkan pemeringkat khusus Voyage AI untuk meningkatkan relevansi penelusuran melalui pemeringkatan ulang semantik. Ini memberikan kemampuan perangkingan ulang berkinerja tinggi yang dioptimalkan untuk aplikasi pencarian dan retrieval-augmented generation (RAG).

Voyage AI Ranker sangat berharga untuk aplikasi yang membutuhkan:

  • Pemahaman semantik tingkat lanjut dengan model yang secara khusus dilatih untuk tugas pemeringkatan ulang

  • Pemrosesan berkinerja tinggi dengan inferensi yang dioptimalkan untuk beban kerja produksi

  • Kontrol pemotongan yang fleksibel untuk menangani panjang dokumen yang beragam

  • Performa yang disesuaikan dengan baik di berbagai varian model (rerank-2, rerank-lite, dll.)

Prasyarat

Sebelum mengimplementasikan Voyage AI Ranker di Milvus, pastikan Anda memiliki:

  • Koleksi Milvus dengan bidang VARCHAR yang berisi teks yang akan diperingkat ulang

  • Kunci API Voyage AI yang valid dengan akses ke pemeringkat. Mendaftarlah di platform Voyage AI untuk mendapatkan kredensial API Anda. Anda dapat memilih salah satu:

    • Mengatur variabel lingkungan VOYAGE_API_KEY, atau

    • Menentukan kunci API secara langsung dalam konfigurasi pemeringkat

Membuat fungsi pemeringkat Voyage AI

Untuk menggunakan Voyage AI Ranker di aplikasi Milvus Anda, buat objek Function yang menentukan bagaimana pemeringkatan harus beroperasi. Fungsi ini akan diteruskan ke operasi pencarian Milvus untuk meningkatkan peringkat hasil.

from pymilvus import MilvusClient, Function, FunctionType

# Connect to your Milvus server
client = MilvusClient(
    uri="http://localhost:19530"  # Replace with your Milvus server URI
)

# Configure Voyage AI Ranker
voyageai_ranker = Function(
    name="voyageai_semantic_ranker",        # Unique identifier for your ranker
    input_field_names=["document"],         # VARCHAR field containing text to rerank
    function_type=FunctionType.RERANK,      # Must be RERANK for reranking functions
    params={
        "reranker": "model",                # Enables model-based reranking
        "provider": "voyageai",             # Specifies Voyage AI as the service provider
        "model_name": "rerank-2.5",           # Voyage AI reranker to use
        "queries": ["renewable energy developments"], # Query text for relevance evaluation
        "max_client_batch_size": 128,       # Optional: batch size for model service requests (default: 128)
        "truncation": True,                 # Optional: enable input truncation (default: True)
        # "credential": "your-voyage-api-key" # Optional: if not set, uses VOYAGE_API_KEY env var
    }
)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.common.clientenum.FunctionType;
import io.milvus.v2.service.collection.request.CreateCollectionReq;

MilvusClientV2 client = new MilvusClientV2(ConnectConfig.builder()
        .uri("http://localhost:19530")
        .build());

CreateCollectionReq.Function ranker = CreateCollectionReq.Function.builder()
                       .functionType(FunctionType.RERANK)
                       .name("voyageai_semantic_ranker")
                       .inputFieldNames(Collections.singletonList("document"))
                       .param("reranker", "model")
                       .param("provider", "voyageai")
                       .param("model_name", "rerank-2.5")
                       .param("queries", "[\"renewable energy developments\"]")
                       .param("endpoint", "http://localhost:8080")
                       .param("max_client_batch_size", "128")
                       .param("truncation", "true")
                       .build();
// nodejs
// go
# restful

Parameter khusus pemeringkat Voyage AI

Parameter berikut ini khusus untuk pemeringkat Voyage AI:

Parameter

Diperlukan?

Deskripsi

Nilai / Contoh

reranker

Ya

Harus diatur ke "model" untuk mengaktifkan pemeringkatan ulang model.

"model"

provider

Ya

Penyedia layanan model yang akan digunakan untuk pemeringkatan ulang.

"voyageai"

model_name

Ya

Pemeringkat ulang Voyage AI yang akan digunakan dari model yang didukung pada platform Voyage AI.

Untuk daftar pemeringkat ulang yang tersedia, lihat dokumentasi Voyage AI.

"rerank-2.5"

queries

Ya

Daftar string kueri yang digunakan oleh model pemeringkatan ulang untuk menghitung skor relevansi. Jumlah string kueri harus sama persis dengan jumlah kueri dalam operasi pencarian Anda (bahkan saat menggunakan vektor kueri, bukan teks), jika tidak, kesalahan akan dilaporkan.

["kueri penelusuran"]

max_client_batch_size

Tidak

Karena layanan model tidak dapat memproses semua data sekaligus, ini menetapkan ukuran batch untuk mengakses layanan model dalam beberapa permintaan.

128 (default)

truncation

Tidak

Apakah akan memotong input untuk memenuhi "batas panjang konteks" pada kueri dan dokumen.

  • Jika True, kueri dan dokumen akan dipotong agar sesuai dengan batas panjang konteks, sebelum diproses oleh model perangking.

  • Jika False, kesalahan akan muncul ketika kueri melebihi 8.000 token untuk rerank-2.5 dan rerank-2.5-lite; 4.000 token untuk rerank-2; 2.000 token rerank-2-lite dan rerank-1; dan 1.000 token untuk rerank-lite-1, atau jumlah jumlah token dalam kueri dan jumlah token dalam satu dokumen melebihi 16.000 untuk rerank-2; 8.000 untuk rerank-2-lite dan rerank-1; dan 4.000 untuk rerank-lite-1.

True (default) atau False

credential

Tidak

Kredensial otentikasi untuk mengakses layanan API Voyage AI. Jika tidak ditentukan, sistem akan mencari variabel lingkungan VOYAGE_API_KEY.

"your-voyage-api-key"

Untuk parameter umum yang digunakan bersama di semua pemeringkat model (misalnya, provider, queries), lihat Membuat pemeringkat model.

Untuk menerapkan Voyage AI Ranker ke pencarian vektor standar:

# Execute search with Voyage AI reranker
results = client.search(
    collection_name="your_collection",
    data=[your_query_vector],  # Replace with your query vector
    anns_field="dense_vector",                   # Vector field to search
    limit=5,                                     # Number of results to return
    output_fields=["document"],                  # Include text field for reranking
    ranker=voyageai_ranker,                     # Apply Voyage AI reranker
    consistency_level="Bounded"
)
import io.milvus.v2.common.ConsistencyLevel;
import io.milvus.v2.service.vector.request.SearchReq;
import io.milvus.v2.service.vector.response.SearchResp;
import io.milvus.v2.service.vector.request.data.EmbeddedText;

SearchReq searchReq = SearchReq.builder()
        .collectionName("your_collection")
        .data(Arrays.asList(new EmbeddedText("AI Research Progress"), new EmbeddedText("What is AI")))
        .annsField("vector_field")
        .limit(10)
        .outputFields(Collections.singletonList("document"))
        .functionScore(FunctionScore.builder()
                .addFunction(ranker)
                .build())
        .consistencyLevel(ConsistencyLevel.BOUNDED)
        .build();
SearchResp searchResp = client.search(searchReq);
// nodejs
// go
# restful

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?