Embeddings

הטמעות (embeddings) הן ייצוג מספרי של קלט טקסט, שמאפשר מספר תרחישים ייחודיים של שימוש, כמו קיבוץ, מדידת דמיון ואחזור מידע. למידע נוסף, אפשר לעיין במדריך להטמעות.

שיטה: models.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

אופציונלי. כותרת אופציונלית לטקסט. המאפיין רלוונטי רק כשהערך של TaskType הוא RETRIEVAL_DOCUMENT.

הערה: ציון title עבור RETRIEVAL_DOCUMENT מספק הטמעות (embeddings) באיכות טובה יותר לאחזור.

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.

נקודת קצה

פוסט 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)

פלט בלבד. הטמעות (embeddings) של כל בקשה, באותו סדר שבו הן צוינו בבקשה האצווה.

ייצוג ב-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 מספק הטמעות (embeddings) באיכות טובה יותר לאחזור.

outputDimensionality integer

אופציונלי. מימד מופחת אופציונלי להטמעת הפלט. אם הערך מוגדר, ערכים מוגזמים בהטמעת הפלט יקוצצו מהסוף. התכונה נתמכת בדגמים חדשים יותר מ-2024 בלבד. לא ניתן להגדיר את הערך הזה אם משתמשים במודל הקודם (models/embedding-001).

ייצוג ב-JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

רשימה של מספרים שמייצגים הטמעה (embedding).

שדות
values[] number

ערכי ההטמעה.

ייצוג ב-JSON
{
  "values": [
    number
  ]
}

TaskType

סוג המשימה שבה ישתמש הטמעת הקוד.

טיפוסים בני מנייה (enum)
TASK_TYPE_UNSPECIFIED ערך לא מוגדר, שיוגדר כברירת מחדל לאחד מערכי ה-enum האחרים.
RETRIEVAL_QUERY מציין שהטקסט הנתון הוא שאילתה בהגדרת חיפוש/אחזור.
RETRIEVAL_DOCUMENT מציין שהטקסט הנתון הוא מסמך מהקורפוס שבו מתבצע החיפוש.
SEMANTIC_SIMILARITY מציין שהטקסט הזה ישמש ל-STS.
CLASSIFICATION מציין שהטקסט הנתון יסווג.
CLUSTERING מציין שהטמעות (embeddings) ישמשו ליצירת אשכולות.
QUESTION_ANSWERING מציין שהטקסט הזה ישמש למתן תשובות לשאלות.
FACT_VERIFICATION מציין שהטקסט הזה ישמש לאימות עובדות.