خدمة التضمين في Gemini API تنشئ تضمينات متطوّرة للكلمات والعبارات والجمل. ويمكن بعد ذلك استخدام التضمينات الناتجة مهام معالجة اللغة الطبيعية (NLP)، مثل البحث الدلالي، والنصوص والتصنيف والتجميع العنقودي من بين العديد من العناصر الأخرى.
تشرح هذه الصفحة بإيجاز التضمينات وتسلّط الضوء على بعض حالات الاستخدام الرئيسية تضمين الخدمة لمساعدتك على البدء.
ما هي التضمينات؟
عمليات تضمين النص هي تقنية معالجة لغة طبيعية (NLP) تعمل على تحويل تحويل النص إلى إحداثيات رقمية (تسمى المتجهات) التي يمكن رسمها في الفراغ متعدد الأبعاد. ويتيح لك هذا المنهج التعامل مع أجزاء من النص كأجزاء من البيانات الارتباطية، التي يمكننا بعد ذلك تطبيق النماذج عليها.
تلتقط عمليات التضمين المعنى الدلالي والسياق الذي ينتج عنه نص مع المعاني المتشابهة التي لها تضمينات أقرب. على سبيل المثال، الجملة "أخذت الكلب إلى الطبيب البيطري" و"أخذت قطتي إلى الطبيب البيطري" على تضمينات متقاربين في مساحة الخط المتجه لأنهما يصفان السياق.
يمكنك استخدام التضمينات للمقارنة بين النصوص المختلفة وفهم كيفية الارتباط. على سبيل المثال، إذا كانت تضمينات النص "cat" و"كلب" قريبون معًا يمكنك استنتاج أن هذه الكلمات متشابهة في المعنى أو السياق أو كليهما. وتتيح هذه القدرة مجموعة متنوعة من حالات الاستخدام الموضّحة في القسم التالي.
حالات الاستخدام
يتم استخدام تضمينات النص في مجموعة متنوعة من حالات استخدام "معالجة اللغات الطبيعية"، مثل:
- استرجاع المعلومات: يمكنك استخدام التضمينات لاسترداد المعنى
نص مماثل يعطى جزء من نص الإدخال. يمكن تنظيم مجموعة متنوعة من التطبيقات
يدعمها نظام استرجاع المعلومات مثل البحث الدلالي،
أو الإجابة على الأسئلة أو التلخيص.
- برنامج تعليمي: البحث في المستندات
- التصنيف: يمكنك تدريب نموذج باستخدام التضمينات لتصنيف
المستندات إلى فئات. فعلى سبيل المثال، إذا كنت تريد تصنيف بيانات المستخدمين
تعليقات سلبية أو إيجابية، يمكنك استخدام خدمة التضمينات
تمثيل الخط المتجه لكل تعليق لتدريب المصنِّف.
- البرنامج التعليمي: تدريب نص المصنِّف
- التجميع العنقودي: يمكن أن توضح مقارنة متجهات النص مدى التشابه والاختلاف
الحقيقي. ويمكن استخدام هذه الميزة لتطبيق نموذج التجميع العنقودي الذي يجمع
النصوص أو المستندات المتشابهة معًا واكتشاف القيم الشاذة في بياناتك.
- البرامج التعليمية: تدريب التجميع العنقودي النموذج، رصد البيانات القيم الشاذة
- قاعدة بيانات المتجه: يمكنك تخزين التضمينات التي تم إنشاؤها في متجه
لتحسين دقة وكفاءة تطبيق معالجة اللغات الطبيعية لديك.
راجع البرنامج التعليمي التالي لمعرفة كيفية استخدام قاعدة بيانات متجه
ترجمة المطالبات النصية إلى متجهات عددية.
- البرامج التعليمية: العمل باستخدام المتجه أو تضمينات الاسترجاع الدلالي
نماذج تضمينات Gemini
تقدّم واجهة Gemini API نموذجَين يؤديان إلى تضمينات النص: النص Includes و التضمينات: يُعد تضمين النص نسخة محدثة من نموذج التضمين الذي يقدم أحجام تضمين مرنة تحت 768. تُنتج عمليات التضمين المرنة أبعادًا أصغر للمخرجات إلى توفير تكاليف الحوسبة والتخزين مع فقدان طفيف في الأداء.
استخدم ميزة تضمين النص في المشاريع أو التطبيقات الجديدة. يجب أن استخدام نموذج التضمين فقط إذا لم تتمكن من نقله لاستخدام ميزة تضمين النص.
إنشاء تضمينات باستخدام Gemini API
استخدِم طريقة embedContent
لإنشاء نصوص مضمَّنة:
Python
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?",
task_type="retrieval_document",
title="Embedding of single string")
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
انتقل إلى الخطوات الأولى دليل توجيهي للحصول على مثال كامل قابل للتنفيذ.
البدء
ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
انتقل إلى الخطوات الأولى دليل توجيهي المثال الكامل القابل للتشغيل.
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
const text = "The quick brown fox jumps over the lazy dog."
const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}
run();
انتقل إلى الخطوات الأولى دليل توجيهي للحصول على مثال كامل قابل للتنفيذ.
لعبة رمي السهام (Flutter)
final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);
انتقل إلى الخطوات الأولى دليل توجيهي للحصول على مثال كامل قابل للتنفيذ.
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
"content": {
"parts":[{
"text": "Hello world"}]}, }' 2> /dev/null | head
يمكنك الانتقال إلى مقالة تضمين Quickstart باستخدام REST ككتاب الطبخ على GitHub للحصول على مثال كامل قابل للتنفيذ.
الخطوات التالية
- للمزيد من المعلومات حول التضمينات، يمكنك الانتقال إلى مشاركة "ديل ماركويتز" على وGoogle Cloud مدونة لمزيد من المعلومات.
- إذا كنت مستعدًا لبدء التطوير، يمكنك العثور على التعليمات البرمجية الكاملة القابلة للتنفيذ في بدايات سريعة لـ Python، انتقال، Node.js وDart (Flutter):