Embeddings

এমবেডিং হল টেক্সট ইনপুটের একটি সংখ্যাগত উপস্থাপনা যা অনেকগুলি অনন্য ব্যবহারের ক্ষেত্রে উন্মুক্ত করে, যেমন ক্লাস্টারিং, সাদৃশ্য পরিমাপ এবং তথ্য পুনরুদ্ধার। একটি ভূমিকার জন্য, এম্বেডিং গাইড দেখুন।

নতুন বিষয়বস্তু তৈরি করে এমন জেনারেটিভ এআই মডেলের বিপরীতে, জেমিনি এম্বেডিং মডেলটি শুধুমাত্র আপনার ইনপুট ডেটার বিন্যাসকে একটি সংখ্যাসূচক উপস্থাপনায় রূপান্তরিত করার উদ্দেশ্যে তৈরি করা হয়েছে। যদিও Google একটি এমবেডিং মডেল প্রদানের জন্য দায়ী যা আপনার ইনপুট ডেটার বিন্যাসকে অনুরোধ করা সংখ্যাসূচক-ফরম্যাটে রূপান্তর করে, ব্যবহারকারীরা তাদের ইনপুট করা ডেটা এবং ফলস্বরূপ এমবেডিংয়ের সম্পূর্ণ দায়বদ্ধতা বজায় রাখে। জেমিনি এম্বেডিং মডেল ব্যবহার করে আপনি নিশ্চিত করেন যে আপনার আপলোড করা যেকোনো বিষয়বস্তুর প্রয়োজনীয় অধিকার রয়েছে। অন্যের মেধা সম্পত্তি বা গোপনীয়তার অধিকার লঙ্ঘন করে এমন সামগ্রী তৈরি করবেন না। আপনার এই পরিষেবার ব্যবহার আমাদের নিষিদ্ধ ব্যবহারের নীতি এবং Google-এর পরিষেবার শর্তাবলীর সাপেক্ষে৷

পদ্ধতি: models.embedContent

নির্দিষ্ট জেমিনি এম্বেডিং মডেল ব্যবহার করে ইনপুট 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

ঐচ্ছিক। পাঠ্যের জন্য একটি ঐচ্ছিক শিরোনাম। শুধুমাত্র টাস্কটাইপ RETRIEVAL_DOCUMENT হলেই প্রযোজ্য।

দ্রষ্টব্য: RETRIEVAL_DOCUMENT এর জন্য একটি title নির্দিষ্ট করা পুনরুদ্ধারের জন্য আরও ভাল মানের এম্বেডিং প্রদান করে৷

outputDimensionality integer

ঐচ্ছিক। আউটপুট এম্বেডিংয়ের জন্য ঐচ্ছিক হ্রাস মাত্রা। যদি সেট করা থাকে, আউটপুট এম্বেডিংয়ের অতিরিক্ত মান শেষ থেকে কেটে ফেলা হয়। শুধুমাত্র 2024 সাল থেকে নতুন মডেল দ্বারা সমর্থিত। পূর্ববর্তী মডেল ব্যবহার করলে আপনি এই মান সেট করতে পারবেন না ( models/embedding-001 )।

উদাহরণ অনুরোধ

পাইথন

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 এর প্রতিক্রিয়া।

সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:

ক্ষেত্র
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 মডেলের সাথে মিলবে।

উদাহরণ অনুরোধ

পাইথন

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 এর প্রতিক্রিয়া।

সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:

ক্ষেত্র
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

ঐচ্ছিক। পাঠ্যের জন্য একটি ঐচ্ছিক শিরোনাম। শুধুমাত্র টাস্কটাইপ RETRIEVAL_DOCUMENT হলেই প্রযোজ্য।

দ্রষ্টব্য: RETRIEVAL_DOCUMENT এর জন্য একটি title নির্দিষ্ট করা পুনরুদ্ধারের জন্য আরও ভাল মানের এম্বেডিং প্রদান করে৷

outputDimensionality integer

ঐচ্ছিক। আউটপুট এম্বেডিংয়ের জন্য ঐচ্ছিক হ্রাস মাত্রা। যদি সেট করা থাকে, আউটপুট এম্বেডিংয়ের অতিরিক্ত মান শেষ থেকে কেটে ফেলা হয়। শুধুমাত্র 2024 সাল থেকে নতুন মডেল দ্বারা সমর্থিত। পূর্ববর্তী মডেল ব্যবহার করলে আপনি এই মান সেট করতে পারবেন না ( models/embedding-001 )।

JSON প্রতিনিধিত্ব
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

কন্টেন্ট এম্বেডিং

একটি এমবেডিং প্রতিনিধিত্বকারী ফ্লোটগুলির একটি তালিকা৷

ক্ষেত্র
values[] number

এমবেডিং মান.

JSON প্রতিনিধিত্ব
{
  "values": [
    number
  ]
}

টাস্ক টাইপ

টাস্কের ধরন যার জন্য এম্বেডিং ব্যবহার করা হবে।

এনামস
TASK_TYPE_UNSPECIFIED আনসেট মান, যা অন্যান্য enum মানগুলির একটিতে ডিফল্ট হবে।
RETRIEVAL_QUERY প্রদত্ত টেক্সট একটি অনুসন্ধান/পুনরুদ্ধার সেটিং একটি ক্যোয়ারী নির্দিষ্ট করে.
RETRIEVAL_DOCUMENT প্রদত্ত পাঠ্যটি অনুসন্ধান করা কর্পাস থেকে একটি নথি নির্দিষ্ট করে৷
SEMANTIC_SIMILARITY প্রদত্ত পাঠ্যটি STS-এর জন্য ব্যবহার করা হবে তা নির্দিষ্ট করে।
CLASSIFICATION নির্দিষ্ট করে যে প্রদত্ত পাঠ্যটি শ্রেণীবদ্ধ করা হবে।
CLUSTERING নির্দিষ্ট করে যে এমবেডিংগুলি ক্লাস্টারিংয়ের জন্য ব্যবহার করা হবে৷
QUESTION_ANSWERING নির্দিষ্ট করে যে প্রদত্ত পাঠ্যটি প্রশ্নের উত্তরের জন্য ব্যবহার করা হবে।
FACT_VERIFICATION উল্লেখ করে যে প্রদত্ত পাঠ্য সত্য যাচাইয়ের জন্য ব্যবহার করা হবে।
CODE_RETRIEVAL_QUERY নির্দিষ্ট করে যে প্রদত্ত পাঠ্যটি কোড পুনরুদ্ধারের জন্য ব্যবহার করা হবে।