Embeddings

Embeddings janë një paraqitje numerike e futjes së tekstit që hap një numër rastesh unike përdorimi, 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ë AI që krijojnë përmbajtje të re, modeli Gemini Embedding synon vetëm të transformojë formatin e të dhënave tuaja hyrëse në një paraqitje numerike. Ndërsa Google është përgjegjës për ofrimin e një modeli të integruar 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ë futin dhe futjet që rezultojnë. Duke përdorur modelin Gemini Embedding ju konfirmoni se keni të drejtat e nevojshme për çdo përmbajtje që ngarkoni. Mos krijoni përmbajtje që cenon pronësinë intelektuale ose të drejtat e privatësisë së të tjerëve. Përdorimi juaj i këtij shërbimi është subjekt i Politikës sonë të Përdorimit të Ndaluar dhe Kushteve të Shërbimit të Google .

Metoda: modele.embedPërmbajtja

Gjeneron një vektor ngulitjeje teksti nga Përmbajtja Content duke përdorur modelin e specifikuar Gemini Embedding .

Pika përfundimtare

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

Parametrat e rrugës

string model

E detyrueshme. Emri i burimit të modelit. Kjo shërben si një ID për Modelin për t'u përdorur.

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 për t'u integruar. Do të numërohen vetëm parts.text e tekstit.

taskType enum ( TaskType )

Fakultative. Lloji opsional i detyrës për të cilin do të përdoren futjet. Nuk mbështetet në modelet e mëparshme ( models/embedding-001 ).

string title

Fakultative. Një titull opsional për tekstin. Zbatohet vetëm kur lloji i detyrës është RETRIEVAL_DOCUMENT .

Shënim: Përcaktimi i një title për RETRIEVAL_DOCUMENT ofron ngulitje me cilësi më të mirë për rikthim.

outputDimensionality integer

Fakultative. Dimensioni opsional i reduktuar për futjen e daljes. Nëse vendoset, vlerat e tepërta në futjen e daljes shkurtohen nga fundi. Mbështetur nga modele më të reja vetëm që nga viti 2024. Ju nuk mund ta vendosni këtë vlerë nëse përdorni modelin e mëparshëm ( models/embedding-001 ).

Shembull i kërkesës

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)

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

Shkoni

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

Shell

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 reagimit

Nëse është i suksesshëm, trupi i përgjigjes përmban një shembull të EmbedContentResponse .

Metoda: modele.batchEmbedContents

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

Pika përfundimtare

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

Parametrat e rrugës

string model

E detyrueshme. Emri i burimit të modelit. Kjo shërben si një ID për Modelin për t'u përdorur.

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. Vendosja e kërkesave për grupin. Modeli në secilën prej këtyre kërkesave duhet të përputhet me modelin e specifikuar BatchEmbedContentsRequest.model .

Shembull i kërkesës

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)

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

Shkoni

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

Shell

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 reagimit

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
objekt embeddings[] object ( ContentEmbedding )

Vetëm dalje. Përfshirjet për secilën kërkesë, në të njëjtin rend siç parashikohet në kërkesën e grupit.

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

Metoda: modele.asyncBatchEmbedContent

Vendos në radhë një grup models.embedContent për përmbajtje për përpunim grupor. Ne kemi një mbajtës models.batchEmbedContentsGenerativeService , por ai u sinkronizua. Pra, ne e quajmë këtë të jetë Async për të shmangur konfuzionin.

Pika përfundimtare

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

Parametrat e rrugës

batch.model string

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

Formati: models/{model} . Ajo 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
batch.name string

Vetëm dalje. Identifikues. Emri i burimit të grupit.

Formati: batches/{batchId} .

string batch.displayName Emri

E detyrueshme. Emri i përcaktuar nga përdoruesi i kësaj baze.

Objekti batch.inputConfig object ( InputEmbedContentConfig )

E detyrueshme. Konfigurimi i hyrjes së rasteve në të cilat kryhet përpunimi në grup.

object ( EmbedContentBatchOutput ) batch.output ( EmbedContentBatchOutput )

Vetëm dalje. Prodhimi i kërkesës së grupit.

vargu batch.createTime string ( Timestamp format)

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

Përdor RFC 3339, ku prodhimi i gjeneruar gjithmonë do të normalizohet me Z dhe do të përdorë 0, 3, 6 ose 9 shifra të pjesshme. Kompensimet e tjera përveç "Z" pranohen gjithashtu. Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

Vargu batch.endTime string ( Timestamp format)

Vetëm dalje. Koha në të cilën përfundoi përpunimi i grupit.

Përdor RFC 3339, ku prodhimi i gjeneruar gjithmonë do të normalizohet me Z dhe do të përdorë 0, 3, 6 ose 9 shifra të pjesshme. Kompensimet e tjera përveç "Z" pranohen gjithashtu. Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

batch.updateTime string ( Timestamp format)

Vetëm dalje. Koha në të cilën grupi u përditësua për herë të fundit.

Përdor RFC 3339, ku prodhimi i gjeneruar gjithmonë do të normalizohet me Z dhe do të përdorë 0, 3, 6 ose 9 shifra të pjesshme. Kompensimet e tjera përveç "Z" pranohen gjithashtu. Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

object ( EmbedContentBatchStats ) batch.batchStats ( EmbedContentBatchStats )

Vetëm dalje. Statistikat në lidhje me grupin.

numër batch.state enum ( BatchState )

Vetëm dalje. Gjendja e grupit.

vargu batch.priority string ( int64 format)

Fakultative. Prioriteti i grupit. Grupet me vlerë prioritare më të lartë do të përpunohen përpara grupeve me vlerë prioritare më të ulët. Vlerat negative janë të lejuara. Parazgjedhja është 0.

Trupi i reagimit

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

EmbedContentRequest

Kërkesë që përmban Content që modeli të futet.

Fushat
string model

E detyrueshme. Emri i burimit të modelit. Kjo shërben si një ID për Modelin për t'u përdorur.

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

Formati: models/{model}

objekti content object ( Content )

E detyrueshme. Përmbajtja për t'u integruar. Do të numërohen vetëm parts.text e tekstit.

taskType enum ( TaskType )

Fakultative. Lloji opsional i detyrës për të cilin do të përdoren futjet. Nuk mbështetet në modelet e mëparshme ( models/embedding-001 ).

string title

Fakultative. Një titull opsional për tekstin. Zbatohet vetëm kur lloji i detyrës është RETRIEVAL_DOCUMENT .

Shënim: Përcaktimi i një title për RETRIEVAL_DOCUMENT ofron ngulitje me cilësi më të mirë për rikthim.

outputDimensionality integer

Fakultative. Dimensioni opsional i reduktuar për futjen e daljes. Nëse vendoset, vlerat e tepërta në futjen e daljes shkurtohen nga fundi. Mbështetur nga modele më të reja vetëm që nga viti 2024. Ju nuk mund ta vendosni këtë vlerë nëse përdorni modelin e mëparshëm ( models/embedding-001 ).

Përfaqësimi JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

EmbedContentResponse

Përgjigja ndaj një EmbedContentRequest .

Fushat
objekt embedding object ( ContentEmbedding )

Vetëm dalje. Përfshirja e krijuar nga përmbajtja hyrëse.

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

Përfshirja e përmbajtjes

Një listë e notave që përfaqësojnë një ngulitje.

Fushat
values[] number

Vlerat e ngulitjes.

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

Lloji i detyrës

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

Enums
TASK_TYPE_UNSPECIFIED Vlera e çaktivizuar, e cila do të jetë e paracaktuar në një nga vlerat e tjera të numrit.
RETRIEVAL_QUERY Përcakton se teksti i dhënë është një pyetje në një cilësim kërkimi/rikthimi.
RETRIEVAL_DOCUMENT Përcakton se teksti i dhënë është një dokument nga korpusi që kërkohet.
SEMANTIC_SIMILARITY Përcakton se teksti i dhënë do të përdoret për STS.
CLASSIFICATION Përcakton se teksti i dhënë do të klasifikohet.
CLUSTERING Specifikon që futjet do të përdoren për grumbullim.
QUESTION_ANSWERING Përcakton se teksti i dhënë do të përdoret për përgjigjen e pyetjeve.
FACT_VERIFICATION Përcakton që teksti i dhënë do të përdoret për verifikimin e fakteve.
CODE_RETRIEVAL_QUERY Përcakton 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 dalje. Identifikues. Emri i burimit të grupit.

Formati: batches/{batchId} .

string displayName

E detyrueshme. Emri i përcaktuar nga përdoruesi i kësaj baze.

object ( InputEmbedContentConfig ) inputConfig (InputEmbedContentConfig)

E detyrueshme. Konfigurimi i hyrjes së rasteve në të cilat kryhet përpunimi në grup.

objekti output object ( EmbedContentBatchOutput )

Vetëm dalje. Prodhimi i kërkesës së grupit.

createTime string ( Timestamp format)

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

Përdor RFC 3339, ku prodhimi i gjeneruar gjithmonë do të normalizohet me Z dhe do të përdorë 0, 3, 6 ose 9 shifra të pjesshme. Kompensimet e tjera përveç "Z" pranohen gjithashtu. Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

vargu endTime string ( Timestamp format)

Vetëm dalje. Koha në të cilën përfundoi përpunimi i grupit.

Përdor RFC 3339, ku prodhimi i gjeneruar gjithmonë do të normalizohet me Z dhe do të përdorë 0, 3, 6 ose 9 shifra të pjesshme. Kompensimet e tjera përveç "Z" pranohen gjithashtu. 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 dalje. Koha në të cilën grupi u përditësua për herë të fundit.

Përdor RFC 3339, ku prodhimi i gjeneruar gjithmonë do të normalizohet me Z dhe do të përdorë 0, 3, 6 ose 9 shifra të pjesshme. Kompensimet e tjera përveç "Z" pranohen gjithashtu. Shembuj: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" ose "2014-10-02T15:01:23+05:30" .

object ( EmbedContentBatchStats ) batchStats ( EmbedContentBatchStats )

Vetëm dalje. Statistikat në lidhje me grupin.

numri i state enum ( BatchState )

Vetëm dalje. Gjendja e grupit.

vargu priority string ( int64 format)

Fakultative. Prioriteti i grupit. Grupet me vlerë prioritare më të lartë do të përpunohen përpara grupeve me vlerë prioritare më të ulët. Vlerat negative janë të lejuara. Parazgjedhja ë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 hyrjen në kërkesën e grupit.

Fushat
source Union type
E detyrueshme. Burimi i hyrjes. source mund të jetë vetëm një nga sa vijon:
fileName string

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

objekti requests object ( InlinedEmbedContentRequests )

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

Përfaqësimi JSON
{

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

InlinedEmbedContentRequests

Kërkesat për t'u përpunuar në grup nëse ofrohen si pjesë e kërkesës për krijimin e grupit.

Fushat
requests[] object ( InlinedEmbedContentRequest )

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

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

InlinedEmbedContentRequest

Kërkesa për t'u përpunuar në grup.

Fushat
objekti request object ( EmbedContentRequest )

E detyrueshme. Kërkesa për t'u përpunuar në grup.

object ( Struct format) metadata (Formati i strukturës)

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

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

EmbedContentBatchOutput

Prodhimi i një kërkese grupi. Kjo kthehet në fushën AsyncBatchEmbedContentResponse ose në fushën EmbedContentBatch.output .

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

Vetëm dalje. ID-ja e skedarit të 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 mënyrë si kërkesat hyrëse.

object ( InlinedEmbedContentResponses ) inlinedResponses (InlinedEmbedContentResponses)

Vetëm dalje. Përgjigjet ndaj kërkesave në grup. U kthye kur grupi u ndërtua duke përdorur kërkesa të rreshtuara. Përgjigjet do të jenë në të njëjtin rend si kërkesat e hyrjes.

Përfaqësimi JSON
{

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

InlinedEmbedContent Responses

Përgjigjet ndaj kërkesave në grup.

Fushat
inlinedResponses[] object ( InlinedEmbedContentResponse )

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

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

InlinedEmbedContentResponse

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

Fushat
object ( Struct format) metadata (Formati i strukturës)

Vetëm dalje. Meta të dhënat e lidhura me kërkesën.

Union type output
Prodhimi i kërkesës. output mund të jetë vetëm një nga sa vijon:
error object ( Status )

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

objekti response object ( EmbedContentResponse )

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

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

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

EmbedContentBatchStats

Statistikat në lidhje me grupin.

Fushat
Vargu i requestCount string ( int64 format)

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

vargu successfulRequestCount string ( int64 format)

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

string ( int64 format) failedRequestCount (format int64)

Vetëm dalje. Numri i kërkesave që nuk u përpunuan.

pendingRequestCount string ( int64 format)

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

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