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
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 } |