InternNav-Eval-Demo / ui_components.py
jandan138's picture
Upload 10 files
ad1357a verified
# ui_components.py
# Gradio界面相关和辅助函数
import gradio as gr
from config import SCENE_CONFIGS
from logging_utils import read_logs, format_logs_for_display
def update_history_display(history: list) -> list:
updates = []
for i in range(10):
if i < len(history):
entry = history[i]
label_text = f"Simulation {i+1} scene: {entry['scene']}, model: {entry.get('model','')}, mode: {entry.get('mode','')}, prompt: {entry['prompt']}"
updates.extend([
gr.update(visible=True),
gr.update(visible=True, label=label_text, open=False),
gr.update(value=entry['video_path'], visible=True),
gr.update(value=f"{entry['timestamp']}")
])
else:
updates.extend([
gr.update(visible=False),
gr.update(visible=False),
gr.update(value=None, visible=False),
gr.update(value="")
])
return updates
def update_scene_display(scene: str):
config = SCENE_CONFIGS.get(scene, {})
desc = config.get("description", "No Description")
objects = "、".join(config.get("objects", []))
image = config.get("preview_image", None)
markdown = f"**{desc}** \nPlaces Included: {objects}"
return markdown, image
def get_scene_instruction(scene: str):
"""根据场景获取默认指令"""
config = SCENE_CONFIGS.get(scene, {})
return config.get("default_instruction", "")
def update_log_display():
logs = read_logs()
return format_logs_for_display(logs)