Embeddings

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

जनरेटिव एआई मॉडल नया कॉन्टेंट बनाते हैं. हालांकि, Gemini Embedding मॉडल का मकसद सिर्फ़ आपके इनपुट डेटा के फ़ॉर्मैट को संख्यात्मक रूप में बदलना है. Google की ज़िम्मेदारी है कि वह एक ऐसा एम्बेडिंग मॉडल उपलब्ध कराए जो आपके इनपुट डेटा के फ़ॉर्मैट को, अनुरोध किए गए संख्या वाले फ़ॉर्मैट में बदल दे. हालांकि, उपयोगकर्ताओं की यह ज़िम्मेदारी बनी रहती है कि वे अपने इनपुट डेटा और उससे जनरेट होने वाले एम्बेडिंग के लिए पूरी तरह से जवाबदेह हों. Gemini Embedding मॉडल का इस्तेमाल करने पर, यह पुष्टि हो जाती है कि अपलोड किए जाने वाले कॉन्टेंट को इस्तेमाल करने से जुड़े ज़रूरी अधिकार आपके पास हैं. ऐसा कोई कॉन्टेंट जनरेट न करें जिससे किसी की बौद्धिक संपत्ति या निजता के अधिकारों का उल्लंघन होता हो. इस सेवा के इस्तेमाल पर, इस्तेमाल से जुड़ी पाबंदी की हमारी नीति और Google की सेवा की शर्तें लागू होती हैं.

तरीका: models.embedContent

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

एंडपॉइंट

post 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

from google import genai
from google.genai import types

client = genai.Client()
text = "Hello World!"
result = client.models.embed_content(
    model="gemini-embedding-001",
    contents=text,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const text = "Hello World!";
const result = await ai.models.embedContent({
  model: "gemini-embedding-001",
  contents: text,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);

शुरू करें

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

text := "Hello World!"
outputDim := int32(10)
contents := []*genai.Content{
	genai.NewContentFromText(text, genai.RoleUser),
}
result, err := client.Models.EmbedContent(ctx, "gemini-embedding-001", 
	contents, &genai.EmbedContentConfig{
		OutputDimensionality: &outputDim,
})
if err != nil {
	log.Fatal(err)
}

embeddings, err := json.MarshalIndent(result.Embeddings, "", "  ")
if err != nil {
	log.Fatal(err)
}
fmt.Println(string(embeddings))

शेल

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:embedContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-001",
     "content": {
     "parts":[{
     "text": "What is the meaning of life?"}]}
    }'

जवाब का मुख्य भाग

EmbedContentRequest का जवाब.

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

Fields
embedding object (ContentEmbedding)

सिर्फ़ आउटपुट के लिए. इनपुट कॉन्टेंट से जनरेट किया गया एम्बेडिंग.

JSON के काेड में दिखाना
{
  "embedding": {
    object (ContentEmbedding)
  }
}

मेथड: models.batchEmbedContents

यह इनपुट Content से कई एम्बेडिंग वेक्टर जनरेट करता है. इसमें EmbedContentRequest ऑब्जेक्ट के तौर पर दिखाए गए स्ट्रिंग का बैच होता है.

एंडपॉइंट

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

पाथ पैरामीटर

model string

ज़रूरी है. मॉडल के संसाधन का नाम. यह मॉडल के लिए आईडी के तौर पर काम करता है.

यह नाम, models.list तरीके से मिले मॉडल के नाम से मेल खाना चाहिए.

फ़ॉर्मैट: models/{model} यह models/{model} के फ़ॉर्म में होता है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, इस स्ट्रक्चर का डेटा शामिल होता है:

फ़ील्ड
requests[] object (EmbedContentRequest)

ज़रूरी है. बैच के लिए एम्बेड करने के अनुरोध. इनमें से हर अनुरोध में मौजूद मॉडल, BatchEmbedContentsRequest.model में बताए गए मॉडल से मेल खाना चाहिए.

अनुरोध का उदाहरण

Python

from google import genai
from google.genai import types

client = genai.Client()
texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = client.models.embed_content(
    model="gemini-embedding-001",
    contents=texts,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const texts = [
  "What is the meaning of life?",
  "How much wood would a woodchuck chuck?",
  "How does the brain work?",
];
const result = await ai.models.embedContent({
  model: "gemini-embedding-001",
  contents: texts,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);

शुरू करें

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

contents := []*genai.Content{
	genai.NewContentFromText("What is the meaning of life?", genai.RoleUser),
	genai.NewContentFromText("How much wood would a woodchuck chuck?", genai.RoleUser),
	genai.NewContentFromText("How does the brain work?", genai.RoleUser),
}

outputDim := int32(10)
result, err := client.Models.EmbedContent(ctx, "gemini-embedding-001", contents, &genai.EmbedContentConfig{
	OutputDimensionality: &outputDim,
})
if err != nil {
	log.Fatal(err)
}

embeddings, err := json.MarshalIndent(result.Embeddings, "", "  ")
if err != nil {
	log.Fatal(err)
}
fmt.Println(string(embeddings))

शेल

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:batchEmbedContents" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/gemini-embedding-001",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/gemini-embedding-001",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/gemini-embedding-001",
      "content": {
      "parts":[{
        "text": "How does the brain work?"}]}, }, ]}' 2> /dev/null | grep -C 5 values

जवाब का मुख्य भाग

BatchEmbedContentsRequest का जवाब.

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

Fields
embeddings[] object (ContentEmbedding)

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

JSON के काेड में दिखाना
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

मॉडल को एम्बेड करने के लिए, Content वाला अनुरोध.

Fields
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

एम्बेडिंग दिखाने वाले फ़्लोट की सूची.

Fields
values[] number

एम्बेडिंग वैल्यू.

JSON के काेड में दिखाना
{
  "values": [
    number
  ]
}

TaskType

यह उस टास्क का टाइप है जिसके लिए एम्बेडिंग का इस्तेमाल किया जाएगा.

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