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
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: / /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
)
เอาต์พุตเท่านั้น การฝังสำหรับคำขอแต่ละรายการตามลำดับเดียวกับที่ระบุในคำขอแบบกลุ่ม
การแสดง 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
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
ไม่บังคับ มิติข้อมูลที่ลดลงสำหรับเอาต์พุตการฝัง (ไม่บังคับ) หากตั้งค่าไว้ ระบบจะตัดค่าที่มากเกินไปใน Embedding เอาต์พุตจากท้าย รองรับเฉพาะรุ่นใหม่กว่าตั้งแต่ปี 2024 เป็นต้นไป คุณตั้งค่านี้ไม่ได้หากใช้โมเดลก่อนหน้า (models/embedding-001
)
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 } |