Cohere RankerCompatible with Milvus 2.6.x

Cohere Ranker memanfaatkan model peringkat ulang yang kuat dari Cohere untuk meningkatkan relevansi pencarian melalui peringkat ulang semantik. Cohere Ranker menyediakan kemampuan reranking tingkat perusahaan dengan infrastruktur API yang kuat dan kinerja yang dioptimalkan untuk lingkungan produksi.

Cohere Ranker sangat berharga untuk aplikasi yang membutuhkan:

  • Pemahaman semantik berkualitas tinggi dengan model pemeringkatan ulang yang canggih

  • Keandalan dan skalabilitas tingkat perusahaan untuk beban kerja produksi

  • Kemampuan pemeringkatan ulang multibahasa di berbagai jenis konten

  • Performa API yang konsisten dengan pembatas laju dan penanganan kesalahan bawaan

Prasyarat

Sebelum menerapkan Cohere Ranker di Milvus, pastikan Anda memiliki:

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

  • Kunci API Cohere yang valid dengan akses ke model perangkingan ulang. Mendaftarlah di platform Cohere untuk mendapatkan kredensial API Anda. Anda dapat memilih salah satu:

    • Mengatur variabel lingkungan COHERE_API_KEY, atau

    • Tentukan kunci API secara langsung di credential pada konfigurasi pemeringkat

Membuat fungsi pemeringkat Cohere

Untuk menggunakan Cohere Ranker di aplikasi Milvus Anda, buatlah sebuah 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 Cohere Ranker
cohere_ranker = Function(
    name="cohere_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": "cohere",               # Specifies Cohere as the service provider
        "model_name": "rerank-english-v3.0", # Cohere rerank model 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)
        "max_tokens_per_doc": 4096,         # Optional: max tokens per document (default: 4096)
        # "credential": "your-cohere-api-key" # Optional: authentication credential for Cohere API
    }
)
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("cohere_semantic_ranker")
                       .inputFieldNames(Collections.singletonList("document"))
                       .param("reranker", "model")
                       .param("provider", "cohere")
                       .param("model_name", "rerank-english-v3.0")
                       .param("queries", "[\"renewable energy developments\"]")
                       .param("endpoint", "http://localhost:8080")
                       .param("max_client_batch_size", "128")
                       .param("max_tokens_per_doc", "4096")
                       .build();
// nodejs
// go
# restful

Parameter khusus pemeringkat Cohere

Parameter berikut ini khusus untuk pemeringkat Cohere:

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.

"cohere"

model_name

Ya

Model perangkingan ulang Cohere yang akan digunakan dari model yang didukung pada platform Cohere.

Untuk daftar model perangkingan ulang yang tersedia, lihat dokumentasi Cohere.

"rerank-english-v3.0", "rerank-multilingual-v3.0"

queries

Ya

Daftar string kueri yang digunakan oleh model perangkingan 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)

max_tokens_per_doc

No

Jumlah maksimum token per dokumen. Dokumen yang panjang akan secara otomatis terpotong ke jumlah token yang ditentukan.

4096 (default)

credential

Tidak

Kredensial otentikasi untuk mengakses layanan API Cohere. Jika tidak ditentukan, sistem akan mencari variabel lingkungan COHERE_API_KEY.

"your-cohere-api-key"

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

Untuk menerapkan Cohere Ranker ke pencarian vektor standar:

# Execute search with Cohere reranking
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=cohere_ranker,                       # Apply Cohere reranking
    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(COLLECTION_NAME)
        .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?