Embedding คือการแสดงข้อความที่ป้อนในรูปแบบตัวเลข ซึ่งเปิดโอกาสให้มี Use Case ที่ไม่ซ้ำกันหลายอย่าง เช่น การจัดกลุ่ม การวัดความคล้ายคลึงกัน และการดึงข้อมูล หากต้องการดูข้อมูลเบื้องต้น โปรดดูคำแนะนำเกี่ยวกับ Embedding
โมเดลการฝัง Gemini มีไว้เพื่อเปลี่ยนรูปแบบของข้อมูลที่ป้อนให้เป็นการแสดงตัวเลขเท่านั้น ซึ่งแตกต่างจากโมเดล Generative AI ที่สร้างเนื้อหาใหม่ แม้ว่า Google จะมีหน้าที่รับผิดชอบในการจัดหาโมเดลการฝังที่จะแปลงรูปแบบข้อมูลอินพุตเป็นรูปแบบตัวเลขที่ร้องขอ แต่ผู้ใช้ยังคงต้องรับผิดชอบอย่างเต็มที่ต่อข้อมูลที่ป้อนและการฝังที่ได้ การใช้โมเดลการฝัง Gemini เป็นการยืนยันว่าคุณมีสิทธิ์ที่จำเป็นในเนื้อหาใดๆ ที่คุณอัปโหลด อย่าสร้างเนื้อหาที่ละเมิดสิทธิในทรัพย์สินทางปัญญาหรือสิทธิด้านความเป็นส่วนตัวของผู้อื่น การใช้บริการนี้เป็นไปตามนโยบายการใช้งานที่ไม่อนุญาตและข้อกำหนดในการให้บริการของ Google
เมธอด: models.embedContent
สร้างเวกเตอร์การฝังข้อความจากอินพุต Content โดยใช้โมเดลการฝัง Gemini ที่ระบุ
ปลายทาง
posthttps:
พารามิเตอร์เส้นทาง
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
ไม่บังคับ มิติข้อมูลที่ลดลงสำหรับเอาต์พุตการฝัง (ไม่บังคับ) หากตั้งค่าไว้ ระบบจะตัดค่าที่มากเกินไปใน Embedding เอาต์พุตจากท้าย รองรับเฉพาะรุ่นใหม่กว่าตั้งแต่ปี 2024 เป็นต้นไป คุณตั้งค่านี้ไม่ได้หากใช้โมเดลก่อนหน้า (models/embedding-001)
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ EmbedContentResponse
เมธอด: models.batchEmbedContents
สร้างเวกเตอร์การฝังหลายรายการจากอินพุต Content ซึ่งประกอบด้วยสตริงกลุ่มหนึ่งที่แสดงเป็นออบเจ็กต์ EmbedContentRequest
ปลายทาง
posthttps:
พารามิเตอร์เส้นทาง
model
string
ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะใช้เป็นรหัสให้โมเดลใช้
ชื่อนี้ควรตรงกับชื่อโมเดลที่เมธอด models.list แสดงผล
รูปแบบ: models/{model} ซึ่งจะอยู่ในรูปแบบ models/{model}
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
requests[]
object (EmbedContentRequest)
ต้องระบุ ฝังคำขอสำหรับกลุ่ม โมเดลในคำขอแต่ละรายการต้องตรงกับโมเดลที่ระบุ BatchEmbedContentsRequest.model
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
การตอบกลับ BatchEmbedContentsRequest
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
embeddings[]
object (ContentEmbedding)
เอาต์พุตเท่านั้น การฝังสำหรับคำขอแต่ละรายการตามลำดับเดียวกับที่ระบุในคำขอแบบกลุ่ม
| การแสดง JSON | 
|---|
| {
  "embeddings": [
    {
      object ( | 
เมธอด: models.asyncBatchEmbedContent
จัดคิวคำขอ models.embedContent เป็นชุดสำหรับการประมวลผลแบบเป็นชุด เรามีแฮนเดิล models.batchEmbedContents ใน GenerativeService แต่มีการซิงค์แล้ว เราจึงตั้งชื่อว่า Async เพื่อไม่ให้เกิดความสับสน
ปลายทาง
posthttps:
พารามิเตอร์เส้นทาง
batch.model
string
ต้องระบุ ชื่อของ Model ที่จะใช้ในการสร้างข้อความเติม
รูปแบบ: models/{model} ซึ่งจะอยู่ในรูปแบบ models/{model}
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
batch.name
string
เอาต์พุตเท่านั้น ตัวระบุ ชื่อทรัพยากรของกลุ่ม
รูปแบบ: batches/{batchId}
batch.displayName
string
ต้องระบุ ชื่อที่ผู้ใช้กำหนดของกลุ่มนี้
batch.inputConfig
object (InputEmbedContentConfig)
ต้องระบุ การกำหนดค่าอินพุตของอินสแตนซ์ที่ใช้ประมวลผลแบบเป็นชุด
batch.output
object (EmbedContentBatchOutput)
เอาต์พุตเท่านั้น เอาต์พุตของคำขอแบบกลุ่ม
batch.createTime
string (Timestamp format)
เอาต์พุตเท่านั้น เวลาที่สร้างกลุ่ม
ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"
batch.endTime
string (Timestamp format)
เอาต์พุตเท่านั้น เวลาที่การประมวลผลแบบกลุ่มเสร็จสมบูรณ์
ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"
batch.updateTime
string (Timestamp format)
เอาต์พุตเท่านั้น เวลาที่อัปเดตกลุ่มครั้งล่าสุด
ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"
batch.batchStats
object (EmbedContentBatchStats)
เอาต์พุตเท่านั้น สถิติเกี่ยวกับแบทช์
batch.state
enum (BatchState)
เอาต์พุตเท่านั้น สถานะของกลุ่ม
batch.priority
string (int64 format)
ไม่บังคับ ลำดับความสำคัญของกลุ่ม ระบบจะประมวลผลกลุ่มที่มีค่าลำดับความสำคัญสูงกว่าก่อนกลุ่มที่มีค่าลำดับความสำคัญต่ำกว่า อนุญาตให้ใช้ค่าลบได้ ค่าเริ่มต้นคือ 0
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ Operation
EmbedContentResponse
การตอบกลับ EmbedContentRequest
embedding
object (ContentEmbedding)
เอาต์พุตเท่านั้น การฝังที่สร้างขึ้นจากเนื้อหาอินพุต
| การแสดง JSON | 
|---|
| {
  "embedding": {
    object ( | 
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 | ระบุว่าจะใช้ข้อความที่ระบุสำหรับการดึงข้อมูลโค้ด | 
EmbedContentBatch
- การแสดง JSON
- InputEmbedContentConfig
- InlinedEmbedContentRequests
- InlinedEmbedContentRequest
- EmbedContentBatchOutput
- InlinedEmbedContentResponses
- InlinedEmbedContentResponse
- EmbedContentBatchStats
ทรัพยากรที่แสดงถึงคำขอ EmbedContent แบบเป็นกลุ่ม
model
string
ต้องระบุ ชื่อของ Model ที่จะใช้ในการสร้างข้อความเติม
รูปแบบ: models/{model}
name
string
เอาต์พุตเท่านั้น ตัวระบุ ชื่อทรัพยากรของกลุ่ม
รูปแบบ: batches/{batchId}
displayName
string
ต้องระบุ ชื่อที่ผู้ใช้กำหนดของกลุ่มนี้
inputConfig
object (InputEmbedContentConfig)
ต้องระบุ การกำหนดค่าอินพุตของอินสแตนซ์ที่ใช้ประมวลผลแบบเป็นชุด
output
object (EmbedContentBatchOutput)
เอาต์พุตเท่านั้น เอาต์พุตของคำขอแบบกลุ่ม
createTime
string (Timestamp format)
เอาต์พุตเท่านั้น เวลาที่สร้างกลุ่ม
ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"
endTime
string (Timestamp format)
เอาต์พุตเท่านั้น เวลาที่การประมวลผลแบบกลุ่มเสร็จสมบูรณ์
ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"
updateTime
string (Timestamp format)
เอาต์พุตเท่านั้น เวลาที่อัปเดตกลุ่มครั้งล่าสุด
ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"
batchStats
object (EmbedContentBatchStats)
เอาต์พุตเท่านั้น สถิติเกี่ยวกับแบทช์
state
enum (BatchState)
เอาต์พุตเท่านั้น สถานะของกลุ่ม
priority
string (int64 format)
ไม่บังคับ ลำดับความสำคัญของกลุ่ม ระบบจะประมวลผลกลุ่มที่มีค่าลำดับความสำคัญสูงกว่าก่อนกลุ่มที่มีค่าลำดับความสำคัญต่ำกว่า อนุญาตให้ใช้ค่าลบได้ ค่าเริ่มต้นคือ 0
| การแสดง JSON | 
|---|
| { "model": string, "name": string, "displayName": string, "inputConfig": { object ( | 
InputEmbedContentConfig
กำหนดค่าอินพุตสำหรับคำขอแบบกลุ่ม
source
Union type
source ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้นfileName
string
ชื่อของ File ที่มีคำขออินพุต
requests
object (InlinedEmbedContentRequests)
คำขอที่จะประมวลผลในกลุ่ม
| การแสดง JSON | 
|---|
| {
  // source
  "fileName": string,
  "requests": {
    object ( | 
InlinedEmbedContentRequests
คำขอที่จะประมวลผลในกลุ่มหากระบุเป็นส่วนหนึ่งของคำขอสร้างกลุ่ม
requests[]
object (InlinedEmbedContentRequest)
ต้องระบุ คำขอที่จะประมวลผลในกลุ่ม
| การแสดง JSON | 
|---|
| {
  "requests": [
    {
      object ( | 
InlinedEmbedContentRequest
คำขอที่จะประมวลผลในกลุ่ม
request
object (EmbedContentRequest)
ต้องระบุ คำขอที่จะประมวลผลในกลุ่ม
metadata
object (Struct format)
ไม่บังคับ ข้อมูลเมตาที่จะเชื่อมโยงกับคำขอ
| การแสดง JSON | 
|---|
| {
  "request": {
    object ( | 
EmbedContentBatchOutput
เอาต์พุตของคำขอแบบกลุ่ม โดยจะแสดงในฟิลด์ AsyncBatchEmbedContentResponse หรือ EmbedContentBatch.output
output
Union type
output ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้นresponsesFile
string
เอาต์พุตเท่านั้น รหัสไฟล์ของไฟล์ที่มีคำตอบ ไฟล์จะเป็นไฟล์ JSONL ที่มีคำตอบเดียวต่อบรรทัด การตอบกลับจะเป็นข้อความ EmbedContentResponse ที่จัดรูปแบบเป็น JSON คำตอบจะเขียนตามลำดับเดียวกับคำขอที่ป้อน
inlinedResponses
object (InlinedEmbedContentResponses)
เอาต์พุตเท่านั้น คำตอบสำหรับคำขอในกลุ่ม แสดงผลเมื่อสร้างกลุ่มโดยใช้คำขอแบบอินไลน์ การตอบกลับจะอยู่ในลำดับเดียวกับคำขออินพุต
| การแสดง JSON | 
|---|
| {
  // output
  "responsesFile": string,
  "inlinedResponses": {
    object ( | 
InlinedEmbedContentResponses
คำตอบสำหรับคำขอในกลุ่ม
inlinedResponses[]
object (InlinedEmbedContentResponse)
เอาต์พุตเท่านั้น คำตอบสำหรับคำขอในกลุ่ม
| การแสดง JSON | 
|---|
| {
  "inlinedResponses": [
    {
      object ( | 
InlinedEmbedContentResponse
การตอบกลับคำขอเดียวในกลุ่ม
metadata
object (Struct format)
เอาต์พุตเท่านั้น ข้อมูลเมตาที่เชื่อมโยงกับคำขอ
output
Union type
output ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้นerror
object (Status)
เอาต์พุตเท่านั้น ข้อผิดพลาดที่พบขณะประมวลผลคำขอ
response
object (EmbedContentResponse)
เอาต์พุตเท่านั้น การตอบกลับคำขอ
| การแสดง JSON | 
|---|
| { "metadata": { object }, // output "error": { object ( | 
EmbedContentBatchStats
สถิติเกี่ยวกับแบทช์
requestCount
string (int64 format)
เอาต์พุตเท่านั้น จำนวนคำขอในกลุ่ม
successfulRequestCount
string (int64 format)
เอาต์พุตเท่านั้น จำนวนคำขอที่ประมวลผลสำเร็จ
failedRequestCount
string (int64 format)
เอาต์พุตเท่านั้น จำนวนคำขอที่ประมวลผลไม่สำเร็จ
pendingRequestCount
string (int64 format)
เอาต์พุตเท่านั้น จำนวนคำขอที่ยังคงรอดำเนินการ
| การแสดง JSON | 
|---|
| { "requestCount": string, "successfulRequestCount": string, "failedRequestCount": string, "pendingRequestCount": string } |