Gemini API รองรับการอัปโหลดไฟล์สื่อแยกจากอินพุตพรอมต์ ซึ่งช่วยให้คุณนำสื่อไปใช้ซ้ำในคำขอและพรอมต์หลายรายการได้ ดูรายละเอียดเพิ่มเติมได้ที่คู่มือการใช้พรอมต์กับสื่อ
วิธีการ: media.upload
อัปโหลดข้อมูลไปยัง ragStore ประมวลผลล่วงหน้าและแบ่งเป็นกลุ่มก่อนจัดเก็บไว้ในเอกสาร RagStore
ปลายทาง
- URI การอัปโหลดสำหรับคำขออัปโหลดสื่อ
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- URI ของข้อมูลเมตาสำหรับคำขอข้อมูลเมตาเท่านั้น:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
พารามิเตอร์เส้นทาง
ragStoreName
string
ต้องระบุ เปลี่ยนแปลงไม่ได้ ชื่อของ RagStore
ที่จะอัปโหลดไฟล์ ตัวอย่าง: ragStores/my-rag-store-123
ซึ่งจะอยู่ในรูปแบบ ragStores/{ragstore}
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
displayName
string
ไม่บังคับ ชื่อที่แสดงของเอกสารที่สร้างขึ้น
customMetadata[]
object (CustomMetadata
)
ข้อมูลเมตาที่กำหนดเองที่จะเชื่อมโยงกับข้อมูล
chunkingConfig
object (ChunkingConfig
)
ไม่บังคับ การกำหนดค่าสำหรับบอกบริการวิธีแบ่งข้อมูลออกเป็นกลุ่ม หากไม่ได้ระบุ บริการจะใช้พารามิเตอร์เริ่มต้น
mimeType
string
ไม่บังคับ ประเภท MIME ของข้อมูล หากไม่ได้ระบุ ระบบจะอนุมานจากเนื้อหาที่อัปโหลด
เนื้อหาการตอบกลับ
นี่คือสำเนาของ google.longrunning.Operation เราต้องคัดลอกเนื่องจากในการโต้ตอบกับ Scotty เราต้องเพิ่มฟิลด์เฉพาะของ Scotty ซึ่งเพิ่มใน Operation Proto ระดับบนสุดไม่ได้
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
name
string
ชื่อที่เซิร์ฟเวอร์กำหนด ซึ่งจะไม่ซ้ำกันภายในบริการเดียวกันที่แสดงผลชื่อนั้นในตอนแรกเท่านั้น หากใช้การแมป HTTP เริ่มต้น name
ควรเป็นชื่อทรัพยากรที่ลงท้ายด้วย operations/{unique_id}
metadata
object
ข้อมูลเมตาเฉพาะบริการที่เชื่อมโยงกับการดำเนินการ โดยปกติแล้วไฟล์นี้จะมีข้อมูลความคืบหน้าและข้อมูลเมตาทั่วไป เช่น เวลาที่สร้าง บริการบางอย่างอาจไม่มีข้อมูลเมตาดังกล่าว เมธอดที่แสดงผลการดำเนินการที่ใช้เวลานานควรบันทึกประเภทข้อมูลเมตา (หากมี)
ออบเจ็กต์ที่มีฟิลด์ประเภทใดก็ได้ ฟิลด์เพิ่มเติม "@type"
มี URI ที่ระบุประเภท เช่น { "id": 1234, "@type": "types.example.com/standard/id" }
done
boolean
หากค่าเป็น false
แสดงว่าการดำเนินการยังอยู่ระหว่างดำเนินการ หากเป็น true
การดำเนินการจะเสร็จสมบูรณ์ และจะมี error
หรือ response
ให้ใช้งาน
result
Union type
error
หรือ response
ที่ถูกต้อง หาก done
== false
จะไม่มีการตั้งค่า error
หรือ response
หาก done
== true
จะตั้งค่า error
หรือ response
ได้เพียงอย่างเดียว บริการบางอย่างอาจไม่แสดงผลลัพธ์ result
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้นerror
object (Status
)
ผลลัพธ์ข้อผิดพลาดของการดำเนินการในกรณีที่ล้มเหลวหรือยกเลิก
response
object
การตอบกลับตามปกติที่สำเร็จของการดำเนินการ หากเมธอดเดิมไม่แสดงข้อมูลเมื่อสำเร็จ เช่น Delete
การตอบกลับจะเป็น google.protobuf.Empty
หากเมธอดเดิมเป็นมาตรฐาน Get
/Create
/Update
การตอบกลับควรเป็นทรัพยากร สำหรับเมธอดอื่นๆ การตอบกลับควรมีประเภท XxxResponse
โดยที่ Xxx
คือชื่อเมธอดเดิม เช่น หากชื่อเมธอดเดิมคือ TakeSnapshot()
ประเภทการตอบกลับที่อนุมานได้คือ TakeSnapshotResponse
ออบเจ็กต์ที่มีฟิลด์ประเภทใดก็ได้ ฟิลด์เพิ่มเติม "@type"
มี URI ที่ระบุประเภท เช่น { "id": 1234, "@type": "types.example.com/standard/id" }
การแสดง JSON |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
พารามิเตอร์สำหรับบอกบริการวิธีแบ่งไฟล์เป็นก้อน ได้รับแรงบันดาลใจจาก google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้นwhiteSpaceConfig
object (WhiteSpaceConfig
)
การกำหนดค่าการแบ่งพื้นที่ว่าง
การแสดง JSON |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
การกำหนดค่าสำหรับอัลกอริทึมการแบ่งกลุ่มตามช่องว่าง [คั่นด้วยช่องว่าง]
maxTokensPerChunk
integer
จำนวนโทเค็นสูงสุดต่อก้อน โทเค็นจะกำหนดเป็นคำสำหรับอัลกอริทึมการแบ่งกลุ่มนี้ หมายเหตุ: เรากำหนดโทเค็นเป็นคำที่แยกด้วยช่องว่าง ไม่ใช่เอาต์พุตของโทเค็นไนเซอร์ หน้าต่างบริบทของโมเดลการฝัง Gemini ล่าสุด ณ วันที่ 17-04-2025 มีโทเค็น 8192 โทเค็น เราถือว่าคำโดยเฉลี่ยมีความยาว 5 อักขระ ดังนั้น เราจึงกำหนดขีดจำกัดบนไว้ที่ 2**9 ซึ่งเท่ากับ 512 คำ หรือ 2560 โทเค็น โดยสมมติว่าในกรณีที่แย่ที่สุดคือมีอักขระ 1 ตัวต่อโทเค็น นี่เป็นค่าประมาณแบบระมัดระวังเพื่อป้องกันไม่ให้หน้าต่างบริบทมีข้อมูลมากเกินไป
maxOverlapTokens
integer
จำนวนโทเค็นที่ทับซ้อนกันสูงสุดระหว่าง 2 ก้อนที่อยู่ติดกัน
การแสดง JSON |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
เมธอด: files.get
รับข้อมูลเมตาสำหรับ File
ที่ระบุ
ปลายทาง
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
พารามิเตอร์เส้นทาง
name
string
ต้องระบุ ชื่อของ File
ที่จะรับ ตัวอย่าง: files/abc-123
ซึ่งจะอยู่ในรูปแบบ files/{file}
เนื้อความของคำขอ
เนื้อหาของคำขอต้องว่างเปล่า
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ File
เมธอด: files.list
แสดงข้อมูลเมตาสำหรับ File
ที่เป็นของโปรเจ็กต์ที่ส่งคำขอ
ปลายทาง
gethttps: / /generativelanguage.googleapis.com /v1beta /files
พารามิเตอร์การค้นหา
pageSize
integer
ไม่บังคับ จำนวนสูงสุดของ File
ที่จะแสดงต่อหน้า หากไม่ระบุ ระบบจะกำหนดค่าเริ่มต้นไว้ที่ 10 ค่าสูงสุด pageSize
คือ 100
pageToken
string
ไม่บังคับ โทเค็นหน้าจากfiles.list
การเรียกก่อนหน้า
เนื้อความของคำขอ
เนื้อหาของคำขอต้องว่างเปล่า
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
เป็นการตอบกลับสำหรับ files.list
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
files[]
object (File
)
รายการFile
nextPageToken
string
โทเค็นที่ส่งเป็น pageToken
ในการเรียกใช้ files.list
ครั้งถัดไปได้
การแสดง JSON |
---|
{
"files": [
{
object ( |
วิธีการ: files.delete
ลบ File
ปลายทาง
ลบhttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
พารามิเตอร์เส้นทาง
name
string
ต้องระบุ ชื่อของ File
ที่จะลบ ตัวอย่าง: files/abc-123
ซึ่งจะอยู่ในรูปแบบ files/{file}
เนื้อความของคำขอ
เนื้อหาของคำขอต้องว่างเปล่า
ตัวอย่างคำขอ
Python
Node.js
Go
เปลือกหอย
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะเป็นออบเจ็กต์ JSON ว่าง
ทรัพยากร REST: files
แหล่งข้อมูล: ไฟล์
ไฟล์ที่อัปโหลดไปยัง API รหัสถัดไป: 15
name
string
เปลี่ยนแปลงไม่ได้ ตัวระบุ File
ชื่อทรัพยากร รหัส (ชื่อไม่รวมคำนำหน้า "files/") มีอักขระที่เป็นตัวอักษรพิมพ์เล็กและตัวเลขคละกันหรือขีดกลาง (-) ได้สูงสุด 40 ตัว โดยรหัสจะขึ้นต้นหรือลงท้ายด้วยขีดกลางไม่ได้ หากไม่ได้ตั้งชื่อเมื่อสร้าง ระบบจะสร้างชื่อที่ไม่ซ้ำกันให้ ตัวอย่าง: files/123-456
displayName
string
ไม่บังคับ ชื่อที่แสดงที่มนุษย์อ่านได้สำหรับ File
ชื่อที่แสดงต้องมีความยาวไม่เกิน 512 อักขระ รวมถึงช่องว่าง ตัวอย่างเช่น "รูปภาพต้อนรับ"
mimeType
string
เอาต์พุตเท่านั้น ประเภท MIME ของไฟล์
sizeBytes
string (int64 format)
เอาต์พุตเท่านั้น ขนาดของไฟล์ในหน่วยไบต์
createTime
string (Timestamp
format)
เอาต์พุตเท่านั้น การประทับเวลาของเวลาที่สร้าง File
ใช้ 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)
เอาต์พุตเท่านั้น การประทับเวลาเมื่อมีการอัปเดต File
ครั้งล่าสุด
ใช้ 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"
expirationTime
string (Timestamp
format)
เอาต์พุตเท่านั้น การประทับเวลาที่ระบบจะลบ File
ตั้งค่าเฉพาะในกรณีที่กำหนดเวลาให้ File
หมดอายุ
ใช้ 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"
sha256Hash
string (bytes format)
เอาต์พุตเท่านั้น แฮช SHA-256 ของไบต์ที่อัปโหลด
สตริงที่เข้ารหัส Base64
uri
string
เอาต์พุตเท่านั้น URI ของ File
downloadUri
string
เอาต์พุตเท่านั้น URI ดาวน์โหลดของ File
state
enum (State
)
เอาต์พุตเท่านั้น สถานะการประมวลผลของไฟล์
source
enum (Source
)
แหล่งที่มาของไฟล์
error
object (Status
)
เอาต์พุตเท่านั้น สถานะข้อผิดพลาดหากการประมวลผลไฟล์ไม่สำเร็จ
metadata
Union type
metadata
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้นvideoMetadata
object (VideoFileMetadata
)
เอาต์พุตเท่านั้น ข้อมูลเมตาของวิดีโอ
การแสดง JSON |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
ข้อมูลเมตาสำหรับวิดีโอ File
videoDuration
string (Duration
format)
ระยะเวลาของวิดีโอ
ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's
' เช่น "3.5s"
การแสดง JSON |
---|
{ "videoDuration": string } |
รัฐ
สถานะสำหรับวงจรของไฟล์
Enum | |
---|---|
STATE_UNSPECIFIED |
ค่าเริ่มต้น ระบบจะใช้ค่านี้หากไม่มีการระบุรัฐ |
PROCESSING |
ระบบกำลังประมวลผลไฟล์และยังใช้สำหรับการอนุมานไม่ได้ |
ACTIVE |
ระบบประมวลผลไฟล์และพร้อมสำหรับการอนุมานแล้ว |
FAILED |
ประมวลผลไฟล์ไม่สำเร็จ |
แหล่งที่มา
Enum | |
---|---|
SOURCE_UNSPECIFIED |
ใช้ในกรณีที่ไม่ได้ระบุแหล่งที่มา |
UPLOADED |
ระบุว่าผู้ใช้อัปโหลดไฟล์ |
GENERATED |
ระบุว่า Google เป็นผู้สร้างไฟล์ |
REGISTERED |
ระบุว่าไฟล์เป็นไฟล์ที่ลงทะเบียนแล้ว เช่น ไฟล์ Google Cloud Storage |
สถานะ
Status
ประเภทจะกำหนดรูปแบบข้อผิดพลาดเชิงตรรกะที่เหมาะกับสภาพแวดล้อมการเขียนโปรแกรมต่างๆ รวมถึง REST API และ RPC API โดย gRPC จะใช้พอร์ตนี้ Status
แต่ละข้อความจะมีข้อมูล 3 ส่วน ได้แก่ รหัสข้อผิดพลาด ข้อความแสดงข้อผิดพลาด และรายละเอียดข้อผิดพลาด
ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบข้อผิดพลาดนี้และวิธีใช้งานได้ในคู่มือการออกแบบ API
code
integer
รหัสสถานะซึ่งควรเป็นค่า enum ของ google.rpc.Code
message
string
ข้อความแสดงข้อผิดพลาดที่ส่งถึงนักพัฒนาแอป ซึ่งควรเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่ผู้ใช้เห็นควรได้รับการแปลและส่งในช่อง google.rpc.Status.details
หรือแปลโดยไคลเอ็นต์
details[]
object
รายการข้อความที่มีรายละเอียดข้อผิดพลาด API จะใช้ชุดประเภทข้อความทั่วไป
ออบเจ็กต์ที่มีฟิลด์ประเภทใดก็ได้ ฟิลด์เพิ่มเติม "@type"
มี URI ที่ระบุประเภท เช่น { "id": 1234, "@type": "types.example.com/standard/id" }
การแสดง JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |