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


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

ज़रूरी नहीं. टेक्स्ट के लिए वैकल्पिक टाइटल. यह सिर्फ़ तब लागू होता है, जब 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 इससे पता चलता है कि दिए गए टेक्स्ट का इस्तेमाल, तथ्यों की पुष्टि करने के लिए किया जाएगा.