Gemini API hỗ trợ việc tải tệp đa phương tiện lên riêng biệt với dữ liệu đầu vào của câu lệnh, cho phép bạn sử dụng lại nội dung nghe nhìn của mình trên nhiều yêu cầu và nhiều câu lệnh. Để biết thêm thông tin chi tiết, hãy xem hướng dẫn Tạo câu lệnh bằng nội dung nghe nhìn.
Phương thức: media.upload
Tải dữ liệu lên ragStore, tiền xử lý và chia thành các đoạn trước khi lưu trữ trong RagStore Document.
Điểm cuối
- URI tải lên, cho các yêu cầu tải nội dung đa phương tiện lên:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- URI siêu dữ liệu, cho các yêu cầu chỉ có siêu dữ liệu:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
Tham số đường dẫn
ragStoreName
string
Bắt buộc. Không thể thay đổi. Tên của RagStore để tải tệp lên. Ví dụ: ragStores/my-rag-store-123 Tên này có dạng ragStores/{ragstore}.
Nội dung yêu cầu
Nội dung yêu cầu chứa dữ liệu với cấu trúc sau:
displayName
string
Không bắt buộc. Tên hiển thị của tài liệu đã tạo.
customMetadata[]
object (CustomMetadata)
Siêu dữ liệu tuỳ chỉnh sẽ được liên kết với dữ liệu.
chunkingConfig
object (ChunkingConfig)
Không bắt buộc. Cấu hình để cho dịch vụ biết cách phân chia dữ liệu thành các khối. Nếu bạn không cung cấp, dịch vụ sẽ sử dụng các thông số mặc định.
mimeType
string
Không bắt buộc. Loại MIME của dữ liệu. Nếu bạn không cung cấp, hệ thống sẽ suy luận từ nội dung được tải lên.
Nội dung phản hồi
Đây là bản sao của google.longrunning.Operation. Chúng ta cần sao chép nó vì để tương tác với Scotty, chúng ta cần thêm một trường cụ thể của Scotty mà không thể thêm vào proto Operation cấp cao nhất.
Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:
name
string
Tên do máy chủ chỉ định, chỉ mang tính duy nhất trong cùng một dịch vụ ban đầu trả về tên đó. Nếu bạn sử dụng ánh xạ HTTP mặc định, name phải là tên tài nguyên kết thúc bằng operations/{unique_id}.
metadata
object
Siêu dữ liệu dành riêng cho dịch vụ liên kết với thao tác. Thường thì siêu dữ liệu này chứa thông tin về tiến trình và siêu dữ liệu chung, chẳng hạn như thời gian tạo. Có thể một số dịch vụ sẽ không cung cấp siêu dữ liệu như vậy. Mọi phương thức có trả về một thao tác diễn ra trong thời gian dài đều phải ghi lại loại siêu dữ liệu (nếu có).
Một đối tượng chứa các trường thuộc một loại tuỳ ý. Một trường bổ sung "@type" chứa một URI xác định loại. Ví dụ: { "id": 1234, "@type": "types.example.com/standard/id" }.
done
boolean
Nếu giá trị là false, tức là thao tác vẫn đang diễn ra. Nếu true, thao tác đã hoàn tất và có thể dùng error hoặc response.
result
Union type
error hoặc response hợp lệ. Nếu done == false, thì error và response đều không được thiết lập. Nếu done == true, bạn chỉ có thể thiết lập một trong hai tham số error hoặc response. Có thể một số dịch vụ sẽ không cung cấp kết quả. result chỉ có thể là một trong những trạng thái sau:error
object (Status)
Kết quả chỉ thao tác bị lỗi trong trường hợp không thành công hoặc huỷ.
response
object
Phản hồi bình thường, thao tác thành công. Nếu phương thức ban đầu không trả về dữ liệu khi thành công, chẳng hạn như Delete, thì phản hồi sẽ là google.protobuf.Empty. Nếu phương thức ban đầu là Get/Create/Update tiêu chuẩn, thì phản hồi phải là tài nguyên. Đối với các phương thức khác, phản hồi phải là loại XxxResponse, trong đó Xxx là tên phương thức ban đầu. Ví dụ: nếu tên phương thức ban đầu là TakeSnapshot(), thì suy ra loại phản hồi là TakeSnapshotResponse.
Một đối tượng chứa các trường thuộc một loại tuỳ ý. Một trường bổ sung "@type" chứa một URI xác định loại. Ví dụ: { "id": 1234, "@type": "types.example.com/standard/id" }.
| Biểu diễn dưới dạng JSON |
|---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
Các tham số cho biết cách dịch vụ phân chia tệp thành các khối. Lấy cảm hứng từ google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config chỉ có thể là một trong những trạng thái sau:whiteSpaceConfig
object (WhiteSpaceConfig)
Cấu hình phân đoạn khoảng trắng.
| Biểu diễn dưới dạng JSON |
|---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
Cấu hình cho thuật toán phân đoạn khoảng trắng [phân tách bằng khoảng trắng].
maxTokensPerChunk
integer
Số lượng mã thông báo tối đa cho mỗi đoạn. Mã thông báo được xác định là các từ cho thuật toán phân đoạn này. Lưu ý: chúng tôi định nghĩa mã thông báo là các từ được phân tách bằng khoảng trắng, chứ không phải đầu ra của một trình mã hoá từ. Tính đến ngày 17/4/2025, cửa sổ ngữ cảnh của mô hình nhúng Gemini mới nhất hiện là 8.192 token. Chúng tôi giả định rằng mỗi từ có trung bình 5 ký tự. Do đó, chúng tôi đặt giới hạn trên là 2**9, tức là 512 từ hoặc 2560 mã thông báo, giả sử trường hợp xấu nhất là một ký tự cho mỗi mã thông báo. Đây là một ước tính thận trọng nhằm ngăn chặn tình trạng tràn cửa sổ ngữ cảnh.
maxOverlapTokens
integer
Số lượng mã thông báo tối đa trùng lặp giữa hai đoạn liền kề.
| Biểu diễn dưới dạng JSON |
|---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
Phương thức: files.get
Lấy siêu dữ liệu cho File đã cho.
Điểm cuối
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Tham số đường dẫn
name
string
Bắt buộc. Tên của File cần lấy. Ví dụ: files/abc-123 Tên này có dạng files/{file}.
Nội dung yêu cầu
Nội dung yêu cầu phải trống.
Ví dụ về yêu cầu
Python
Node.js
Go
Vỏ
Nội dung phản hồi
Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của File.
Phương thức: files.list
Liệt kê siêu dữ liệu cho các File do dự án yêu cầu sở hữu.
Điểm cuối
gethttps: / /generativelanguage.googleapis.com /v1beta /files
Tham số truy vấn
pageSize
integer
Không bắt buộc. Số lượng File tối đa cần trả về trên mỗi trang. Nếu không được chỉ định, giá trị mặc định là 10. Tối đa pageSize là 100.
pageToken
string
Không bắt buộc. Mã thông báo trang từ một lệnh gọi files.list trước đó.
Nội dung yêu cầu
Nội dung yêu cầu phải trống.
Ví dụ về yêu cầu
Python
Node.js
Go
Vỏ
Nội dung phản hồi
Phản hồi đối với files.list.
Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:
files[]
object (File)
Danh sách các File.
nextPageToken
string
Một mã thông báo có thể được gửi dưới dạng pageToken vào lệnh gọi files.list tiếp theo.
| Biểu diễn dưới dạng JSON |
|---|
{
"files": [
{
object ( |
Phương thức: files.delete
Xoá File.
Điểm cuối
xoáhttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Tham số đường dẫn
name
string
Bắt buộc. Tên của File cần xoá. Ví dụ: files/abc-123 Tên này có dạng files/{file}.
Nội dung yêu cầu
Nội dung yêu cầu phải trống.
Ví dụ về yêu cầu
Python
Node.js
Go
Vỏ
Nội dung phản hồi
Nếu thành công, phần nội dung phản hồi sẽ là một đối tượng JSON trống.
Tài nguyên REST: files
Tài nguyên: Tệp
Một tệp được tải lên API. Mã nhận dạng tiếp theo: 15
name
string
Không thể thay đổi. Giá trị nhận dạng. Tên tài nguyên File. Mã nhận dạng (tên không bao gồm tiền tố "files/") có thể chứa tối đa 40 ký tự là chữ và số viết thường hoặc dấu gạch ngang (-). Mã nhận dạng không được bắt đầu hoặc kết thúc bằng dấu gạch ngang. Nếu tên trống khi tạo, một tên riêng biệt sẽ được tạo. Ví dụ: files/123-456
displayName
string
Không bắt buộc. Tên hiển thị dễ đọc cho File. Tên hiển thị không được dài quá 512 ký tự, bao gồm cả dấu cách. Ví dụ: "Hình ảnh chào mừng"
mimeType
string
Chỉ có đầu ra. Loại MIME của tệp.
sizeBytes
string (int64 format)
Chỉ có đầu ra. Kích thước của tệp tính bằng byte.
createTime
string (Timestamp format)
Chỉ có đầu ra. Dấu thời gian cho biết thời điểm tạo File.
Hãy dùng RFC 3339, trong đó dữ liệu đầu ra được tạo sẽ luôn được chuẩn hoá theo múi giờ và sử dụng 0, 3, 6 hoặc 9 chữ số thập phân. Các khoảng lệch khác ngoài "Z" cũng được chấp nhận. Ví dụ: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" hoặc "2014-10-02T15:01:23+05:30".
updateTime
string (Timestamp format)
Chỉ có đầu ra. Dấu thời gian cho biết lần cập nhật gần đây nhất của File.
Hãy dùng RFC 3339, trong đó dữ liệu đầu ra được tạo sẽ luôn được chuẩn hoá theo múi giờ và sử dụng 0, 3, 6 hoặc 9 chữ số thập phân. Các khoảng lệch khác ngoài "Z" cũng được chấp nhận. Ví dụ: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" hoặc "2014-10-02T15:01:23+05:30".
expirationTime
string (Timestamp format)
Chỉ có đầu ra. Dấu thời gian cho biết thời điểm File sẽ bị xoá. Chỉ đặt nếu File được lên lịch hết hạn.
Hãy dùng RFC 3339, trong đó dữ liệu đầu ra được tạo sẽ luôn được chuẩn hoá theo múi giờ và sử dụng 0, 3, 6 hoặc 9 chữ số thập phân. Các khoảng lệch khác ngoài "Z" cũng được chấp nhận. Ví dụ: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" hoặc "2014-10-02T15:01:23+05:30".
sha256Hash
string (bytes format)
Chỉ có đầu ra. Hàm băm SHA-256 của các byte đã tải lên.
Một chuỗi được mã hoá base64.
uri
string
Chỉ có đầu ra. URI của File.
downloadUri
string
Chỉ có đầu ra. URI tải xuống của File.
state
enum (State)
Chỉ có đầu ra. Trạng thái xử lý của Tệp.
source
enum (Source)
Nguồn của tệp.
error
object (Status)
Chỉ có đầu ra. Trạng thái lỗi nếu quá trình Xử lý tệp không thành công.
metadata
Union type
metadata chỉ có thể là một trong những trạng thái sau:videoMetadata
object (VideoFileMetadata)
Chỉ có đầu ra. Siêu dữ liệu của một video.
| Biểu diễn dưới dạng JSON |
|---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
Siêu dữ liệu của video File.
videoDuration
string (Duration format)
Thời lượng của video.
Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".
| Biểu diễn dưới dạng JSON |
|---|
{ "videoDuration": string } |
Tiểu bang
Các trạng thái cho vòng đời của một tệp.
| Enum | |
|---|---|
STATE_UNSPECIFIED |
Giá trị mặc định. Giá trị này được dùng nếu bạn bỏ qua trạng thái. |
PROCESSING |
Tệp đang được xử lý và chưa thể dùng để suy luận. |
ACTIVE |
Tệp được xử lý và có thể dùng để suy luận. |
FAILED |
Không xử lý được tệp. |
Nguồn
| Enum | |
|---|---|
SOURCE_UNSPECIFIED |
Được dùng nếu bạn không chỉ định nguồn. |
UPLOADED |
Cho biết người dùng đã tải tệp lên. |
GENERATED |
Cho biết tệp này do Google tạo. |
REGISTERED |
Cho biết tệp này là một tệp đã đăng ký, tức là tệp Google Cloud Storage. |
Trạng thái
Loại Status xác định một mô hình lỗi logic phù hợp với nhiều môi trường lập trình, trong đó có API REST và API RPC. gRPC sử dụng loại này. Mỗi thông báo Status chứa 3 phần dữ liệu: mã lỗi, thông báo lỗi và thông tin cụ thể về lỗi.
Bạn có thể tìm hiểu thêm về mô hình lỗi này và cách xử lý mô hình này trong Hướng dẫn thiết kế API.
code
integer
Mã trạng thái, phải là giá trị enum của google.rpc.Code.
message
string
Thông báo lỗi dành cho nhà phát triển, phải bằng tiếng Anh. Mọi thông báo lỗi mà người dùng thấy đều phải được bản địa hoá và gửi trong trường google.rpc.Status.details hoặc được ứng dụng khách bản địa hoá.
details[]
object
Danh sách các thông báo chứa thông tin cụ thể về lỗi. Có một nhóm gồm nhiều loại thông báo chung để API sử dụng.
Một đối tượng chứa các trường thuộc một loại tuỳ ý. Một trường bổ sung "@type" chứa một URI xác định loại. Ví dụ: { "id": 1234, "@type": "types.example.com/standard/id" }.
| Biểu diễn dưới dạng JSON |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |