الجوزاء
تتكامل Milvus مع نماذج Gemini عبر فئة GeminiEmbeddingFunction. توفر هذه الفئة طرقًا لترميز المستندات والاستعلامات باستخدام نماذج Gemini المدربة مسبقًا وإرجاع التضمينات كمتجهات كثيفة متوافقة مع فهرسة Milvus. للاستفادة من هذه الوظيفة، احصل على مفتاح واجهة برمجة التطبيقات من Gemini عن طريق إنشاء حساب على منصتهم.
لاستخدام هذه الميزة، قم بتثبيت التبعيات اللازمة:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
ثم، قم بإنشاء GeminiEmbeddingFunction:
from pymilvus import model
gemini_ef = model.dense.GeminiEmbeddingFunction(
model_name='gemini-embedding-exp-03-07', # Specify the model name
api_key='YOUR_API_KEY', # Provide your OpenAI API key
)
المعلمات:
اسم_النموذج(سلسلة)
اسم نموذج Gemini المراد استخدامه للترميز. الخيارات الصالحة هي gemini-dembedding-exp-03-07(افتراضي)، و models/dembedding-001، و models/text-dembedding-004.
مفتاح_API(سلسلة)
مفتاح واجهة برمجة التطبيقات للوصول إلى واجهة برمجة تطبيقات Gemini.
التكوين(types.EmbedContentConfig) تكوين اختياري لنموذج التضمين.
- يمكن تحديد البعد_المخرجات إلى عدد التضمينات الناتجة.
- يمكن تحديد نوع_المهمة لإنشاء تضمينات مُحسَّنة لمهام محددة، مما يوفر لك الوقت والتكلفة ويحسن الأداء. مدعوم فقط في نموذج gemini-embedding-exp-03-07.
| اسم النموذج | الأبعاد |
|---|---|
| gemini-embedding-exp-03-07 | 3072(default),1536,768 |
| النماذج/التضمين-001 | 768 |
| النماذج/تضمين النص-004 | 768 |
| نوع المهمة | الوصف |
|---|---|
| التشابه الدلالي | تُستخدم لتوليد التضمينات التي تم تحسينها لتقييم تشابه النص. |
| التصنيف | يُستخدم لتوليد التضمينات التي تم تحسينها لتصنيف النصوص وفقًا لتسميات محددة مسبقًا. |
| التجميع | يُستخدم لإنشاء التضمينات التي تم تحسينها لتجميع النصوص بناءً على أوجه التشابه بينها. |
| RETRIREREVAL_DOCUMENT وRETREVAL_QUERY_QUERY وQESTION_ANSWERING وFACT_VERIFICATION | تُستخدم لتوليد التضمينات المحسّنة للبحث عن المستندات أو استرجاع المعلومات. |
| استعلام_استرجاع_الكود | يُستخدم لاسترداد كتلة كود بناءً على استعلام لغة طبيعية، مثل فرز مصفوفة أو عكس قائمة مرتبطة. يتم حساب تضمينات كتل التعليمات البرمجية باستخدام RETRIEVAL_DOCUMENT. |
لإنشاء تضمينات للمستندات، استخدم طريقة ترميز_المستندات():
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
docs_embeddings = gemini_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", gemini_ef.dim, docs_embeddings[0].shape)
الناتج المتوقع مشابه لما يلي:
Embeddings: [array([-0.00894029, 0.00573813, 0.013351 , ..., -0.00042766,
-0.00603091, -0.00341043], shape=(3072,)), array([ 0.00222347, 0.03725113, 0.01152256, ..., 0.01047272,
-0.01701597, 0.00565377], shape=(3072,)), array([ 0.00661134, 0.00232328, -0.01342973, ..., -0.00514429,
-0.02374139, -0.00701721], shape=(3072,))]
Dim: 3072 (3072,)
لإنشاء تضمينات للاستعلامات، استخدم الأسلوب encode_queries():
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = gemini_ef.encode_queries(queries)
# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", gemini_ef.dim, query_embeddings[0].shape)
الناتج المتوقع مشابه لما يلي:
Embeddings: [array([-0.02066572, 0.02459551, 0.00707774, ..., 0.00259341,
-0.01797572, -0.00626168], shape=(3072,)), array([ 0.00674969, 0.03023903, 0.01230692, ..., 0.00160009,
-0.01710967, 0.00972728], shape=(3072,))]
Dim 3072 (3072,)