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

Përgjigja ndaj një EmbedContentRequest .

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

Fushat
objekt embedding object ( ContentEmbedding )

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

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

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

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
}

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.