مصنف 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:
المعلمة |
مطلوبة؟ |
الوصف |
القيمة / مثال |
|---|---|---|---|
|
نعم |
يجب ضبطها على |
|
|
نعم |
مزود خدمة النموذج المراد استخدامه لإعادة ترتيب النماذج. |
|
|
نعم |
مُعيد ترتيب Voyage AI لاستخدامه من النماذج المدعومة على منصة Voyage AI. للاطلاع على قائمة أدوات إعادة الترتيب المتاحة، راجع وثائق Voyage AI. |
|
|
نعم |
قائمة سلاسل الاستعلامات التي يستخدمها نموذج إعادة الترتيب لحساب درجات الملاءمة. يجب أن يتطابق عدد سلاسل الاستعلامات مع عدد الاستعلامات في عملية البحث بالضبط (حتى عند استخدام ناقلات الاستعلام بدلاً من النص)، وإلا سيتم الإبلاغ عن خطأ. |
["استعلام البحث"] |
|
لا |
نظرًا لأن خدمات النماذج قد لا تعالج جميع البيانات في وقت واحد، فإن هذا يضبط حجم الدُفعات للوصول إلى خدمة النماذج في طلبات متعددة. |
|
|
لا |
ما إذا كان سيتم اقتطاع المدخلات لتلبية "حد طول السياق" على الاستعلام والمستندات.
|
|
|
لا يوجد |
بيانات اعتماد المصادقة للوصول إلى خدمات Voyage AI API. إذا لم يتم تحديدها، سيبحث النظام عن متغير البيئة |
"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