تتوافق Gemini API مع العديد من نماذج التضمين التي تُنشئ نماذج تضمين للكلمات والعبارات والرموز والجمل. ويمكن بعد ذلك استخدام عمليات التضمين الناتجة للقيام بمهام مثل البحث الدلالي وتصنيف النصوص والتجميع، وغيرها من المهام.
ما هي البيانات المضمّنة؟
العناصر المضمّنة هي تمثيلات رقمية للنص (أو تنسيقات وسائط أخرى) التي تلتقط العلاقات بين المدخلات. تعمل عمليات تضمين النصوص من خلال تحويل النص إلى صفائف من الأعداد الكسورية العائمة، والتي تُعرف باسم المتجهات. تم تصميم هذه المتجهات لتوضيح معنى النص. يُعرف طول صفيف التضمين باسم الأبعاد للمتجه. قد يتم تمثيل مقطع نصي بمتجه يحتوي على مئات السمات.
تُسجِّل عمليات التضمين المعنى الدلالي والسياق، ما يؤدي إلى ظهور نص يحمل معاني مشابهة وعمليات تضمين "أقرب". على سبيل المثال، ستتضمّن الجملة "أخذت كلبي إلى الطبيب البيطري" والجملة "أخذت قطتي إلى الطبيب البيطري" إدخالات قريبة من بعضها في مساحة المتجهات.
يمكنك استخدام عمليات التضمين لمقارنة النصوص المختلفة وفهم كيفية ارتباطها ببعضها. على سبيل المثال، إذا كانت عمليات إدراج النص "قطة" و "كلب" قريبة معًا، يمكنك استنتاج أنّ هاتين الكلمتين متشابهتان من حيث المعنى أو السياق أو كليهما. يتيح ذلك مجموعة متنوعة من حالات استخدام الذكاء الاصطناعي الشائعة.
إنشاء عمليات التضمين
استخدِم طريقة embedContent
لإنشاء نماذج نصية:
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?")
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
});
console.log(response.embeddings);
}
main();
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
em := client.EmbeddingModel("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
يمكنك أيضًا إنشاء إدخالات لعدة أجزاء في آنٍ واحد من خلال تمريرها في كقائمة سلاسل.
أنواع المهام
عند إنشاء أنظمة "الإنشاء المعزّز لاسترداد المعلومات" (RAG)، من الشائع استخدام embeddings النصية لإجراء بحث تشابه. في بعض الحالات، قد يؤدي ذلك إلى تدهور الجودة، لأنّ الأسئلة والإجابات ليست مشابهة من الناحية الدلالية. على سبيل المثال، سؤال مثل "لماذا السماء زرقاء؟" والإجابة عنه "يتسبب تشتت أشعة الشمس في ظهور اللون الأزرق" لهما معاني مختلفة تمامًا كجملتين، ما يعني أنّ نظام RAG لن يرصد تلقائيًا علاقتهما.
تتيح لك أنواع المهام إنشاء عمليات تضمين محسّنة لمهام معيّنة، مما يوفر عليك الوقت والتكلفة ويُحسِّن الأداء.
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?",
config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
config: {
taskType: "SEMANTIC_SIMILARITY",
}
});
console.log(response.embeddings);
}
main();
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]},
"taskType": "SEMANTIC_SIMILARITY"
}'
أنواع المهام المتوافقة
نوع المهمة | الوصف |
---|---|
SEMANTIC_SIMILARITY |
تُستخدَم لإنشاء نماذج مصغّرة محسّنة لتقييم تشابه النصوص. |
CLASSIFICATION |
تُستخدَم لإنشاء نماذج مصغّرة محسّنة لتصنيف النصوص وفقًا لتصنيفات مُعدّة مسبقًا. |
CLUSTERING |
تُستخدَم لإنشاء نماذج مصغّرة محسّنة لتجميع النصوص استنادًا إلى أوجه التشابه بينها. |
RETRIEVAL_DOCUMENT وRETRIEVAL_QUERY وQUESTION_ANSWERING وFACT_VERIFICATION |
تُستخدَم لإنشاء عمليات تضمين محسّنة لبحث المستندات أو استرداد المعلومات. |
CODE_RETRIEVAL_QUERY |
تُستخدَم لاسترداد مجموعة رموز استنادًا إلى طلب بحث بلغة طبيعية، مثل ترتيب مصفوفة أو عكس قائمة مرتبطة. يتم احتساب عمليات تضمين أقسام الرموز البرمجية باستخدام RETRIEVAL_DOCUMENT . |
حالات الاستخدام
تُستخدَم عمليات تضمين النصوص في مجموعة متنوعة من حالات الاستخدام الشائعة للذكاء الاصطناعي، مثل:
استرداد المعلومات: يمكنك استخدام عمليات التضمين لاسترداد نص مشابه من الناحية الدلالية استنادًا إلى جزء من نص الإدخال.
التجميع: يمكن أن تساعد مقارنة مجموعات من البيانات المضمّنة في تحديد المؤشرات الخفية.
قاعدة بيانات متجهات: عند استخدام حالات استخدام مختلفة للإدراج في مرحلة الإنتاج، من الشائع تخزين البيانات المضمّنة في قاعدة بيانات متجهات.
التصنيف: يمكنك تدريب نموذج باستخدام البيانات المضمّنة لتصنيف المستندات إلى فئات.
نماذج التضمين
توفّر Gemini API ثلاثة نماذج لإنشاء نماذج نصية:
الخطوات التالية
اطّلِع على دفتر ملاحظات البدء السريع للإدراجات.