Embeddings

Embeddings janë një përfaqësim numerik i futjes së tekstit që hap një numër rastesh përdorimi unike, të tilla si grupimi, matja e ngjashmërisë dhe marrja e informacionit. Për një hyrje, shikoni udhëzuesin e Embeddings .

Ndryshe nga modelet gjeneruese të IA-së që krijojnë përmbajtje të re, modeli Gemini Embedding ka për qëllim vetëm të transformojë formatin e të dhënave tuaja hyrëse në një përfaqësim numerik. Ndërsa Google është përgjegjës për ofrimin e një modeli integrimi që transformon formatin e të dhënave tuaja hyrëse në formatin numerik të kërkuar, përdoruesit mbajnë përgjegjësi të plotë për të dhënat që ata futin dhe integrimet që rezultojnë. Duke përdorur modelin Gemini Embedding, ju konfirmoni se keni të drejtat e nevojshme për çdo përmbajtje që ngarkoni. Mos gjeneroni përmbajtje që shkel të drejtat e pronësisë intelektuale ose të privatësisë së të tjerëve. Përdorimi juaj i këtij shërbimi i nënshtrohet Politikës sonë të Përdorimit të Ndaluar dhe Kushteve të Shërbimit të Google .

Metoda: models.embedContent

Gjeneron një vektor të ngulitur teksti nga Content hyrëse duke përdorur modelin e specifikuar të Ngulitur Gemini .

Pika e Fundit

posto https: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:embedContent

Parametrat e shtegut

string model

E detyrueshme. Emri i burimit të modelit. Ky shërben si një ID që Modeli do të përdorë.

Ky emër duhet të përputhet me një emër modeli të kthyer nga metoda models.list .

Formati: models/{model} Merr formën models/{model} .

Trupi i kërkesës

Trupi i kërkesës përmban të dhëna me strukturën e mëposhtme:

Fushat
objekti content object ( Content )

E detyrueshme. Përmbajtja që do të integrohet. Vetëm fushat parts.text do të llogariten.

taskType enum ( TaskType )

Opsionale. Lloji i detyrës opsionale për të cilën do të përdoren ngulitje. Nuk mbështetet në modelet e mëparshme ( models/embedding-001 ).

string title

Opsionale. Një titull opsional për tekstin. I zbatueshëm vetëm kur Tipi i Detyrës është RETRIEVAL_DOCUMENT .

Shënim: Specifikimi i një title për RETRIEVAL_DOCUMENT ofron ngulitje me cilësi më të mirë për rikuperim.

integer outputDimensionality

Opsionale. Dimension i reduktuar opsional për ngulitjen e daljes. Nëse vendoset, vlerat e tepërta në ngulitjen e daljes shkurtohen nga fundi. Mbështetet vetëm nga modelet më të reja që nga viti 2024. Nuk mund ta caktoni këtë vlerë nëse përdorni modelin e mëparshëm ( models/embedding-001 ).

Shembull kërkese

Python

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

Shko

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

Guaskë

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

Trupi i përgjigjes

Nëse është e suksesshme, trupi i përgjigjes përmban një instancë të EmbedContentResponse .

Metoda: models.batchEmbedContents

Gjeneron vektorë të shumtë integrimi nga Content hyrëse, e cila përbëhet nga një grup vargjesh të përfaqësuara si objekte EmbedContentRequest .

Pika e Fundit

posto https: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:batchEmbedContents

Parametrat e shtegut

string model

E detyrueshme. Emri i burimit të modelit. Ky shërben si një ID që Modeli do të përdorë.

Ky emër duhet të përputhet me një emër modeli të kthyer nga metoda models.list .

Formati: models/{model} Merr formën models/{model} .

Trupi i kërkesës

Trupi i kërkesës përmban të dhëna me strukturën e mëposhtme:

Fushat
requests[] object ( EmbedContentRequest )

E detyrueshme. Kërkesa për integrimin e grupit. Modeli në secilën prej këtyre kërkesave duhet të përputhet me modelin e specifikuar BatchEmbedContentsRequest.model .

Shembull kërkese

Python

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

Shko

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

Guaskë

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

Trupi i përgjigjes

Përgjigja ndaj një BatchEmbedContentsRequest .

Nëse është i suksesshëm, trupi i përgjigjes përmban të dhëna me strukturën e mëposhtme:

Fushat
objekti embeddings[] object ( ContentEmbedding )

Vetëm rezultate. Vendosjet për secilën kërkesë, në të njëjtën renditje siç është dhënë në kërkesën në grup.

Përfaqësimi JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

Metoda: models.asyncBatchEmbedContent

Vendos në radhë një grumbull kërkesash models.embedContent për përpunim grumbull. Ne kemi një trajtues models.batchEmbedContentsGenerativeService , por ishte i sinkronizuar. Kështu që e quajmë këtë Async për të shmangur ngatërresën.

Pika e Fundit

posto https: / /generativelanguage.googleapis.com /v1beta /{batch.model=models /*}:asyncBatchEmbedContent

Parametrat e shtegut

string batch.model

E detyrueshme. Emri i Model që do të përdoret për gjenerimin e përfundimit.

Formati: models/{model} . Merr formën models/{model} .

Trupi i kërkesës

Trupi i kërkesës përmban të dhëna me strukturën e mëposhtme:

Fushat
string batch.name

Vetëm rezultati. Identifikuesi. Emri i burimit të grupit.

Formati: batches/{batchId} .

string batch.displayName

E detyrueshme. Emri i përcaktuar nga përdoruesi i këtij grupi.

objekti batch.inputConfig object ( InputEmbedContentConfig )

E detyrueshme. Futja e konfigurimit të instancave në të cilat kryhet përpunimi në grup.

objekti batch.output object ( EmbedContentBatchOutput )

Vetëm rezultati. Rezultati i kërkesës së grupit.

varg batch.createTime string ( Timestamp format)

Vetëm rezultati. Koha në të cilën u krijua grupi.

Përdor RFC 3339, ku rezultati i gjeneruar do të jetë gjithmonë i normalizuar sipas Z-së dhe do të përdorë 0, 3, 6 ose 9 shifra thyesore. Pranohen edhe zhvendosje të tjera përveç "Z". Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

varg batch.endTime string ( Timestamp format)

Vetëm rezultati. Koha në të cilën përfundoi përpunimi në grup.

Përdor RFC 3339, ku rezultati i gjeneruar do të jetë gjithmonë i normalizuar sipas Z-së dhe do të përdorë 0, 3, 6 ose 9 shifra thyesore. Pranohen edhe zhvendosje të tjera përveç "Z". Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

varg batch.updateTime string ( Timestamp format)

Vetëm rezultati. Ora në të cilën grupi është përditësuar për herë të fundit.

Përdor RFC 3339, ku rezultati i gjeneruar do të jetë gjithmonë i normalizuar sipas Z-së dhe do të përdorë 0, 3, 6 ose 9 shifra thyesore. Pranohen edhe zhvendosje të tjera përveç "Z". Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

objekti batch.batchStats object ( EmbedContentBatchStats )

Vetëm rezultate. Statistikat rreth grupit.

numërimi i batch.state enum ( BatchState )

Vetëm rezultati. Gjendja e serisë.

varg batch.priority string ( int64 format)

Opsionale. Prioriteti i grupit. Grupimet me një vlerë më të lartë prioriteti do të përpunohen përpara grupit me një vlerë më të ulët prioriteti. Lejohen vlera negative. Vlera parazgjedhur është 0.

Trupi i përgjigjes

Nëse është i suksesshëm, trupi i përgjigjes përmban një instancë të Operation .

EmbedContentResponse

Përgjigja ndaj një EmbedContentRequest .

Fushat
objekti embedding object ( ContentEmbedding )

Vetëm rezultat. Vendosja e gjeneruar nga përmbajtja hyrëse.

Përfaqësimi JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Integrimi i Përmbajtjes

Një listë me numra notues që përfaqësojnë një ngulitje.

Fushat
values[] number

Vlerat e ngulitura.

Përfaqësimi JSON
{
  "values": [
    number
  ]
}

Lloji i Detyrës

Lloji i detyrës për të cilën do të përdoret ngulitja.

Numërime
TASK_TYPE_UNSPECIFIED Çvendos vlerën, e cila do të vendosë si parazgjedhje një nga vlerat e tjera të numërimit.
RETRIEVAL_QUERY Specifikon që teksti i dhënë është një pyetje në një cilësim kërkimi/rikthimi.
RETRIEVAL_DOCUMENT Specifikon që teksti i dhënë është një dokument nga korpusi që po kërkohet.
SEMANTIC_SIMILARITY Specifikon tekstin e dhënë që do të përdoret për STS.
CLASSIFICATION Specifikon që teksti i dhënë do të klasifikohet.
CLUSTERING Specifikon që ngulitjete do të përdoren për grupim.
QUESTION_ANSWERING Specifikon që teksti i dhënë do të përdoret për përgjigjen e pyetjeve.
FACT_VERIFICATION Specifikon që teksti i dhënë do të përdoret për verifikimin e fakteve.
CODE_RETRIEVAL_QUERY Specifikon që teksti i dhënë do të përdoret për rikthimin e kodit.

EmbedContentBatch

Një burim që përfaqëson një grup kërkesash EmbedContent .

Fushat
string model

E detyrueshme. Emri i Model që do të përdoret për gjenerimin e përfundimit.

Formati: models/{model} .

string name

Vetëm rezultati. Identifikuesi. Emri i burimit të grupit.

Formati: batches/{batchId} .

string displayName

E detyrueshme. Emri i përcaktuar nga përdoruesi i këtij grupi.

objekti inputConfig object ( InputEmbedContentConfig )

E detyrueshme. Futja e konfigurimit të instancave në të cilat kryhet përpunimi në grup.

objekti output object ( EmbedContentBatchOutput )

Vetëm rezultati. Rezultati i kërkesës së grupit.

createTime string ( Timestamp format)

Vetëm rezultati. Koha në të cilën u krijua grupi.

Përdor RFC 3339, ku rezultati i gjeneruar do të jetë gjithmonë i normalizuar sipas Z-së dhe do të përdorë 0, 3, 6 ose 9 shifra thyesore. Pranohen edhe zhvendosje të tjera përveç "Z". Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

Vargu i Kohës endTime string ( Timestamp format)

Vetëm rezultati. Koha në të cilën përfundoi përpunimi në grup.

Përdor RFC 3339, ku rezultati i gjeneruar do të jetë gjithmonë i normalizuar sipas Z-së dhe do të përdorë 0, 3, 6 ose 9 shifra thyesore. Pranohen edhe zhvendosje të tjera përveç "Z". Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

vargu updateTime string ( Timestamp format)

Vetëm rezultati. Ora në të cilën grupi është përditësuar për herë të fundit.

Përdor RFC 3339, ku rezultati i gjeneruar do të jetë gjithmonë i normalizuar sipas Z-së dhe do të përdorë 0, 3, 6 ose 9 shifra thyesore. Pranohen edhe zhvendosje të tjera përveç "Z". Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

objekti batchStats object ( EmbedContentBatchStats )

Vetëm rezultate. Statistikat rreth grupit.

numërimi state enum ( BatchState )

Vetëm rezultati. Gjendja e serisë.

varg priority string ( int64 format)

Opsionale. Prioriteti i grupit. Grupimet me një vlerë më të lartë prioriteti do të përpunohen përpara grupit me një vlerë më të ulët prioriteti. Lejohen vlera negative. Vlera parazgjedhur është 0.

Përfaqësimi JSON
{
  "model": string,
  "name": string,
  "displayName": string,
  "inputConfig": {
    object (InputEmbedContentConfig)
  },
  "output": {
    object (EmbedContentBatchOutput)
  },
  "createTime": string,
  "endTime": string,
  "updateTime": string,
  "batchStats": {
    object (EmbedContentBatchStats)
  },
  "state": enum (BatchState),
  "priority": string
}

InputEmbedContentConfig

Konfiguron të dhënat hyrëse për kërkesën në grup.

Fushat
Union type source
E detyrueshme. Burimi i të dhënave hyrëse. source mund të jetë vetëm një nga të mëposhtmet:
fileName string

Emri i File që përmban kërkesat e hyrjes.

objekti i requests object ( InlinedEmbedContentRequests )

Kërkesat që do të përpunohen në grup.

Përfaqësimi JSON
{

  // source
  "fileName": string,
  "requests": {
    object (InlinedEmbedContentRequests)
  }
  // Union type
}

Kërkesa për Përmbajtje të Integruar

Kërkesat që do të përpunohen në grup nëse ofrohen si pjesë e kërkesës për krijim të grupit.

Fushat
objekt requests[] object ( InlinedEmbedContentRequest )

E detyrueshme. Kërkesat që do të përpunohen në grup.

Përfaqësimi JSON
{
  "requests": [
    {
      object (InlinedEmbedContentRequest)
    }
  ]
}

Kërkesë për Përmbajtje të Integruar

Kërkesa që do të përpunohet në grup.

Fushat
objekti request object ( EmbedContentRequest )

E detyrueshme. Kërkesa do të përpunohet në grup.

objekti metadata object ( Struct format)

Opsionale. Meta të dhënat që do të shoqërohen me kërkesën.

Përfaqësimi JSON
{
  "request": {
    object (EmbedContentRequest)
  },
  "metadata": {
    object
  }
}

EmbedContentBatchOutput

Rezultati i një kërkese batch. Ky rezultat kthehet në fushën AsyncBatchEmbedContentResponse ose EmbedContentBatch.output .

Fushat
Union type output
output i kërkesës së grupit mund të jetë vetëm një nga të mëposhtmet:
string responsesFile

Vetëm rezultati. ID-ja e skedarit që përmban përgjigjet. Skedari do të jetë një skedar JSONL me një përgjigje të vetme për rresht. Përgjigjet do të jenë mesazhe EmbedContentResponse të formatuara si JSON. Përgjigjet do të shkruhen në të njëjtën renditje si kërkesat e hyrjes.

objekti inlinedResponses object ( InlinedEmbedContentResponses )

Vetëm rezultati. Përgjigjet ndaj kërkesave në grup. Kthehet kur grupi është ndërtuar duke përdorur kërkesa të integruara. Përgjigjet do të jenë në të njëjtën renditje si kërkesat e hyrjes.

Përfaqësimi JSON
{

  // output
  "responsesFile": string,
  "inlinedResponses": {
    object (InlinedEmbedContentResponses)
  }
  // Union type
}

Përgjigjet e InlinedEmbedContent

Përgjigjet ndaj kërkesave në grup.

Fushat
objekt inlinedResponses[] object ( InlinedEmbedContentResponse )

Vetëm rezultate. Përgjigjet ndaj kërkesave në grup.

Përfaqësimi JSON
{
  "inlinedResponses": [
    {
      object (InlinedEmbedContentResponse)
    }
  ]
}

Përgjigje e Përmbajtjes së Vendosur në Rresht

Përgjigja ndaj një kërkese të vetme në grup.

Fushat
objekti metadata object ( Struct format)

Vetëm rezultate. Meta të dhënat e shoqëruara me kërkesën.

Union type output
output i kërkesës mund të jetë vetëm një nga të mëposhtmet:
objekt error object ( Status )

Vetëm rezultati. Gabimi i hasur gjatë përpunimit të kërkesës.

object ( EmbedContentResponse ) response (EmbedContentResponse)

Vetëm rezultati. Përgjigja ndaj kërkesës.

Përfaqësimi JSON
{
  "metadata": {
    object
  },

  // output
  "error": {
    object (Status)
  },
  "response": {
    object (EmbedContentResponse)
  }
  // Union type
}

EmbedContentBatchStats

Statistikat rreth grupit.

Fushat
vargu requestCount string ( int64 format)

Vetëm rezultati. Numri i kërkesave në grup.

vargu successfulRequestCount string ( int64 format)

Vetëm rezultate. Numri i kërkesave që u përpunuan me sukses.

vargu failedRequestCount string ( int64 format)

Vetëm rezultate. Numri i kërkesave që dështuan të përpunoheshin.

vargu pendingRequestCount string ( int64 format)

Vetëm rezultate. Numri i kërkesave që janë ende në pritje të përpunimit.

Përfaqësimi JSON
{
  "requestCount": string,
  "successfulRequestCount": string,
  "failedRequestCount": string,
  "pendingRequestCount": string
}