Embeddings

Gömme, metin girişinin sayısal bir gösterimidir. Bu gösterim, kümeleme, benzerlik ölçümü ve bilgi alma gibi bir dizi benzersiz kullanım alanını mümkün kılar. Giriş için Embeddings kılavuzuna göz atın.

Yeni içerik oluşturan üretken yapay zeka modellerinin aksine, Gemini Embedding modeli yalnızca giriş verilerinizin biçimini sayısal bir temsile dönüştürmek için tasarlanmıştır. Google, giriş verilerinizin biçimini istenen sayısal biçime dönüştüren bir yerleştirme modeli sağlamaktan sorumludur. Ancak kullanıcılar, girdikleri veriler ve ortaya çıkan yerleştirmelerle ilgili tüm sorumluluğu üstlenir. Gemini Embedding modelini kullanarak yüklediğiniz tüm içeriklerle ilgili gerekli haklara sahip olduğunuzu onaylarsınız. Başkalarının fikri mülkiyet veya gizlilik haklarını ihlal eden içerikler üretmeyin. Bu hizmeti kullanımınız Yasaklanan Kullanım Politikamıza ve Google Hizmet Şartları'na tabidir.

Yöntem: models.embedContent

Belirtilen Gemini yerleştirme modelini kullanarak girişten Content metin yerleştirme vektörü oluşturur.

Uç nokta

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

Yol parametreleri

model string

Zorunlu. Modelin kaynak adı. Bu, Model'in kullanacağı bir kimlik görevi görür.

Bu ad, models.list yöntemi tarafından döndürülen bir model adıyla eşleşmelidir.

Biçim: models/{model} models/{model} biçimindedir.

İstek içeriği

İstek metni aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
content object (Content)

Zorunlu. Yerleştirilecek içerik. Yalnızca parts.text alanları sayılır.

taskType enum (TaskType)

İsteğe bağlıdır. Yerleştirme işlemlerinin kullanılacağı isteğe bağlı görev türü. Daha eski modellerde (models/embedding-001) desteklenmez.

title string

İsteğe bağlıdır. Metin için isteğe bağlı başlık. Yalnızca TaskType RETRIEVAL_DOCUMENT olduğunda geçerlidir.

Not: RETRIEVAL_DOCUMENT için title belirtmek, alma işlemi için daha kaliteli yerleştirmeler sağlar.

outputDimensionality integer

İsteğe bağlıdır. Çıkış yerleştirme için isteğe bağlı olarak azaltılmış boyut. Ayarlandığında, çıkış yerleştirmesindeki aşırı değerler sondan kesilir. Yalnızca 2024'ten itibaren çıkan yeni modellerde desteklenir. Önceki modeli (models/embedding-001) kullanıyorsanız bu değeri ayarlayamazsınız.

Örnek istek

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

Go

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

kabuk

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

Yanıt gövdesi

EmbedContentRequest yanıtı.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
embedding object (ContentEmbedding)

Yalnızca çıkış. Giriş içeriğinden oluşturulan yerleştirme.

JSON gösterimi
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Yöntem: models.batchEmbedContents

Content nesneleri olarak temsil edilen bir dizi dizeden oluşan giriş Content değerinden birden fazla gömme vektörü oluşturur.EmbedContentRequest

Uç nokta

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

Yol parametreleri

model string

Zorunlu. Modelin kaynak adı. Bu, Model'in kullanacağı bir kimlik görevi görür.

Bu ad, models.list yöntemi tarafından döndürülen bir model adıyla eşleşmelidir.

Biçim: models/{model} models/{model} biçimindedir.

İstek içeriği

İstek metni aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
requests[] object (EmbedContentRequest)

Zorunlu. Toplu iş için yerleştirme istekleri. Bu isteklerin her birindeki model, BatchEmbedContentsRequest.model ile belirtilen modelle eşleşmelidir.

Örnek istek

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

Go

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

kabuk

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

Yanıt gövdesi

BatchEmbedContentsRequest yanıtı.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
embeddings[] object (ContentEmbedding)

Yalnızca çıkış. Her isteğin yerleştirmeleri, toplu istekte sağlanan sırayla.

JSON gösterimi
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Yerleştirilecek model için Content içeren istek.

Alanlar
model string

Zorunlu. Modelin kaynak adı. Bu, Model'in kullanacağı bir kimlik görevi görür.

Bu ad, models.list yöntemi tarafından döndürülen bir model adıyla eşleşmelidir.

Biçim: models/{model}

content object (Content)

Zorunlu. Yerleştirilecek içerik. Yalnızca parts.text alanları sayılır.

taskType enum (TaskType)

İsteğe bağlıdır. Yerleştirme işlemlerinin kullanılacağı isteğe bağlı görev türü. Daha eski modellerde (models/embedding-001) desteklenmez.

title string

İsteğe bağlıdır. Metin için isteğe bağlı başlık. Yalnızca TaskType RETRIEVAL_DOCUMENT olduğunda geçerlidir.

Not: RETRIEVAL_DOCUMENT için title belirtmek, alma işlemi için daha kaliteli yerleştirmeler sağlar.

outputDimensionality integer

İsteğe bağlıdır. Çıkış yerleştirme için isteğe bağlı olarak azaltılmış boyut. Ayarlandığında, çıkış yerleştirmesindeki aşırı değerler sondan kesilir. Yalnızca 2024'ten itibaren çıkan yeni modellerde desteklenir. Önceki modeli (models/embedding-001) kullanıyorsanız bu değeri ayarlayamazsınız.

JSON gösterimi
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

Bir yerleştirmeyi temsil eden kayan nokta sayılarının listesi.

Alanlar
values[] number

Yerleştirme değerleri.

JSON gösterimi
{
  "values": [
    number
  ]
}

TaskType

Yerleştirmenin kullanılacağı görev türü.

Sıralamalar
TASK_TYPE_UNSPECIFIED Diğer enum değerlerinden birine varsayılan olarak ayarlanacak olan ayarlanmamış değer.
RETRIEVAL_QUERY Belirtilen metnin, arama/alma ayarındaki bir sorgu olduğunu belirtir.
RETRIEVAL_DOCUMENT Belirtilen metnin, aranan külliyattaki bir belge olduğunu belirtir.
SEMANTIC_SIMILARITY Belirtilen metnin STS için kullanılacağını belirtir.
CLASSIFICATION Belirtilen metnin sınıflandırılacağını belirtir.
CLUSTERING Yerleştirilmiş öğelerin kümeleme için kullanılacağını belirtir.
QUESTION_ANSWERING Belirtilen metnin soru yanıtlama için kullanılacağını belirtir.
FACT_VERIFICATION Belirtilen metnin, gerçeklik doğrulaması için kullanılacağını belirtir.
CODE_RETRIEVAL_QUERY Belirtilen metnin kod alma için kullanılacağını belirtir.