Embeddings

Yerleştirmeler, metin girişlerinin sayısal bir temsilidir ve kümeleme, benzerlik ölçümü ve bilgi alımı gibi bir dizi benzersiz kullanım alanı sunar. Tanıtım için Yerleştirme kılavuzuna göz atın.

Yöntem: modeller.embedContent

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

Uç nokta

yayınlayacağım https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

Yol parametreleri

model string

Zorunlu. Modelin kaynak adı. Bu, modelin 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 gövdesi, aşağıdaki yapıya sahip verileri içerir:

Alanlar
content object (Content)

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

taskType enum (TaskType)

İsteğe bağlı. Yerleştirmelerin kullanılacağı isteğe bağlı görev türü. Yalnızca models/embedding-001 için ayarlanabilir.

title string

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

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

outputDimensionality integer

İsteğe bağlı. Çıkış yerleştirme için isteğe bağlı küçültülmüş boyut. Ayarlanırsa çıkıştaki yerleştirilmiş değerlerdeki aşırı değer sondan itibaren kesilir. Yalnızca 2024'ten beri daha yeni modeller tarafından desteklenir. Önceki modeli (models/embedding-001) kullanıyorsanız bu değeri ayarlayamazsınız.

Örnek istek

Python


text = "Hello World!"
result = genai.embed_content(
    model="models/text-embedding-004", content=text, output_dimensionality=10
)
print(result["embedding"])

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

const result = await model.embedContent("Hello world!");

console.log(result.embedding);

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
    "content": {
    "parts":[{
      "text": "Hello world"}]}, }' 2> /dev/null | head

Yanıt gövdesi

EmbedContentRequest için verilen yanıt.

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

ziyaret edin.
Alanlar
embedding object (ContentEmbedding)

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

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

Yöntem: modelleri.batchEmbedContents

Content girişinden birden fazla yerleştirme vektörü oluşturur. Bu giriş, EmbedContentRequest nesneleri olarak temsil edilen bir dize grubundan oluşur.

Uç nokta

yayınlayacağım https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

Yol parametreleri

model string

Zorunlu. Modelin kaynak adı. Bu, modelin 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 gövdesi, aşağıdaki yapıya sahip verileri içerir:

Alanlar
requests[] object (EmbedContentRequest)

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

Örnek istek

Python

texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = genai.embed_content(
    model="models/text-embedding-004", content=texts, output_dimensionality=10
)
print(result)

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

function textToRequest(text) {
  return { content: { role: "user", parts: [{ text }] } };
}

const result = await model.batchEmbedContents({
  requests: [
    textToRequest("What is the meaning of life?"),
    textToRequest("How much wood would a woodchuck chuck?"),
    textToRequest("How does the brain work?"),
  ],
});

console.log(result.embeddings);

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/text-embedding-004",
      "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:

ziyaret edin.
Alanlar
embeddings[] object (ContentEmbedding)

Yalnızca çıkış. Her istek için, toplu istekte belirtilen sırayla yerleştirmeler.

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

EmbedContentRequest

Modelin yerleştireceği Content öğesini içeren istek.

ziyaret edin.
Alanlar
model string

Zorunlu. Modelin kaynak adı. Bu, modelin 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ılacaktır.

taskType enum (TaskType)

İsteğe bağlı. Yerleştirmelerin kullanılacağı isteğe bağlı görev türü. Yalnızca models/embedding-001 için ayarlanabilir.

title string

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

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

outputDimensionality integer

İsteğe bağlı. Çıkış yerleştirme için isteğe bağlı küçültülmüş boyut. Ayarlanırsa çıkıştaki yerleştirilmiş değerlerdeki aşırı değer sondan itibaren kesilir. Yalnızca 2024'ten beri daha yeni modeller tarafından 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

Yerleştirmeyi temsil eden kayan öğelerin listesi.

ziyaret edin.
Alanlar
values[] number

Yerleştirme değerleri.

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

TaskType

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

Sıralamalar
TASK_TYPE_UNSPECIFIED Değer ayarı kaldırıldı. Bu değer, varsayılan olarak diğer enum değerlerinden birine ayarlanır.
RETRIEVAL_QUERY Belirtilen metnin, arama/alma ayarındaki bir sorgu olduğunu belirtir.
RETRIEVAL_DOCUMENT Belirtilen metnin, aranmakta olan topluluktaki bir doküman 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ştirmelerin kümeleme için kullanılacağını belirtir.
QUESTION_ANSWERING Belirtilen metnin, soruyu yanıtlamak için kullanılacağını belirtir.
FACT_VERIFICATION Belirtilen metnin doğruluk doğrulaması için kullanılacağını belirtir.