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 sorumlu olsa da kullanıcılar, girdikleri veriler ve ortaya çıkan yerleştirmeler konusunda tam 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'ın Hizmet Şartları'na tabidir.

Yöntem: models.embedContent

Belirtilen Gemini yerleştirme modelini kullanarak giriş Content değerinden bir 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ı. Yerleştirmelerin kullanılacağı isteğe bağlı görev türü. Daha eski modellerde (models/embedding-001) desteklenmez.

title string

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

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

outputDimensionality integer

İsteğe bağlı. Çı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

Başarılıysa yanıt metni, EmbedContentResponse öğesinin bir örneğini içerir.

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ştirme işlemi, toplu istekte sağlanan sırayla yapılır.

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

Yöntem: models.asyncBatchEmbedContent

Toplu işlem için models.embedContent istekten oluşan bir grubu sıraya alır. GenerativeService içinde models.batchEmbedContents işleyicimiz var ancak senkronize edildi. Bu nedenle, karışıklığı önlemek için bu öğeyi Async olarak adlandırıyoruz.

Uç nokta

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

Yol parametreleri

batch.model string

Zorunlu. Tamamlama oluşturmak için kullanılacak Model öğesinin adı.

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

İstek içeriği

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

Alanlar
batch.name string

Yalnızca çıkış. Tanımlayıcı. Toplu işin kaynak adı.

Biçim: batches/{batchId}.

batch.displayName string

Zorunlu. Bu toplu işlemin kullanıcı tanımlı adı.

batch.inputConfig object (InputEmbedContentConfig)

Zorunlu. Toplu işleme işlemlerinin gerçekleştirildiği örneklerin giriş yapılandırması.

batch.output object (EmbedContentBatchOutput)

Yalnızca çıkış. Toplu isteğin çıkışı.

batch.createTime string (Timestamp format)

Yalnızca çıkış. Toplu işlemin oluşturulduğu zaman.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

batch.endTime string (Timestamp format)

Yalnızca çıkış. Toplu işleme işleminin tamamlandığı zaman.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

batch.updateTime string (Timestamp format)

Yalnızca çıkış. Toplu işlemin son güncellenme zamanı.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

batch.batchStats object (EmbedContentBatchStats)

Yalnızca çıkış. Toplu işlemle ilgili istatistikler.

batch.state enum (BatchState)

Yalnızca çıkış. Toplu işlemin durumu.

batch.priority string (int64 format)

İsteğe bağlı. Toplu işlemin önceliği. Daha yüksek öncelik değerine sahip toplu işlemler, daha düşük öncelik değerine sahip toplu işlemlerden önce işlenir. Negatif değerlere izin verilir. Varsayılan değer 0'dır.

Yanıt gövdesi

Başarılıysa yanıt metni, Operation öğesinin bir örneğini içerir.

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ı. Yerleştirmelerin kullanılacağı isteğe bağlı görev türü. Daha eski modellerde (models/embedding-001) desteklenmez.

title string

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

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

outputDimensionality integer

İsteğe bağlı. Çı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
}

EmbedContentResponse

EmbedContentRequest yanıtı.

Alanlar
embedding object (ContentEmbedding)

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

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

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 doğruluk kontrolü için kullanılacağını belirtir.
CODE_RETRIEVAL_QUERY Belirtilen metnin kod alma için kullanılacağını belirtir.

EmbedContentBatch

Bir grup EmbedContent isteğini temsil eden kaynak.

Alanlar
model string

Zorunlu. Tamamlama oluşturmak için kullanılacak Model öğesinin adı.

Biçim: models/{model}.

name string

Yalnızca çıkış. Tanımlayıcı. Toplu işin kaynak adı.

Biçim: batches/{batchId}.

displayName string

Zorunlu. Bu toplu işlemin kullanıcı tanımlı adı.

inputConfig object (InputEmbedContentConfig)

Zorunlu. Toplu işleme işlemlerinin gerçekleştirildiği örneklerin giriş yapılandırması.

output object (EmbedContentBatchOutput)

Yalnızca çıkış. Toplu isteğin çıkışı.

createTime string (Timestamp format)

Yalnızca çıkış. Toplu işlemin oluşturulduğu zaman.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

endTime string (Timestamp format)

Yalnızca çıkış. Toplu işleme işleminin tamamlandığı zaman.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Yalnızca çıkış. Toplu işlemin son güncellenme zamanı.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

batchStats object (EmbedContentBatchStats)

Yalnızca çıkış. Toplu işlemle ilgili istatistikler.

state enum (BatchState)

Yalnızca çıkış. Toplu işlemin durumu.

priority string (int64 format)

İsteğe bağlı. Toplu işlemin önceliği. Daha yüksek öncelik değerine sahip toplu işlemler, daha düşük öncelik değerine sahip toplu işlemlerden önce işlenir. Negatif değerlere izin verilir. Varsayılan değer 0'dır.

JSON gösterimi
{
  "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

Toplu istek için girişi yapılandırır.

Alanlar
source Union type
Zorunlu. Girişin kaynağı. source yalnızca aşağıdakilerden biri olabilir:
fileName string

Giriş isteklerini içeren File öğesinin adı.

requests object (InlinedEmbedContentRequests)

Toplu işlemde işlenecek istekler.

JSON gösterimi
{

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

InlinedEmbedContentRequests

Toplu oluşturma isteğinin bir parçası olarak sağlanırsa toplu işlemde işlenecek istekler.

Alanlar
requests[] object (InlinedEmbedContentRequest)

Zorunlu. Toplu işlemde işlenecek istekler.

JSON gösterimi
{
  "requests": [
    {
      object (InlinedEmbedContentRequest)
    }
  ]
}

InlinedEmbedContentRequest

Toplu işlemde işlenecek istek.

Alanlar
request object (EmbedContentRequest)

Zorunlu. Toplu işlemde işlenecek istek.

metadata object (Struct format)

İsteğe bağlı. İstekle ilişkilendirilecek meta veriler.

JSON gösterimi
{
  "request": {
    object (EmbedContentRequest)
  },
  "metadata": {
    object
  }
}

EmbedContentBatchOutput

Toplu isteğin çıkışı. Bu değer, AsyncBatchEmbedContentResponse veya EmbedContentBatch.output alanında döndürülür.

Alanlar
output Union type
Toplu isteğin çıkışı. output yalnızca aşağıdakilerden biri olabilir:
responsesFile string

Yalnızca çıkış. Yanıtları içeren dosyanın dosya kimliği. Dosya, her satırda tek bir yanıt içeren bir JSONL dosyası olur. Yanıtlar, JSON olarak biçimlendirilmiş EmbedContentResponse mesajlarıdır. Yanıtlar, giriş istekleriyle aynı sırada yazılır.

inlinedResponses object (InlinedEmbedContentResponses)

Yalnızca çıkış. Toplu işteki isteklere verilen yanıtlar. Toplu işlem, satır içi istekler kullanılarak oluşturulduğunda döndürülür. Yanıtlar, giriş istekleriyle aynı sırada yer alır.

JSON gösterimi
{

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

InlinedEmbedContentResponses

Toplu işteki isteklere verilen yanıtlar.

Alanlar
inlinedResponses[] object (InlinedEmbedContentResponse)

Yalnızca çıkış. Toplu işteki isteklere verilen yanıtlar.

JSON gösterimi
{
  "inlinedResponses": [
    {
      object (InlinedEmbedContentResponse)
    }
  ]
}

InlinedEmbedContentResponse

Toplu işlemdeki tek bir isteğe verilen yanıt.

Alanlar
metadata object (Struct format)

Yalnızca çıkış. İstekle ilişkili meta veriler.

output Union type
İsteğin çıktısı. output yalnızca aşağıdakilerden biri olabilir:
error object (Status)

Yalnızca çıkış. İstek işlenirken karşılaşılan hata.

response object (EmbedContentResponse)

Yalnızca çıkış. İsteğe verilen yanıt.

JSON gösterimi
{
  "metadata": {
    object
  },

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

EmbedContentBatchStats

Toplu işlemle ilgili istatistikler.

Alanlar
requestCount string (int64 format)

Yalnızca çıkış. Toplu işlemdeki istek sayısı.

successfulRequestCount string (int64 format)

Yalnızca çıkış. Başarıyla işlenen istek sayısı.

failedRequestCount string (int64 format)

Yalnızca çıkış. İşlenemeyen isteklerin sayısı.

pendingRequestCount string (int64 format)

Yalnızca çıkış. Hâlâ işlenmeyi bekleyen istek sayısı.

JSON gösterimi
{
  "requestCount": string,
  "successfulRequestCount": string,
  "failedRequestCount": string,
  "pendingRequestCount": string
}