Embeddings

Gemini API mbështet disa modele të përfshirjes që gjenerojnë ngulitje për fjalë, fraza, kode dhe fjali. Përfshirjet që rezultojnë mund të përdoren më pas për detyra të tilla si kërkimi semantik, klasifikimi i tekstit dhe grupimi, ndër shumë të tjera.

Çfarë janë embeddings?

Embeddings janë paraqitje numerike të tekstit (ose formateve të tjera mediatike) që kapin marrëdhëniet midis hyrjeve. Përfshirja e tekstit funksionon duke e kthyer tekstin në vargje numrash me pikë lundruese, të quajtur vektorë . Këta vektorë janë krijuar për të kapur kuptimin e tekstit. Gjatësia e vargut të ngulitur quhet dimensionaliteti i vektorit. Një pasazh teksti mund të përfaqësohet nga një vektor që përmban qindra dimensione.

Embeddings kapin kuptimin dhe kontekstin semantik, gjë që rezulton në tekst me kuptime të ngjashme që kanë ngulitje "më të afërta". Për shembull, fjalia "Unë e çova qenin tim te veterineri" dhe "Unë e çova macen time te veterineri" do të kishte ngulitje që janë afër njëra-tjetrës në hapësirën vektoriale.

Ju mund të përdorni embeddings për të krahasuar tekste të ndryshme dhe për të kuptuar se si ato lidhen. Për shembull, nëse futjet e tekstit "mace" dhe "qen" janë afër njëra-tjetrës, mund të konkludoni se këto fjalë janë të ngjashme në kuptim, kontekst ose të dyja. Kjo mundëson një sërë rastesh të zakonshme të përdorimit të AI .

Para se të filloni

Përpara se të telefononi Gemini API, sigurohuni që keni të instaluar SDK-në tuaj të zgjedhur dhe një çelës Gemini API të konfiguruar dhe gati për t'u përdorur.

Gjeneroni ngulitje

Përdorni metodën embedContent për të gjeneruar ngulitje teksti:

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

Ju gjithashtu mund të gjeneroni ngulitje për disa pjesë në të njëjtën kohë duke i kaluar ato si një listë vargjesh.

Llojet e detyrave

Kur ndërtoni sisteme të gjenerimit të shtuar (RAG), një dizajn i zakonshëm është përdorimi i ngulitjes së tekstit për të kryer një kërkim të ngjashmërisë. Në disa raste kjo mund të çojë në degradim të cilësisë, sepse pyetjet dhe përgjigjet e tyre nuk janë të ngjashme semantikisht. Për shembull, një pyetje si "Pse qielli është blu?" dhe përgjigja e tij "Shpërndarja e dritës së diellit shkakton ngjyrën blu", kanë kuptime të ndryshme si deklarata, që do të thotë se një sistem RAG nuk do ta njohë automatikisht lidhjen e tyre.

Llojet e detyrave ju mundësojnë të gjeneroni ngulitje të optimizuara për detyra specifike, duke ju kursyer kohë dhe kosto dhe duke përmirësuar performancën.

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

Llojet e detyrave të mbështetura

Lloji i detyrës Përshkrimi
SEMANTIC_SIMILARITY Përdoret për të gjeneruar ngulitje që janë optimizuar për të vlerësuar ngjashmërinë e tekstit.
CLASSIFICATION Përdoret për të gjeneruar ngulitje që janë optimizuar për të klasifikuar tekstet sipas etiketave të paracaktuara.
CLUSTERING Përdoret për të gjeneruar ngulitje që janë optimizuar për të grumbulluar tekste bazuar në ngjashmëritë e tyre.
RETRIEVAL_DOCUMENT , RETRIEVAL_QUERY , QUESTION_ANSWERING dhe FACT_VERIFICATION Përdoret për të gjeneruar ngulitje që janë optimizuar për kërkimin e dokumenteve ose marrjen e informacionit.
CODE_RETRIEVAL_QUERY Përdoret për të tërhequr një bllok kodi bazuar në një pyetje të gjuhës natyrore, të tilla si renditja e një grupi ose kthimi i një liste të lidhur. Përfshirjet e blloqeve të kodit llogariten duke përdorur RETRIEVAL_DOCUMENT .

Rastet e përdorimit

Përfshirjet e tekstit përdoren në një sërë rastesh të zakonshme të përdorimit të AI, të tilla si:

Modelet e ngulitjes

Gemini API ofron tre modele që gjenerojnë ngulitje teksti:

Çfarë është më pas

Shikoni fletoren e nisjes së shpejtë të futjeve .