Embeddings

การฝังคือการแสดงข้อมูลที่เป็นตัวเลขของอินพุตข้อความที่เปิดโอกาสให้เกิด Use Case ที่ไม่ซ้ำกันหลายรายการ เช่น การคลัสเตอร์ การวัดความคล้ายคลึง และการดึงข้อมูล ดูข้อมูลเบื้องต้นได้ในคู่มือการฝัง

เมธอด: models.embedContent

สร้างเวกเตอร์การฝังข้อความจากอินพุต Content โดยใช้โมเดลการฝังของ Gemini ที่ระบุ

ปลายทาง

โพสต์ https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

พารามิเตอร์เส้นทาง

model string

ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะเป็นรหัสสําหรับโมเดลที่จะใช้

ชื่อนี้ควรตรงกับชื่อโมเดลที่แสดงผลโดยเมธอด models.list

รูปแบบ: models/{model} อยู่ในรูปแบบ models/{model}

เนื้อหาของคำขอ

เนื้อความของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ฟิลด์
content object (Content)

ต้องระบุ เนื้อหาที่จะฝัง ระบบจะนับเฉพาะช่อง parts.text

taskType enum (TaskType)

ไม่บังคับ ประเภทงานที่ไม่บังคับที่จะใช้การฝัง ไม่รองรับในรุ่นก่อนหน้า (models/embedding-001)

title string

ไม่บังคับ ชื่อของข้อความ (ไม่บังคับ) มีผลเฉพาะเมื่อ TaskType เป็น RETRIEVAL_DOCUMENT

หมายเหตุ: การระบุ title สำหรับ RETRIEVAL_DOCUMENT จะให้การฝังที่มีคุณภาพดีขึ้นสำหรับการดึงข้อมูล

outputDimensionality integer

ไม่บังคับ มิติข้อมูลที่ลดลง (ไม่บังคับ) สําหรับการฝังเอาต์พุต หากตั้งค่าไว้ ระบบจะตัดค่าที่เกินมาในการฝังเอาต์พุตจากส่วนท้าย รองรับเฉพาะรุ่นที่ใหม่กว่าตั้งแต่ปี 2024 เป็นต้นไป คุณไม่สามารถตั้งค่านี้หากใช้รุ่นก่อนหน้า (models/embedding-001)

ตัวอย่างคำขอ

PythonNode.jsเปลือกหอย
from google import genai
from google.genai import types

client = genai.Client()
text = "Hello World!"
result = client.models.embed_content(
    model="text-embedding-004",
    contents=text,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)
// 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: "text-embedding-004",
  contents: text,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
    "content": {
    "parts":[{
      "text": "Hello world"}]}, }' 2> /dev/null | head

เนื้อหาการตอบกลับ

การตอบกลับ EmbedContentRequest

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ฟิลด์
embedding object (ContentEmbedding)

เอาต์พุตเท่านั้น เนื้อหาที่ฝังซึ่งสร้างขึ้นจากเนื้อหาอินพุต

การแสดง JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

เมธอด: models.batchEmbedContents

สร้างเวกเตอร์การฝังหลายรายการจากอินพุต Content ซึ่งประกอบด้วยสตริงกลุ่มหนึ่งที่แสดงเป็นออบเจ็กต์ EmbedContentRequest

ปลายทาง

โพสต์ https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

พารามิเตอร์เส้นทาง

model string

ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะเป็นรหัสสําหรับโมเดลที่จะใช้

ชื่อนี้ควรตรงกับชื่อโมเดลที่แสดงผลโดยเมธอด models.list

รูปแบบ: models/{model} อยู่ในรูปแบบ models/{model}

เนื้อหาของคำขอ

เนื้อความของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ฟิลด์
requests[] object (EmbedContentRequest)

ต้องระบุ ฝังคําขอสําหรับกลุ่ม โมเดลในคําขอแต่ละรายการต้องตรงกับโมเดลที่ระบุ BatchEmbedContentsRequest.model

ตัวอย่างคำขอ

PythonNode.jsเปลือกหอย
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="text-embedding-004",
    contents=texts,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)
// 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: "text-embedding-004",
  contents: texts,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GEMINI_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

เนื้อหาการตอบกลับ

การตอบกลับ BatchEmbedContentsRequest

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ฟิลด์
embeddings[] object (ContentEmbedding)

เอาต์พุตเท่านั้น ชิ้นงานสําหรับคําขอแต่ละรายการตามลําดับเดียวกับที่ระบุไว้ในคําขอแบบเป็นกลุ่ม

การแสดง JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

คำขอที่มี Content สำหรับโมเดลที่จะฝัง

ฟิลด์
model string

ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะเป็นรหัสสําหรับโมเดลที่จะใช้

ชื่อนี้ควรตรงกับชื่อโมเดลที่แสดงผลโดยเมธอด models.list

รูปแบบ: models/{model}

content object (Content)

ต้องระบุ เนื้อหาที่จะฝัง ระบบจะนับเฉพาะช่อง parts.text

taskType enum (TaskType)

ไม่บังคับ ประเภทงานที่ไม่บังคับที่จะใช้การฝัง ไม่รองรับในรุ่นก่อนหน้า (models/embedding-001)

title string

ไม่บังคับ ชื่อของข้อความ (ไม่บังคับ) มีผลเฉพาะเมื่อ TaskType เป็น RETRIEVAL_DOCUMENT

หมายเหตุ: การระบุ title สำหรับ RETRIEVAL_DOCUMENT จะให้การฝังที่มีคุณภาพดีขึ้นสำหรับการดึงข้อมูล

outputDimensionality integer

ไม่บังคับ มิติข้อมูลที่ลดลง (ไม่บังคับ) สําหรับการฝังเอาต์พุต หากตั้งค่าไว้ ระบบจะตัดค่าที่เกินมาในการฝังเอาต์พุตจากส่วนท้าย รองรับเฉพาะรุ่นที่ใหม่กว่าตั้งแต่ปี 2024 เป็นต้นไป คุณไม่สามารถตั้งค่านี้หากใช้รุ่นก่อนหน้า (models/embedding-001)

การแสดง JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

รายการตัวเลขทศนิยมที่แสดงการฝัง

ฟิลด์
values[] number

ค่าการฝัง

การแสดง JSON
{
  "values": [
    number
  ]
}

TaskType

ประเภทของงานที่จะใช้การฝัง

Enum
TASK_TYPE_UNSPECIFIED ค่าที่ไม่ได้ตั้งค่า ซึ่งค่าเริ่มต้นจะเป็นค่า enum รายการใดรายการหนึ่ง
RETRIEVAL_QUERY ระบุว่าข้อความที่ระบุเป็นการค้นหาในการตั้งค่าการค้นหา/การดึงข้อมูล
RETRIEVAL_DOCUMENT ระบุว่าข้อความที่ระบุเป็นเอกสารจากชุดข้อความที่ค้นหา
SEMANTIC_SIMILARITY ระบุว่าจะใช้ข้อความที่ระบุสำหรับ STS
CLASSIFICATION ระบุว่าข้อความที่ระบุจะได้รับการแยกประเภท
CLUSTERING ระบุว่าจะใช้การฝังเพื่อจัดกลุ่ม
QUESTION_ANSWERING ระบุว่าจะใช้ข้อความที่ระบุเพื่อตอบคำถาม
FACT_VERIFICATION ระบุว่าจะใช้ข้อความที่ระบุเพื่อยืนยันข้อเท็จจริง
CODE_RETRIEVAL_QUERY ระบุว่าจะใช้ข้อความที่ระบุเพื่อดึงข้อมูลโค้ด