एम्बेड करना

Gemini API, कई एम्बेडिंग मॉडल के साथ काम करता है. ये मॉडल, शब्दों, वाक्यांशों, कोड, और वाक्यों के लिए एम्बेड जनरेट करते हैं. इसके बाद, इन एम्बेड का इस्तेमाल कई कामों के लिए किया जा सकता है. जैसे, सेमेटिक सर्च, टेक्स्ट की कैटगरी तय करना, और क्लस्टर बनाना.

एम्बेड क्या होते हैं?

एम्बेड, टेक्स्ट (या अन्य मीडिया फ़ॉर्मैट) के अंकों के तौर पर दिखाए जाते हैं. इनसे इनपुट के बीच के संबंधों की जानकारी मिलती है. टेक्स्ट एम्बेड करने की सुविधा, टेक्स्ट को फ़्लोटिंग पॉइंट नंबर के ऐरे में बदलकर काम करती है. इन्हें वेक्टर कहा जाता है. इन वेक्टर को टेक्स्ट का मतलब समझने के लिए डिज़ाइन किया गया है. एम्बेडिंग कलेक्शन की लंबाई को वेक्टर की डाइमेंशन कहा जाता है. टेक्स्ट के किसी पैसेज को सैकड़ों डाइमेंशन वाले वेक्टर से दिखाया जा सकता है.

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

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

एम्बेड जनरेट करना

टेक्स्ट एम्बेड जनरेट करने के लिए, embedContent तरीके का इस्तेमाल करें:

Python

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

result = client.models.embed_content(
        model="gemini-embedding-exp-03-07",
        contents="What is the meaning of life?")

print(result.embeddings)

JavaScript

import { GoogleGenAI } from "@google/genai";

async function main() {

    const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });

    const response = await ai.models.embedContent({
        model: 'gemini-embedding-exp-03-07',
        contents: 'What is the meaning of life?',
    });

    console.log(response.embeddings);
}

main();

शुरू करें

ctx := context.Background()

client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()

em := client.EmbeddingModel("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))

if err != nil {
    panic(err)
}
fmt.Println(res.Embedding.Values)

REST

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

एक से ज़्यादा चंक के लिए भी एक साथ एम्बेड जनरेट किए जा सकते हैं. इसके लिए, उन्हें स्ट्रिंग की सूची के तौर पर पास करें.

टास्क के टाइप

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

टास्क टाइप की मदद से, खास टास्क के लिए ऑप्टिमाइज़ किए गए एम्बेड जनरेट किए जा सकते हैं. इससे, आपका समय और पैसा बचता है और परफ़ॉर्मेंस बेहतर होती है.

Python

from google import genai
from google.genai import types

client = genai.Client(api_key="GEMINI_API_KEY")

result = client.models.embed_content(
        model="gemini-embedding-exp-03-07",
        contents="What is the meaning of life?",
        config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)

JavaScript

import { GoogleGenAI } from "@google/genai";

async function main() {

    const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });

    const response = await ai.models.embedContent({
        model: 'gemini-embedding-exp-03-07',
        contents: 'What is the meaning of life?',
        config: {
            taskType: "SEMANTIC_SIMILARITY",
        }
    });

    console.log(response.embeddings);
}

main();

REST

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

टास्क के टाइप

टास्क किस तरह का है ब्यौरा
SEMANTIC_SIMILARITY इसका इस्तेमाल, टेक्स्ट की समानता का आकलन करने के लिए ऑप्टिमाइज़ किए गए एम्बेड जनरेट करने के लिए किया जाता है.
CLASSIFICATION इसका इस्तेमाल, पहले से तय लेबल के हिसाब से टेक्स्ट को अलग-अलग कैटगरी में बांटने के लिए ऑप्टिमाइज़ किए गए एम्बेड जनरेट करने के लिए किया जाता है.
CLUSTERING इसका इस्तेमाल, ऐसे एम्बेड जनरेट करने के लिए किया जाता है जिन्हें टेक्स्ट की समानता के आधार पर क्लस्टर करने के लिए ऑप्टिमाइज़ किया जाता है.
RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING, और FACT_VERIFICATION इसका इस्तेमाल, दस्तावेज़ खोजने या जानकारी पाने के लिए ऑप्टिमाइज़ किए गए एम्बेड जनरेट करने के लिए किया जाता है.
CODE_RETRIEVAL_QUERY इसका इस्तेमाल, सामान्य भाषा की क्वेरी के आधार पर कोड ब्लॉक को वापस लाने के लिए किया जाता है. जैसे, किसी ऐरे को क्रम से लगाना या लिंक की गई सूची को उलटा लगाना. कोड ब्लॉक को एम्बेड करने का हिसाब RETRIEVAL_DOCUMENT का इस्तेमाल करके लगाया जाता है.

उपयोग के उदाहरण

टेक्स्ट एम्बेड का इस्तेमाल, एआई के कई सामान्य इस्तेमाल के उदाहरणों में किया जाता है. जैसे:

मॉडल एम्बेड करना

Gemini API, टेक्स्ट एम्बेड जनरेट करने वाले तीन मॉडल उपलब्ध कराता है:

आगे क्या करना है

एम्बेडिंग के बारे में क्विकस्टार्ट नोटबुक देखें.