Embeddings

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

שיטה: models.embedContent

הפונקציה יוצרת וקטור הטמעה של טקסט מהקלט Content באמצעות מודל ההטמעה של Gemini שצוין.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

פרמטרים של נתיב

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

import google.generativeai as genai

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

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

פרמטרים של נתיב

model string

חובה. שם המשאב של הדגם. זהו מזהה לשימוש במודל.

השם הזה צריך להתאים לשם הדגם שהוחזר על ידי השיטה models.list.

פורמט: models/{model} הפורמט הוא models/{model}.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
requests[] object (EmbedContentRequest)

חובה. הטמעת הבקשות של האצווה. הדגם בכל אחת מהבקשות האלה צריך להתאים לדגם שצוין ב-BatchEmbedContentsRequest.model.

בקשה לדוגמה

Python

import google.generativeai as genai

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

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