جاسازی ها

Gemini API از چندین مدل جاسازی پشتیبانی می‌کند که برای کلمات، عبارات، کدها و جملات جاسازی می‌شوند. تعبیه‌های به‌دست‌آمده می‌توانند برای کارهایی مانند جستجوی معنایی، طبقه‌بندی متن، و خوشه‌بندی و بسیاری دیگر استفاده شوند.

تعبیه ها چیست؟

تعبیه‌ها نمایش‌های عددی متن (یا سایر قالب‌های رسانه‌ای) هستند که روابط بین ورودی‌ها را نشان می‌دهند. جاسازی متن با تبدیل متن به آرایه هایی از اعداد ممیز شناور، به نام بردار، کار می کند. این بردارها به گونه ای طراحی شده اند که معنای متن را به تصویر بکشند. طول آرایه تعبیه شده را ابعاد برداری می نامند. یک متن ممکن است با بردار حاوی صدها بعد نمایش داده شود.

تعبیه‌ها معنا و زمینه معنایی را در بر می‌گیرند که در نتیجه متنی با معانی مشابه دارای تعبیه‌های «نزدیک‌تر» است. به عنوان مثال، جمله "من سگم را به دامپزشکی بردم" و "گربه ام را به دامپزشکی بردم" دارای جاسازی هایی هستند که در فضای برداری نزدیک به یکدیگر هستند.

می توانید از جاسازی ها برای مقایسه متون مختلف و درک نحوه ارتباط آنها استفاده کنید. به عنوان مثال، اگر تعبیه‌های متن «گربه» و «سگ» نزدیک به هم باشند، می‌توانید استنباط کنید که این کلمات از نظر معنا، بافت یا هر دو مشابه هستند. این امکان انواع موارد استفاده رایج از هوش مصنوعی را فراهم می کند.

جاسازی ها را ایجاد کنید

برای ایجاد جاسازی متن از روش embedContent استفاده کنید:

پایتون

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)

جاوا اسکریپت

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)

استراحت

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?"}]}
    }'

همچنین می‌توانید با ارسال آن‌ها به‌عنوان فهرست رشته‌ها، جاسازی‌هایی را برای چندین تکه به طور همزمان ایجاد کنید.

انواع وظایف

هنگام ساختن سیستم‌های Retrieval Augmented Generation (RAG)، یک طراحی رایج استفاده از جاسازی متن برای انجام جستجوی مشابه است. در برخی موارد این می تواند منجر به کاهش کیفیت شود، زیرا سؤالات و پاسخ های آنها از نظر معنایی مشابه نیستند. به عنوان مثال، سوالی مانند "چرا آسمان آبی است؟" و پاسخ آن "پراکندگی نور خورشید باعث رنگ آبی می شود" معانی متفاوتی به عنوان عبارات دارند، به این معنی که یک سیستم RAG به طور خودکار رابطه آنها را تشخیص نمی دهد.

انواع وظایف شما را قادر می سازد تا جاسازی های بهینه سازی شده را برای کارهای خاص ایجاد کنید، در زمان و هزینه شما صرفه جویی می کند و عملکرد را بهبود می بخشد.

پایتون

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)

جاوا اسکریپت

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();

استراحت

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 سه مدل برای ایجاد جاسازی متن ارائه می دهد:

بعدش چی

دفترچه یادداشت راه‌اندازی سریع جاسازی‌ها را بررسی کنید.