Embedding คือการแสดงอินพุตข้อความเป็นตัวเลข ซึ่งเปิดโอกาสให้มี Use Case ที่ไม่ซ้ำกันหลายอย่าง เช่น การจัดกลุ่ม การวัดความคล้ายคลึงกัน และการดึงข้อมูล หากต้องการดูข้อมูลเบื้องต้น โปรดดูคำแนะนำเกี่ยวกับ Embedding
โมเดลการฝัง Gemini มีไว้เพื่อเปลี่ยนรูปแบบข้อมูลที่ป้อนให้เป็นการแสดงตัวเลขเท่านั้น ซึ่งแตกต่างจากโมเดล Generative AI ที่สร้างเนื้อหาใหม่ แม้ว่า Google จะมีหน้าที่รับผิดชอบในการจัดหาโมเดลการฝังที่จะแปลงรูปแบบของข้อมูลอินพุตเป็นรูปแบบตัวเลขที่ร้องขอ แต่ผู้ใช้ยังคงมีหน้าที่รับผิดชอบอย่างเต็มที่ต่อข้อมูลที่ป้อนและการฝังที่ได้ การใช้โมเดลการฝัง Gemini เป็นการยืนยันว่าคุณมีสิทธิ์ที่จำเป็นในเนื้อหาใดๆ ที่คุณอัปโหลด อย่าสร้างเนื้อหาที่ละเมิดสิทธิในทรัพย์สินทางปัญญาหรือสิทธิด้านความเป็นส่วนตัวของผู้อื่น การใช้บริการนี้เป็นไปตามนโยบายการใช้งานที่ไม่อนุญาตและข้อกำหนดในการให้บริการของ Google
เมธอด: models.embedContent
สร้างเวกเตอร์การฝังข้อความจากอินพุต Content โดยใช้โมเดลการฝัง Gemini ที่ระบุ
อุปกรณ์ปลายทาง
posthttps: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:embedContent
พารามิเตอร์เส้นทาง
model
string
ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะใช้เป็นรหัสให้โมเดลใช้
ชื่อนี้ควรตรงกับชื่อโมเดลที่เมธอด models.list แสดงผล
รูปแบบ: models/{model} ซึ่งจะอยู่ในรูปแบบ models/{model}
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
content
object (Content)
ต้องระบุ เนื้อหาที่จะฝัง ระบบจะนับเฉพาะฟิลด์ parts.text
taskType
(deprecated)
enum (TaskType)
ไม่บังคับ เลิกใช้งานแล้ว: โปรดใช้ EmbedContentConfig.task_type แทน ประเภทงานที่ไม่บังคับที่จะใช้การฝัง ไม่รองรับในรุ่นก่อนหน้า (models/embedding-001)
title
(deprecated)
string
ไม่บังคับ เลิกใช้งานแล้ว: โปรดใช้ EmbedContentConfig.title แทน ชื่อที่ไม่บังคับสำหรับข้อความ ใช้ได้เมื่อ TaskType เป็น RETRIEVAL_DOCUMENT เท่านั้น
หมายเหตุ: การระบุ title สำหรับ RETRIEVAL_DOCUMENT จะช่วยให้ได้การฝังที่มีคุณภาพดีขึ้นสำหรับการดึงข้อมูล
outputDimensionality
(deprecated)
integer
ไม่บังคับ เลิกใช้งานแล้ว: โปรดใช้ EmbedContentConfig.output_dimensionality แทน มิติข้อมูลที่ลดลงสำหรับเอาต์พุตการฝัง (ไม่บังคับ) หากตั้งค่าไว้ ระบบจะตัดค่าที่มากเกินไปในการฝังเอาต์พุตจากท้าย รองรับโดยรุ่นใหม่กว่าตั้งแต่ปี 2024 เป็นต้นไปเท่านั้น คุณตั้งค่านี้ไม่ได้หากใช้โมเดลก่อนหน้า (models/embedding-001)
embedContentConfig
object (EmbedContentConfig)
ไม่บังคับ การกำหนดค่าสำหรับคำขอ models.embedContent
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ EmbedContentResponse
เมธอด: models.batchEmbedContents
สร้างเวกเตอร์การฝังหลายรายการจากอินพุต Content ซึ่งประกอบด้วยสตริงกลุ่มหนึ่งที่แสดงเป็นออบเจ็กต์ EmbedContentRequest
อุปกรณ์ปลายทาง
posthttps: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:batchEmbedContents
พารามิเตอร์เส้นทาง
model
string
ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะใช้เป็นรหัสให้โมเดลใช้
ชื่อนี้ควรตรงกับชื่อโมเดลที่เมธอด models.list แสดงผล
รูปแบบ: models/{model} ซึ่งจะอยู่ในรูปแบบ models/{model}
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
requests[]
object (EmbedContentRequest)
ต้องระบุ ฝังคำขอสำหรับกลุ่ม โมเดลในคำขอแต่ละรายการต้องตรงกับโมเดลที่ระบุ BatchEmbedContentsRequest.model
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
การตอบกลับ BatchEmbedContentsRequest
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
embeddings[]
object (ContentEmbedding)
เอาต์พุตเท่านั้น การฝังสำหรับคำขอแต่ละรายการตามลำดับเดียวกับที่ระบุในคำขอแบบกลุ่ม
usageMetadata
object (EmbeddingUsageMetadata)
เอาต์พุตเท่านั้น ข้อมูลเมตาการใช้งานสำหรับคำขอ
| การแสดง JSON |
|---|
{ "embeddings": [ { object ( |
เมธอด: models.asyncBatchEmbedContent
จัดคิวคำขอ models.embedContent เป็นชุดสำหรับการประมวลผลแบบกลุ่ม เรามีแฮนเดิล models.batchEmbedContents ใน GenerativeService แต่มีการซิงค์แล้ว เราจึงตั้งชื่อว่า Async เพื่อไม่ให้เกิดความสับสน
อุปกรณ์ปลายทาง
posthttps: / /generativelanguage.googleapis.com /v1beta /{batch.model=models /*}:asyncBatchEmbedContent
พารามิเตอร์เส้นทาง
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)
เอาต์พุตเท่านั้น การฝังที่สร้างขึ้นจากเนื้อหาอินพุต
usageMetadata
object (EmbeddingUsageMetadata)
เอาต์พุตเท่านั้น ข้อมูลเมตาการใช้งานสำหรับคำขอ
| การแสดง JSON |
|---|
{ "embedding": { object ( |
ContentEmbedding
รายการของจำนวนทศนิยมที่แสดงถึงการฝัง
values[]
number
ค่าการฝัง ฟิลด์นี้มีไว้สำหรับผู้ใช้บุคคลที่สามเท่านั้น และจะไม่แสดงสำหรับสายที่มาจากบุคคลที่หนึ่ง
shape[]
integer
ฟิลด์นี้จัดเก็บรูปร่างเฟรมของเทนเซอร์โทเค็นแบบซอฟต์ (เช่น [1, 1, 256, 2048])
| การแสดง JSON |
|---|
{ "values": [ number ], "shape": [ integer ] } |
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 } |
EmbedContentConfig
การกำหนดค่าสำหรับคำขอ EmbedContent
title
string
ไม่บังคับ ชื่อของข้อความ
taskType
enum (TaskType)
ไม่บังคับ ประเภทงานของการฝัง
autoTruncate
boolean
ไม่บังคับ จะตัดเนื้อหาอินพุตโดยไม่แจ้งเตือนหรือไม่ หากเนื้อหายาวกว่าความยาวลำดับสูงสุด
outputDimensionality
integer
ไม่บังคับ ลดมิติข้อมูลสำหรับการฝังเอาต์พุต หากตั้งค่าไว้ ระบบจะตัดค่าที่มากเกินไปในการฝังเอาต์พุตจากท้าย
documentOcr
boolean
ไม่บังคับ จะเปิดใช้ OCR สำหรับเนื้อหาเอกสารหรือไม่
audioTrackExtraction
boolean
ไม่บังคับ จะดึงเสียงจากเนื้อหาวิดีโอหรือไม่
| การแสดง JSON |
|---|
{
"title": string,
"taskType": enum ( |
EmbeddingUsageMetadata
ข้อมูลเมตาเกี่ยวกับการใช้งานคำขอ Embedding
promptTokenCount
integer
เอาต์พุตเท่านั้น จำนวนโทเค็นในพรอมต์
promptTokenDetails[]
object (ModalityTokenCount)
เอาต์พุตเท่านั้น รายการรูปแบบที่ประมวลผลในอินพุตคำขอ
| การแสดง JSON |
|---|
{
"promptTokenCount": integer,
"promptTokenDetails": [
{
object ( |