Embeddings

عمليات التضمين هي تمثيل رقمي لإدخال النص الذي يفتح عددًا من حالات الاستخدام الفريدة، مثل التجميع وقياس التشابه واسترجاع المعلومات. للحصول على مقدّمة، اطّلِع على دليل عمليات التضمين.

الطريقة: models.embedContent

تُنشئ هذه الدالة متجهًا لتمثيل النص من الإدخال Content باستخدام نموذج تمثيل Gemini المحدّد.

نقطة نهاية

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

مَعلمات المسار

model string

مطلوب. اسم مورد النموذج. ويُستخدَم هذا الرمز كمعرّف للنموذج.

يجب أن يتطابق هذا الاسم مع اسم طراز يعرضه الإجراء models.list.

التنسيق: models/{model} يكون على الشكل models/{model}.

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

الحقول
content object (Content)

مطلوب. المحتوى المطلوب تضمينه سيتم احتساب حقول parts.text فقط.

taskType enum (TaskType)

اختيارية: نوع المهمة الاختياري الذي سيتم استخدام النماذج المضمَّنة من أجله لا يمكن ضبطه إلا لـ models/embedding-001.

title string

اختيارية: عنوان اختياري للنص لا ينطبق ذلك إلا عندما يكون TaskType‏ = RETRIEVAL_DOCUMENT.

ملاحظة: إنّ تحديد title لـ RETRIEVAL_DOCUMENT يقدّم عناصر تمثّل ذات جودة أفضل لاستردادها.

outputDimensionality integer

اختيارية: سمة اختيارية مُعدَّلة لدمج الإخراج في حال ضبطه، يتم اقتطاع القيم الزائدة في عملية تضمين الإخراج من النهاية. تتوفّر هذه الميزة في الطُرز الأحدث منذ عام 2024 فقط. لا يمكنك ضبط هذه القيمة في حال استخدام النموذج السابق (models/embedding-001).

مثال على الطلب

Python

# With Gemini-2 we're launching a new SDK, see this doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

const result = await model.embedContent("Hello world!");

console.log(result.embedding);

محارة

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

نص الاستجابة

الردّ على EmbedContentRequest

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

الحقول
embedding object (ContentEmbedding)

النتائج فقط. العنصر المضمّن الذي تم إنشاؤه من محتوى الإدخال

تمثيل JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

الطريقة: models.batchEmbedContents

تُنشئ هذه الدالة ناقلات إدراج متعددة من الإدخال Content الذي يتألف من مجموعة من السلاسل التي يتم تمثيلها كعناصر EmbedContentRequest.

نقطة نهاية

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

مَعلمات المسار

model string

مطلوب. اسم مورد النموذج. ويُستخدَم هذا الرمز كمعرّف للنموذج.

يجب أن يتطابق هذا الاسم مع اسم طراز يعرضه الإجراء models.list.

التنسيق: models/{model} يكون على الشكل models/{model}.

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

الحقول
requests[] object (EmbedContentRequest)

مطلوب. تضمين طلبات للدفعة يجب أن يتطابق النموذج في كلّ من هذه الطلبات مع النموذج المحدّد BatchEmbedContentsRequest.model.

مثال على الطلب

Python

# With Gemini-2 we're launching a new SDK, see this doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

function textToRequest(text) {
  return { content: { role: "user", parts: [{ text }] } };
}

const result = await model.batchEmbedContents({
  requests: [
    textToRequest("What is the meaning of life?"),
    textToRequest("How much wood would a woodchuck chuck?"),
    textToRequest("How does the brain work?"),
  ],
});

console.log(result.embeddings);

محارة

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How does the brain work?"}]}, }, ]}' 2> /dev/null | grep -C 5 values

نص الاستجابة

الردّ على BatchEmbedContentsRequest

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

الحقول
embeddings[] object (ContentEmbedding)

النتائج فقط. عمليات التضمين لكل طلب بالترتيب نفسه المقدَّم في طلب الدفعة

تمثيل JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

طلب يحتوي على Content للنموذج المطلوب تضمينه

الحقول
model string

مطلوب. اسم مورد النموذج. ويُستخدَم هذا الرمز كمعرّف للنموذج.

يجب أن يتطابق هذا الاسم مع اسم طراز يعرضه الإجراء models.list.

التنسيق: models/{model}

content object (Content)

مطلوب. المحتوى المطلوب تضمينه سيتم احتساب حقول parts.text فقط.

taskType enum (TaskType)

اختيارية: نوع المهمة الاختياري الذي سيتم استخدام النماذج المضمَّنة من أجله لا يمكن ضبطه إلا لـ models/embedding-001.

title string

اختيارية: عنوان اختياري للنص لا ينطبق ذلك إلا عندما يكون TaskType‏ = RETRIEVAL_DOCUMENT.

ملاحظة: إنّ تحديد title لـ RETRIEVAL_DOCUMENT يقدّم عناصر تمثّل ذات جودة أفضل لاستردادها.

outputDimensionality integer

اختيارية: سمة اختيارية مُعدَّلة لدمج الإخراج في حال ضبطه، يتم اقتطاع القيم الزائدة في عملية تضمين الإخراج من النهاية. تتوفّر هذه الميزة في الطُرز الأحدث منذ عام 2024 فقط. لا يمكنك ضبط هذه القيمة في حال استخدام النموذج السابق (models/embedding-001).

تمثيل JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

قائمة بالأعداد العشرية التي تمثّل عملية تضمين

الحقول
values[] number

قيم التضمين

تمثيل JSON
{
  "values": [
    number
  ]
}

TaskType

نوع المهمة التي سيتم استخدام عملية التضمين فيها

عمليات التعداد
TASK_TYPE_UNSPECIFIED قيمة غير محدّدة، والتي سيتم ضبطها تلقائيًا على إحدى قيم التعداد الأخرى
RETRIEVAL_QUERY تُحدِّد هذه السمة أنّ النص المقدَّم هو طلب بحث في إعداد بحث/استرجاع.
RETRIEVAL_DOCUMENT تُستخدَم لتحديد أنّ النص المقدَّم هو مستند من مجموعة النصوص التي يتم البحث فيها.
SEMANTIC_SIMILARITY تُحدِّد هذه السمة النص الذي سيتم استخدامه لبروتوكول STS.
CLASSIFICATION تُستخدَم لتحديد أنّ النص المحدّد سيتم تصنيفه.
CLUSTERING تُستخدَم هذه السمة لتحديد أنّه سيتم استخدام البيانات المضمّنة في التجميع.
QUESTION_ANSWERING تُستخدَم لتحديد أنّ النص المقدَّم سيتم استخدامه للإجابة عن الأسئلة.
FACT_VERIFICATION تشير إلى أنّه سيتم استخدام النص المقدَّم للتحقّق من صحة الحقائق.