Embeddings

एम्बेड, टेक्स्ट इनपुट का अंकों में दिखाया गया वर्शन होता है. इससे, क्लस्टरिंग, मिलती-जुलती चीज़ों का आकलन, और जानकारी हासिल करने जैसे कई यूनीक इस्तेमाल के उदाहरण सामने आते हैं. इस बारे में जानने के लिए, एम्बेड करने से जुड़ी गाइड देखें.

तरीका: models.embedContent

यह फ़ंक्शन, दिए गए Gemini Embedding मॉडल का इस्तेमाल करके, इनपुट Content से टेक्स्ट एम्बेडिंग वेक्टर जनरेट करता है.

एंडपॉइंट

पोस्ट 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 हो.

ध्यान दें: RETRIEVAL_DOCUMENT के लिए title तय करने पर, जानकारी वापस पाने के लिए बेहतर क्वालिटी के एम्बेड मिलते हैं.

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)

सिर्फ़ आउटपुट के लिए. हर अनुरोध के लिए एम्बेड किए गए डेटा, उसी क्रम में होते हैं जिस क्रम में बैच अनुरोध में दिए गए थे.

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 हो.

ध्यान दें: RETRIEVAL_DOCUMENT के लिए title तय करने पर, जानकारी वापस पाने के लिए बेहतर क्वालिटी के एम्बेड मिलते हैं.

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

उस टास्क का टाइप जिसके लिए एम्बेड करने की सुविधा का इस्तेमाल किया जाएगा.

Enums
TASK_TYPE_UNSPECIFIED सेट नहीं की गई वैल्यू, जो डिफ़ॉल्ट रूप से किसी अन्य वैल्यू पर सेट हो जाएगी.
RETRIEVAL_QUERY यह बताता है कि दिया गया टेक्स्ट, खोज/डेटा वापस पाने की सेटिंग में क्वेरी है.
RETRIEVAL_DOCUMENT इससे पता चलता है कि दिया गया टेक्स्ट, खोजे जा रहे कॉर्पस का कोई दस्तावेज़ है.
SEMANTIC_SIMILARITY इससे पता चलता है कि दिए गए टेक्स्ट का इस्तेमाल एसटीएस के लिए किया जाएगा.
CLASSIFICATION इससे पता चलता है कि दिए गए टेक्स्ट की कैटगरी तय की जाएगी.
CLUSTERING इससे पता चलता है कि एम्बेड का इस्तेमाल क्लस्टरिंग के लिए किया जाएगा.
QUESTION_ANSWERING इससे पता चलता है कि दिए गए टेक्स्ट का इस्तेमाल, सवालों के जवाब देने के लिए किया जाएगा.
FACT_VERIFICATION इससे पता चलता है कि दिए गए टेक्स्ट का इस्तेमाल, तथ्य की पुष्टि करने के लिए किया जाएगा.