Embeddings

Embeddings adalah representasi numerik dari input teks yang membuka sejumlah kasus penggunaan unik, seperti pengelompokan, pengukuran kesamaan, dan pengambilan informasi. Sebagai pengantar, lihat Panduan penyematan.

Metode: models.embedContent

Menghasilkan vektor penyematan teks dari Content input menggunakan model Embedding Gemini yang ditentukan.

Endpoint

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

Parameter jalur

model string

Wajib diisi. Nama resource model. Ini berfungsi sebagai ID yang akan digunakan Model.

Nama ini harus cocok dengan nama model yang ditampilkan oleh metode models.list.

Format: models/{model} Formatnya adalah models/{model}.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Bidang
content object (Content)

Wajib diisi. Konten yang akan disematkan. Hanya kolom parts.text yang akan dihitung.

taskType enum (TaskType)

Opsional. Jenis tugas opsional yang penyematan akan digunakan. Hanya dapat disetel untuk models/embedding-001.

title string

Opsional. Judul opsional untuk teks. Hanya berlaku jika TaskType adalah RETRIEVAL_DOCUMENT.

Catatan: Menentukan title untuk RETRIEVAL_DOCUMENT akan memberikan penyematan dengan kualitas yang lebih baik untuk pengambilan.

outputDimensionality integer

Opsional. Dimensi opsional yang dikurangi untuk penyematan output. Jika disetel, nilai yang berlebihan dalam penyematan output akan dipotong dari bagian akhir. Hanya didukung oleh model yang lebih baru sejak 2024. Anda tidak dapat menetapkan nilai ini jika menggunakan model sebelumnya (models/embedding-001).

Contoh permintaan

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

Shell

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

Isi respons

Respons terhadap EmbedContentRequest.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Bidang
embedding object (ContentEmbedding)

Hanya output. Penyematan yang dihasilkan dari konten input.

Representasi JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Metode: models.batchEmbedContents

Menghasilkan beberapa vektor embedding dari Content input yang terdiri dari batch string yang direpresentasikan sebagai objek EmbedContentRequest.

Endpoint

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

Parameter jalur

model string

Wajib diisi. Nama resource model. Ini berfungsi sebagai ID yang akan digunakan Model.

Nama ini harus cocok dengan nama model yang ditampilkan oleh metode models.list.

Format: models/{model} Formatnya adalah models/{model}.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Bidang
requests[] object (EmbedContentRequest)

Wajib diisi. Permintaan penyematan untuk batch. Model di setiap permintaan ini harus cocok dengan BatchEmbedContentsRequest.model yang ditentukan model.

Contoh permintaan

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

Shell

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

Isi respons

Respons terhadap BatchEmbedContentsRequest.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Bidang
embeddings[] object (ContentEmbedding)

Hanya output. Embedding untuk setiap permintaan, dalam urutan yang sama seperti yang diberikan dalam permintaan batch.

Representasi JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Permintaan yang berisi Content untuk disematkan model.

Bidang
model string

Wajib diisi. Nama resource model. Ini berfungsi sebagai ID yang akan digunakan Model.

Nama ini harus cocok dengan nama model yang ditampilkan oleh metode models.list.

Format: models/{model}

content object (Content)

Wajib diisi. Konten yang akan disematkan. Hanya kolom parts.text yang akan dihitung.

taskType enum (TaskType)

Opsional. Jenis tugas opsional yang penyematan akan digunakan. Hanya dapat disetel untuk models/embedding-001.

title string

Opsional. Judul opsional untuk teks. Hanya berlaku jika TaskType adalah RETRIEVAL_DOCUMENT.

Catatan: Menentukan title untuk RETRIEVAL_DOCUMENT akan memberikan penyematan dengan kualitas yang lebih baik untuk pengambilan.

outputDimensionality integer

Opsional. Dimensi opsional yang dikurangi untuk penyematan output. Jika disetel, nilai yang berlebihan dalam penyematan output akan dipotong dari bagian akhir. Hanya didukung oleh model yang lebih baru sejak 2024. Anda tidak dapat menetapkan nilai ini jika menggunakan model sebelumnya (models/embedding-001).

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

ContentEmbedding

Daftar float yang mewakili embedding.

Bidang
values[] number

Nilai embedding.

Representasi JSON
{
  "values": [
    number
  ]
}

TaskType

Jenis tugas yang embeddingnya akan digunakan.

Enum
TASK_TYPE_UNSPECIFIED Nilai yang dibatalkan, yang secara default akan disetel ke salah satu nilai enum lainnya.
RETRIEVAL_QUERY Menentukan bahwa teks yang diberikan merupakan kueri dalam setelan penelusuran/pengambilan.
RETRIEVAL_DOCUMENT Menentukan bahwa teks yang diberikan adalah dokumen dari korpus yang ditelusuri.
SEMANTIC_SIMILARITY Menentukan bahwa teks yang diberikan akan digunakan untuk STS.
CLASSIFICATION Menentukan bahwa teks yang diberikan akan diklasifikasikan.
CLUSTERING Menentukan bahwa embedding akan digunakan untuk pengelompokan.
QUESTION_ANSWERING Menentukan bahwa teks yang diberikan akan digunakan untuk menjawab pertanyaan.
FACT_VERIFICATION Menentukan bahwa teks yang diberikan akan digunakan untuk verifikasi fakta.