Embeddings

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

الطريقة: model.embedContent

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

نقطة نهاية

منشور 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

اختياريّ. تمثّل هذه السمة عنوانًا اختياريًا للنص. لا ينطبق هذا الإعداد إلا عندما يكون نوع المهمة RETRIEVAL_DOCUMENT.

ملاحظة: يؤدي تحديد title لـ RETRIEVAL_DOCUMENT إلى توفير تضمينات ذات جودة أفضل لاستردادها.

outputDimensionality integer

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

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

Python


text = "Hello World!"
result = genai.embed_content(
    model="models/text-embedding-004", content=text, output_dimensionality=10
)
print(result["embedding"])

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)
  }
}

الطريقة: model.batchEmbedContents

إنشاء عدة متجهات تضمين من الإدخال Content الذي يتكون من مجموعة من السلاسل ممثلة ككائنات EmbedContentRequest.

نقطة نهاية

منشور https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

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

model string

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

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

التنسيق: models/{model} يأخذ الشكل models/{model}.

نص الطلب

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

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

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

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

Python

texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = genai.embed_content(
    model="models/text-embedding-004", content=texts, output_dimensionality=10
)
print(result)

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

اختياريّ. تمثّل هذه السمة عنوانًا اختياريًا للنص. لا ينطبق هذا الإعداد إلا عندما يكون نوع المهمة 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 تشير هذه العلامة إلى أنّ النص المقدَّم سيُستخدم للتحقق من صحة الأخبار.