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, टेक्स्ट एम्बेड जनरेट करने वाले तीन मॉडल उपलब्ध कराता है: