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

זה שינוי אופציונלי. כותרת אופציונלית לטקסט. רלוונטי רק כאשר סוג המשימה הוא RETRIEVAL_DOCUMENT.

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

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

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

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)

פלט בלבד. הטמעות (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

זה שינוי אופציונלי. כותרת אופציונלית לטקסט. רלוונטי רק כאשר סוג המשימה הוא 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

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

שדות
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 מציינת שהטקסט הנתון ישמש לאימות עובדות.