تعمل خدمة التضمين في Gemini API على إنشاء تضمينات حديثة للكلمات والعبارات والجمل. ويمكن بعد ذلك استخدام التضمينات الناتجة عن مهام معالجة اللغة الطبيعية (NLP) مثل البحث الدلالي وتصنيف النص والتجميع العنقودي وغيرها.
تشرح هذه الصفحة بإيجاز عمليات التضمين وتسلّط الضوء على بعض حالات الاستخدام الرئيسية لخدمة التضمين لمساعدتك في البدء.
ما هي التضمينات؟
عمليات تضمين النص هي تقنية لمعالجة اللغات الطبيعية (NLP) تحوّل النص إلى إحداثيات رقمية (تُسمى المتّجهات) التي يمكن رسمها في مساحة n-بعد الأبعاد. يتيح لك هذا المنهج التعامل مع أجزاء من النص كأجزاء من البيانات الارتباطية، والتي يمكننا بعد ذلك تدريب النماذج عليها.
يلتقط المحتوى المضمّن المعنى الدلالي والسياق، ما يؤدي إلى نص بالمعنى نفسه الذي يتضمّن تضمينات أقرب. على سبيل المثال، الجملة "لقد أخذت كلبي إلى الطبيب البيطري" و "أخذت قطتي إلى الطبيب البيطري" تحتوي على تضمينات قريبة من بعضها البعض في مساحة المتجه لأن كلاهما يصف سياقًا مشابهًا.
يمكنك استخدام التضمينات للمقارنة بين النصوص المختلفة وفهم أوجه الصلة بينها. على سبيل المثال، إذا كانت تضمينات النص "قطة" و "كلب" متقاربة، فيمكنك استنتاج أن هاتين الكلمتين متشابهتان في المعنى أو السياق أو كليهما. وتتيح هذه القدرة مجموعة متنوعة من حالات الاستخدام الموضّحة في القسم التالي.
حالات الاستخدام
يتم استخدام تضمينات النص في مجموعة متنوعة من حالات استخدام "معالجة اللغات الطبيعية"، مثل:
- استرجاع المعلومات: يمكنك استخدام التضمينات لاسترداد نص مطابق دلالياً لجزء من نص الإدخال. يمكن أن يدعم نظام استرجاع المعلومات مجموعة متنوعة من التطبيقات مثل البحث الدلالي أو الإجابة عن الأسئلة أو التلخيص.
- برنامج تعليمي: البحث في المستندات
- التصنيف: يمكنك تدريب نموذج باستخدام التضمينات لتصنيف المستندات إلى فئات. على سبيل المثال، إذا أردت تصنيف تعليقات المستخدمين على أنها سلبية أو إيجابية، فيمكنك استخدام خدمة التضمينات للحصول على تمثيل المتجه لكل تعليق لتدريب المصنِّف.
- برنامج تعليمي: تدريب مصنف نصي
- التجميع: يمكن أن توضح مقارنة متجهات النص مدى تشابهها أو اختلافها. يمكن استخدام هذه الميزة لتدريب نموذج التجميع العنقودي الذي يجمع النص أو المستندات المتشابهة معًا واكتشاف القيم الشاذة في بياناتك.
- البرامج التعليمية: تدريب نموذج التجميع العنقودي، رصد القيم الشاذة للبيانات
- قاعدة بيانات المتجهات: يمكنك تخزين التضمينات التي تم إنشاؤها في قاعدة بيانات
متّجه لتحسين دقة تطبيق NLP وكفاءته.
راجع البرنامج التعليمي التالي لمعرفة كيفية استخدام قاعدة بيانات
متّجه لترجمة مطالبات النص إلى متجهات عددية.
- الأدلة التعليمية: استخدام عمليات تضمين المتّجهات واسترجاع المعنى
نماذج تضمينات Gemini
تقدّم واجهة Gemini API نموذجَين يؤديان إلى تضمينات النصوص: تضمين النصوص والتضمينات. ميزة "تضمين النص" هي إصدار محدَّث من نموذج "التضمين" الذي يقدّم أحجام تضمين مرنة أقل من الأبعاد 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 وGo وNode.js وDart (Flutter).