Model Gemini Robotics ER 2 może śledzić postępy zadań na podstawie ciągłych strumieni wideo dzięki 2 funkcjom:
- Wyszukiwanie momentów: identyfikuje dokładny znacznik czasu, w którym występuje kluczowe zdarzenie.
- Klasyfikacja postępów: przypisuje każdy film do jednego z 5 przedziałów ukończenia (0–20%, 20–40%, 40–60%, 60–80%, 80–100%).
Wyszukiwanie momentów
Wyszukiwanie momentów identyfikuje dokładną klatkę wideo, w której występuje krytyczne zdarzenie, np. gdy kubek jest pełny lub gdy zawiązany jest węzeł. Roboty używają tej funkcji do weryfikowania sukcesu, sekwencji kroków i wywoływania korekt.
Poniższy przykładowy prompt prosi model o zidentyfikowanie momentu ukończenia danego zadania w filmie:
from google import genai
from google.genai import types
client = genai.Client()
with open("task_video.mp4", "rb") as f:
video_bytes = f.read()
prompt = """
At what timestamp (in seconds) does the task reach successful completion?
Return a JSON object: {"completion_time_seconds": <float>}.
If the task is not completed, return {"completion_time_seconds": null}.
"""
response = client.models.generate_content(
model="gemini-robotics-er-2-preview",
contents=[
types.Part.from_bytes(data=video_bytes, mime_type="video/mp4"),
prompt,
],
)
print(response.text)
Poniżej przedstawiamy przykładowe klatki z filmu, w którym wyszukiwane są momenty. Model identyfikuje znacznik czasu ukończenia zadania:
Klasyfikacja postępów
Klasyfikacja postępów przypisuje film do jednego z 5 przedziałów ukończenia: 0–20%, 20–40%, 40–60%, 60–80% lub 80–100%. Dzięki temu roboty mają świadomość sytuacji w czasie rzeczywistym, co pozwala im dostosowywać działania lub ponawiać nieudane kroki bez konieczności ponownego uruchamiania całego przepływu pracy.
Poniższy przykładowy prompt prosi model o sklasyfikowanie bieżącego poziomu postępu na podstawie filmu:
from google import genai
from google.genai import types
client = genai.Client()
with open("task_video.mp4", "rb") as f:
video_bytes = f.read()
prompt = """
Watch this video and classify the task progress level at the final frame.
Return a JSON object with the progress bracket:
{"progress_level": "0-20" | "20-40" | "40-60" | "60-80" | "80-100"}.
"""
response = client.models.generate_content(
model="gemini-robotics-er-2-preview",
contents=[
types.Part.from_bytes(data=video_bytes, mime_type="video/mp4"),
prompt,
],
)
print(response.text)
Poniżej przedstawiamy przykładowe klatki z filmu, w którym klasyfikowane są postępy. Model przypisuje przedział postępu:
Przykłady
Pełne przykłady, które można uruchomić, w tym śledzenie zadań wieloetapowych, znajdziesz w przewodniku Robotics.
Co dalej?
- Interfejs Live API dla robotyki – dwukierunkowe przesyłanie strumieniowe w czasie rzeczywistym.
- Orkiestracja zadań – zadania długoterminowe z rozumowaniem przestrzennym.
- Omówienie modelu Gemini Robotics ER – porównanie modeli i możliwości.