API/interactions
Tạo hoặc sửa video bằng Gemini Omni. Gửi văn bản kèm ảnh hoặc video tham chiếu (không bắt buộc), rồi nhận kết quả dạng base64 ngay trong cùng phản hồi.
Gửi JSON kèm API key trong header Authorization. Request được giữ mở trong lúc video được tạo. Ví dụ cURL lưu phản hồi vào interaction.json; ví dụ Python còn giải mã và lưu từng video. Cài thư viện requests để chạy ví dụ Python.
Nếu bỏ response_format, mặc định là đầu ra video 720p, trả về dạng inline. Từng mô hình có thể có thêm giới hạn riêng cho thời lượng và các thiết lập đầu ra được yêu cầu.
Để chuyển ảnh sang video, hãy dựng một mảng input chứa prompt của bạn và ảnh tham chiếu. Đọc dữ liệu ảnh và mã hoá sang base64:
Đặt input thành input_blocks trong request Python ở trên. Để sửa video, dùng một khối video thay thế, như trong body request này:
Thay chỗ giữ base64 bằng toàn bộ nội dung tệp. data chứa base64 thuần, không có tiền tố data:. Dùng mime_type tương ứng như image/png, image/jpeg hoặc video/mp4. URL tệp và trường uri không được chấp nhận.
Phản hồi rút gọn dưới đây cho thấy video được trả về ở đâu. Đọc các bước model_output và giải mã trường data của từng khối video:
Một phản hồi completed có thể chỉ chứa văn bản làm rõ hoặc từ chối mà không có video. Đọc các khối text và kiểm tra có khối video hay không trước khi lưu tệp.
Hãy lưu dữ liệu trả về trong ứng dụng của bạn. Endpoint này không có route GET, DELETE hay tải nội dung về sau đó, và id của interaction không dùng được để lấy lại hoặc tiếp tục một request trước.
Gọi GET /v1/models với API key của bạn để tìm các mô hình bạn gọi được. Chọn mô hình có supported_endpoints chứa /v1/interactions.
Mức dùng được tính giá theo token đầu vào, đầu ra văn bản, suy luận và đầu ra video. Đơn giá tính bằng đồng cho mỗi token; xem giá hiện hành trong danh mục mô hình.
Gửi đầy đủ input trong mỗi request. Không hỗ trợ streaming, job chạy nền, lưu lịch sử, previous_interaction_id, agent, tool, system_instruction và generation_config. Khối input âm thanh không được chấp nhận.
Với các mô hình dùng job video bất đồng bộ, xem POST /v1/videos.
https://api.ltnproxy.com/v1/interactionsAuthorization: Bearer sk-your_api_keycurl "https://api.ltnproxy.com/v1/interactions" \
-H "Authorization: Bearer sk-your_api_key" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.1-flash",
"input": "Tạo một video dài ba giây về chiếc tách gốm màu xanh lam trên bàn trắng, máy quay chuyển động nhẹ nhàng.",
"store": false,
"response_format": {
"type": "video",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": "3s",
"delivery": "inline"
}
}' \
-o interaction.jsonimport base64
from pathlib import Path
reference = base64.b64encode(Path("reference.png").read_bytes()).decode("ascii")
input_blocks = [
{"type": "text", "text": "Tạo chuyển động cho cảnh này với một cú lia máy chậm."},
{"type": "image", "mime_type": "image/png", "data": reference},
]{
"model": "gemini-omni-1.1-flash",
"input": [
{
"type": "text",
"text": "Đổi ánh sáng thành hoàng hôn ấm áp, giữ nguyên bối cảnh và chuyển động máy quay."
},
{
"type": "video",
"mime_type": "video/mp4",
"data": "<base64-video>"
}
],
"store": false,
"response_format": {
"type": "video",
"resolution": "720p",
"delivery": "inline"
}
}{
"id": "interaction_example",
"model": "gemini-omni-1.1-flash",
"status": "completed",
"steps": [
{
"type": "model_output",
"content": [
{
"type": "video",
"mime_type": "video/mp4",
"data": "<base64-mp4>"
}
]
}
]
}