مصنف Voyage AI RankerCompatible with Milvus 2.6.x

يعمل مصنف Voyage AI Ranker على الاستفادة من أدوات إعادة الترتيب المتخصصة في Voyage AI لتعزيز ملاءمة البحث من خلال إعادة الترتيب الدلالي. وهو يوفر إمكانات إعادة ترتيب عالية الأداء مُحسّنة للجيل المعزز للاسترجاع (RAG) وتطبيقات البحث.

يُعدّ Voyage AI Ranker ذا قيمة خاصة للتطبيقات التي تتطلب

  • فهم دلالي متقدم مع نماذج مدربة خصيصًا لمهام إعادة الترتيب

  • معالجة عالية الأداء مع استدلال محسّن لأعباء عمل الإنتاج

  • ضوابط اقتطاع مرنة للتعامل مع أطوال المستندات المتنوعة

  • أداء مضبوط بدقة عبر متغيرات النماذج المختلفة (إعادة الترتيب 2، إعادة الترتيب المخفف، إلخ)

المتطلبات الأساسية

قبل تنفيذ Voyage AI Ranker في Milvus، تأكد من أن لديك:

  • مجموعة Milvus تحتوي على حقل VARCHAR يحتوي على النص المراد إعادة تصنيفه

  • مفتاح Voyage AI API صالح مع إمكانية الوصول إلى معيدي التصنيف. قم بالتسجيل في منصة Voyage AI للحصول على بيانات اعتماد واجهة برمجة التطبيقات الخاصة بك. يمكنك إما

    • تعيين متغير البيئة VOYAGE_API_KEY ، أو

    • تحديد مفتاح واجهة برمجة التطبيقات مباشرةً في تكوين المُصنِّف

إنشاء وظيفة مصنف Voyage AI

لاستخدام مصنف Voyage AI Ranker في تطبيق Milvus الخاص بك، قم بإنشاء كائن دالة تحدد كيفية عمل إعادة الترتيب. سيتم تمرير هذه الدالة إلى عمليات بحث Milvus لتحسين ترتيب النتائج.

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

معلمات خاصة بمصنّف Voyage AI

المعلمات التالية خاصة بمصنّف Voyage AI:

المعلمة

مطلوبة؟

الوصف

القيمة / مثال

reranker

نعم

يجب ضبطها على "model" لتمكين إعادة ترتيب النماذج.

"model"

provider

نعم

مزود خدمة النموذج المراد استخدامه لإعادة ترتيب النماذج.

"voyageai"

model_name

نعم

مُعيد ترتيب Voyage AI لاستخدامه من النماذج المدعومة على منصة Voyage AI.

للاطلاع على قائمة أدوات إعادة الترتيب المتاحة، راجع وثائق Voyage AI.

"rerank-2.5"

queries

نعم

قائمة سلاسل الاستعلامات التي يستخدمها نموذج إعادة الترتيب لحساب درجات الملاءمة. يجب أن يتطابق عدد سلاسل الاستعلامات مع عدد الاستعلامات في عملية البحث بالضبط (حتى عند استخدام ناقلات الاستعلام بدلاً من النص)، وإلا سيتم الإبلاغ عن خطأ.

["استعلام البحث"]

max_client_batch_size

لا

نظرًا لأن خدمات النماذج قد لا تعالج جميع البيانات في وقت واحد، فإن هذا يضبط حجم الدُفعات للوصول إلى خدمة النماذج في طلبات متعددة.

128 (افتراضي)

truncation

لا

ما إذا كان سيتم اقتطاع المدخلات لتلبية "حد طول السياق" على الاستعلام والمستندات.

  • إذا كان True ، فسيتم اقتطاع الاستعلام والمستندات لتتناسب مع حد طول السياق، قبل معالجتها بواسطة نموذج إعادة الترتيب.

  • إذا كان False ، فسيتم رفع خطأ عندما يتجاوز الاستعلام 8000 رمز لـ rerank-2.5 و rerank-2.5-lite ؛ و 4000 رمز لـ rerank-2 ؛ و 2000 رمز لـ rerank-2-lite و rerank-1 ؛ و 1000 رمز لـ rerank-lite-1 ، أو عندما يتجاوز مجموع عدد الرموز في الاستعلام وعدد الرموز في أي مستند واحد 16000 لـ rerank-2 ؛ و 8000 لـ rerank-2-lite و rerank-1 ؛ و 4000 لـ rerank-lite-1.

True (افتراضي) أو False

credential

لا يوجد

بيانات اعتماد المصادقة للوصول إلى خدمات Voyage AI API. إذا لم يتم تحديدها، سيبحث النظام عن متغير البيئة VOYAGE_API_KEY.

"your-voyage-API-API-key"

للحصول على المعلمات العامة المشتركة بين جميع مصنفات النماذج (على سبيل المثال، provider ، queries)، راجع إنشاء مصنف نموذج.

لتطبيق Voyage AI Ranker على بحث متجه قياسي:

# 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

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟