Embeddings

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

Metode: models.embedContent

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

Endpoint

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

Parameter jalur

model string

Wajib. Nama resource model. ID 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:

Kolom
content object (Content)

Wajib. 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 yang dikurangi secara opsional untuk penyematan output. Jika ditetapkan, nilai yang berlebihan dalam penyematan output akan terpotong dari 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

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

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:

Kolom
embedding object (ContentEmbedding)

Hanya output. Penyematan yang dihasilkan dari konten input.

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

Metode: models.batchEmbedContents

Menghasilkan beberapa vektor penyematan dari input Content 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. Nama resource model. ID 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:

Kolom
requests[] object (EmbedContentRequest)

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

Contoh permintaan

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

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 model yang akan disematkan.

Kolom
model string

Wajib. 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. 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 ditetapkan, nilai yang berlebihan dalam penyematan output akan terpotong dari akhir. Hanya didukung oleh model yang lebih baru sejak tahun 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 penyematan.

Kolom
values[] number

Nilai embedding.

Representasi JSON
{
  "values": [
    number
  ]
}

TaskType

Jenis tugas yang embeddingnya akan digunakan.

Enum
TASK_TYPE_UNSPECIFIED Nilai yang tidak ditetapkan, yang akan ditetapkan secara default 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.