Embeddings

Yerleşimler, metin girişinin sayısal bir temsilidir ve gruplandırma, benzerlik ölçümü ve bilgi alma gibi çeşitli benzersiz kullanım alanlarına olanak tanır. Giriş için Embeddings guide (Embeddings rehberi) başlıklı makaleyi inceleyin.

Yöntem: models.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ğı kimliktir.

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ü. 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ış yerleştirmesinde aşırı değerler sondan kısaltılır. 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

import google.generativeai as genai

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:

Alanlar
embedding object (ContentEmbedding)

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

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

Yöntem: models.batchEmbedContents

EmbedContentRequest nesneleri olarak temsil edilen bir dize grubundan oluşan giriş Content'ten birden fazla yerleştirme vektörü oluşturur.

Uç nokta

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

Yol parametreleri

model string

Zorunlu. Modelin kaynak adı. Bu, modelin kullanacağı kimliktir.

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

import google.generativeai as genai

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 için verilen 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ış. Toplu istekte sağlanan sırayla her istek için yerleştirilmeler.

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

EmbedContentRequest

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

Alanlar
model string

Zorunlu. Modelin kaynak adı. Bu, modelin kullanacağı kimliktir.

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ü. 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ştirmesi için isteğe bağlı azaltılmış boyut. Ayarlanırsa çıkıştaki yerleştirilmiş değerlerdeki aşırı değer sondan itibaren kesilir. Yalnızca 2024'ten sonraki 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şimi temsil eden kayan noktaların listesi.

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, gerçek doğrulama için kullanılacağını belirtir.