วิธีใช้งาน Gemini Omni 1.1 Flash API

เรียกใช้งาน gemini-omni-1.1-flash ผ่าน Google Interactions API: รับคีย์, สร้างคำขอแรกของคุณด้วย curl และ Python, จัดการการส่ง URI ขนาด 4MB, และบันทึกการเรียกใช้งานเป็นการทดสอบใน Apidog

INEZA Felin-Michel

INEZA Felin-Michel

3 September 2026

วิธีใช้งาน Gemini Omni 1.1 Flash API

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

คุณเรียกใช้ Gemini Omni 1.1 Flash ด้วย model id gemini-omni-1.1-flash ผ่าน Google’s Interactions API ไม่ใช่ generateContent endpoint ที่คุณใช้สำหรับโมเดลข้อความ นี่คือสิ่งแรกที่คนส่วนใหญ่สับสน หากคุณคัดลอกส่วนย่อยของข้อความ Gemini และสลับชื่อโมเดล คุณจะได้รับข้อผิดพลาด 404

คู่มือนี้จะนำคุณตั้งแต่เทอร์มินัลว่างเปล่าไปจนถึงการส่งคำขอสร้างวิดีโอที่ผ่านการทดสอบ คุณจะได้รับคีย์ ทำการเรียกใช้ครั้งแรกใน curl และ Python เรียนรู้พารามิเตอร์ที่มีอยู่ (และรายการที่น่าประหลาดใจที่ไม่มี) จัดการกับการตอบกลับขนาดใหญ่ และบันทึกทั้งหมดเป็นชุดทดสอบที่ทำซ้ำได้

โมเดลนี้เปิดตัวสู่สาธารณะ (GA) เมื่อวันที่ 27 สิงหาคม 2026 สำหรับสิ่งที่มาพร้อมกับโมเดลนี้ โปรดดู มีอะไรใหม่ใน Gemini Omni 1.1 Flash

สิ่งที่คุณต้องมีก่อนเริ่มต้น

จัดเก็บคีย์เป็นตัวแปรสภาพแวดล้อม แทนที่จะวางลงในซอร์สโค้ด:

export GEMINI_API_KEY="your_key_here"

SDK อย่างเป็นทางการจะอ่านตัวแปรนั้นเอง ซึ่งช่วยให้ความลับของคุณไม่รั่วไหลไปยัง repository ของคุณ

การเรียกใช้การสร้างวิดีโอครั้งแรกของคุณ

endpoint คือการส่งคำขอแบบ POST ไปยัง /v1beta/interactions นี่คือตัวอย่างใน curl:

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-omni-1.1-flash",
    "input": "A marble rolling fast on a chain reaction style track, continuous smooth shot."
  }'

สองฟิลด์: โมเดลและอินพุต นี่คือคำขอขั้นต่ำทั้งหมด การตอบกลับจะส่งวิดีโอที่สร้างขึ้นเป็น base64 ใน output_video.data

ใน Python ให้ติดตั้ง SDK ด้วย pip install google-genai จากนั้น:

import base64
from google import genai

client = genai.Client()  # reads GEMINI_API_KEY from the environment

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A marble rolling fast on a chain reaction style track, continuous smooth shot.",
)

with open("marble.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))

JavaScript ใช้รูปแบบเดียวกันกับ @google/genai:

import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';

const ai = new GoogleGenAI({});

const interaction = await ai.interactions.create({
  model: 'gemini-omni-1.1-flash',
  input: 'A marble rolling fast on a chain reaction style track, continuous smooth shot.',
});

if (interaction.output_video?.data) {
  fs.writeFileSync('marble.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}

การสร้างใช้เวลา ความล่าช้าจะขึ้นอยู่กับระยะเวลา ความละเอียด และโหลด API ปัจจุบัน ดังนั้นควรกำหนด client timeout ให้มากพอ ก่อนที่คุณจะตัดสินว่ามีบางอย่างผิดปกติ

การควบคุมความละเอียดและอัตราส่วนภาพ

ทุกอย่างเกี่ยวกับรูปแบบเอาต์พุตอยู่ใน response_format:

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A drone shot of a mountain landscape at sunrise.",
    response_format={
        "type": "video",
        "aspect_ratio": "16:9",
        "resolution": "1080p",
    },
)

ค่าที่ยอมรับ:

ฟิลด์ ค่า ค่าเริ่มต้น
type video video
aspect_ratio 16:9, 9:16 16:9
resolution 360p, 720p, 1080p, 4k 720p
delivery base64 แบบอินไลน์, uri อินไลน์

ร่างวิดีโอที่ 360p มันสร้างได้เร็วกว่า 720p ถึง 60% และมีค่าใช้จ่ายเพียงหนึ่งในสาม ทำให้การลองสร้างพรอมต์ 15 ครั้งของคุณมีค่าใช้จ่ายเท่ากับการสร้าง 5 ครั้งในอดีต เรนเดอร์ฉบับที่คุณเก็บไว้ด้วยความละเอียดที่สูงขึ้น 1080p และ 4k เป็นการเพิ่มสเกลของเฟรมที่สร้างขึ้น ไม่ใช่การเรนเดอร์แบบเนทีฟ รายละเอียดราคา แสดงให้เห็นว่าแต่ละระดับมีค่าใช้จ่ายต่อวินาทีเท่าใด

พารามิเตอร์ที่ไม่มีอยู่

รายการนี้สำคัญกว่ารายการข้างต้น เพราะมิฉะนั้นคุณจะเสียเวลาไปทั้งบ่ายโดยเปล่าประโยชน์:

หากคุณต้องการยกเว้นบางสิ่งออกจากภาพ ให้เขียนข้อยกเว้นนั้นลงในพรอมต์โดยตรง ตัวอย่างในเอกสารประกอบก็ทำเช่นนั้น: “ใช้ภาพวาดเป็นเพียงแนวทางสำหรับการเคลื่อนไหวเท่านั้น ห้ามแสดงภาพวาดในวิดีโอสุดท้าย”

อินพุตภาพ, คีย์เฟรม และการอ้างอิง

ส่งรายการ (list) แทนสตริง (string) เมื่อคุณต้องการรวมสื่อ ภาพเป็นวิดีโอ:

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "image", "data": base64_image, "mime_type": "image/jpeg"},
        {"type": "text", "text": "turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video"},
    ],
)

รูปภาพสองภาพจะกลายเป็นเฟรมแรกและเฟรมสุดท้าย และโมเดลจะสร้างการเคลื่อนไหวระหว่างภาพเหล่านั้น:

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "image", "data": first_frame_b64, "mime_type": "image/jpeg"},
        {"type": "image", "data": last_frame_b64, "mime_type": "image/jpeg"},
        {"type": "text", "text": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky."},
    ],
)

การอ้างอิงวิดีโอทำงานในลักษณะเดียวกันผ่าน Files API โดยจำกัดที่คลิปสามคลิป คลิปละสามวินาที เสียงในคลิปเหล่านั้นจะถูกละเว้น โมเดลจะอ่านเพื่อการเคลื่อนไหวและลักษณะที่ปรากฏ

การแก้ไขแบบหลายขั้นตอน

นี่คือสิ่งที่แยก Omni ออกจาก endpoint การแปลงข้อความเป็นวิดีโอธรรมดา สร้างครั้งเดียว จากนั้นแก้ไขแบบสนทนาโดยส่ง ID การโต้ตอบครั้งก่อนหน้า:

res1 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A woman playing violin outdoors.",
)

res2 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    previous_interaction_id=res1.id,
    input="Make the violin invisible.",
)

ไม่ต้องอัปโหลดใหม่ ไม่ต้องอธิบายฉากใหม่ กลไกเดียวกันนี้ขับเคลื่อนการขยายฉาก ซึ่งมีอธิบายไว้ใน คู่มือการขยายฉาก 40 วินาที

การจัดการวิดีโอขนาดเกิน 4MB

ไฟล์ใดๆ ที่มีขนาดใหญ่กว่า 4MB จะถูกส่งกลับเป็น URI แทนที่จะเป็น base64 แบบอินไลน์ และไฟล์จะต้องประมวลผลเสร็จสิ้นก่อนที่คุณจะสามารถดาวน์โหลดได้ นี่คือข้อผิดพลาดที่คนส่วนใหญ่พบเมื่อใช้ความละเอียด 1080p: ตัวจัดการของพวกเขาอ่าน output_video.data แล้วไม่พบอะไรเลย และรายงานความล้มเหลวแบบเงียบๆ

ขอให้ส่งแบบ URI อย่างชัดเจนและตรวจสอบสถานะ:

import time
from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A beautiful sunset.",
    response_format={"type": "video", "delivery": "uri"},
)

video_output = interaction.output_video
file_name = video_output.uri.split("/")[-1]

while True:
    f_info = client.files.get(name=f"files/{file_name}")
    if f_info.state.name == "ACTIVE":
        break
    if f_info.state.name == "FAILED":
        raise RuntimeError("Generation failed.")
    time.sleep(5)

video_bytes = client.files.download(file=video_output.uri)
with open("output.mp4", "wb") as f:
    f.write(video_bytes)

เขียนตัวจัดการการตอบกลับของคุณให้ยอมรับทั้งสองรูปแบบตั้งแต่เริ่มต้น ความละเอียดจะเปลี่ยนรูปแบบที่คุณได้รับ

ทดสอบคำขอใน Apidog

เมื่อการเรียกใช้งานได้ ปัญหาจะเปลี่ยนไป ตอนนี้คุณมี endpoint ที่มีราคาแพง ช้า และไม่สามารถคาดการณ์ผลลัพธ์ได้ อยู่ในเส้นทางสำคัญของคุณ และคุณจำเป็นต้องรู้ว่าเมื่อใดที่มันเปลี่ยนพฤติกรรม คำสั่ง curl ชั่วคราวในประวัติ shell ไม่ได้บอกคุณสิ่งนั้น

ตั้งค่าครั้งเดียวใน Apidog:

  1. สร้างโปรเจกต์และสภาพแวดล้อม ใส่ GEMINI_API_KEY และ MODEL_ID ในตัวแปรสภาพแวดล้อม เพื่อให้คีย์ไม่ถูกบันทึกในคำขอ
  2. เพิ่มคำขอ ส่ง POST ไปยัง https://generativelanguage.googleapis.com/v1beta/interactions พร้อมกับ JSON body ที่มี model และ input อ้างอิงตัวแปรด้วย {{MODEL_ID}}
  3. เพิ่มระยะเวลาไทม์เอาต์ การสร้างวิดีโอใช้เวลานานกว่าการสร้างข้อความมาก และ client timeout เริ่มต้นจะตัดการเชื่อมต่อ
  4. เพิ่มเงื่อนไขการยืนยัน (assertions) ตรวจสอบรหัสสถานะ ตรวจสอบว่า output_video มีอยู่ และตรวจสอบรูปแบบการตอบกลับที่คุณคาดหวังที่ความละเอียดของคุณ นี่คือเงื่อนไขการยืนยันที่ตรวจจับการสลับระหว่างอินไลน์กับ URI
  5. ทำซ้ำสำหรับแต่ละประเภทงาน บันทึกคำขอหนึ่งรายการสำหรับ text-to-video, image-to-video และ extension เมื่อ Google เปิดตัว Omni 1.2 คุณจะเรียกใช้คำขอสามรายการและทราบได้ในไม่กี่นาทีว่ามีอะไรเปลี่ยนแปลงไป

Apidog ไม่ได้สร้างวิดีโอและไม่ใช่เฟรมเวิร์ก AI เป็นที่ที่คุณสร้างคำขอ ส่งคำขอ และรักษาการตอบกลับให้เป็นไปตามมาตรฐานที่คุณกำหนด ดาวน์โหลด Apidog หากคุณต้องการมีเครื่องมือนี้ก่อนที่คุณจะขยายการใช้งาน

ข้อผิดพลาดและวิธีแก้ไขทั่วไป

คำถามที่พบบ่อย (FAQ)

การผสานรวมทั้งหมดประกอบด้วยสองฟิลด์ที่จำเป็นและตัวจัดการการตอบกลับที่สามารถจัดการได้ทั้งสองรูปแบบการส่งมอบ เริ่มด้วยการเรียกใช้ 360p ให้ใช้งานได้ก่อน บันทึกพร้อมการยืนยัน จากนั้นค่อยเพิ่มความละเอียดเมื่อคุณมั่นใจในระบบ อ่าน เอกสารทางการของ Omni สำหรับรายการพารามิเตอร์ที่พัฒนาอยู่

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API