Maharshi Gor
Adds quizbowl pipeline support for bonus and tossup questions
02b7dec
raw
history blame
1.65 kB
from typing import Optional
import gradio as gr
from loguru import logger
from app_configs import UNSELECTED_PIPELINE_NAME
from components.model_pipeline.model_pipeline import PipelineState, PipelineUIState
from display.formatting import styled_error
from submission import submit
def get_user_submission_names(profile: gr.OAuthProfile | None) -> list[str]:
if profile is None:
logger.error("Authentication required. Please log in to view your submissions.")
return []
return submit.get_user_submission_names("tossup", profile)
def get_pipeline_names(competition_type: str, profile: gr.OAuthProfile | None) -> list[str]:
demo_example_names = submit.get_demo_example_submissions(competition_type)
user_model_names = submit.get_user_submission_names(competition_type, profile)
all_names = demo_example_names + user_model_names
logger.info("Loaded model names: {all_names}")
return all_names
def load_pipeline(competition_type: str, model_name: str, profile: gr.OAuthProfile | None) -> Optional[PipelineState]:
if not model_name or model_name == UNSELECTED_PIPELINE_NAME:
return None
username, model_name = model_name.split("/")
if username == "umdclip":
workflow = submit.load_demo_example(model_name, competition_type)
elif profile is not None:
submission = submit.load_submission(model_name, competition_type, profile)
workflow = submission.workflow
else:
raise gr.Error("Authentication required. Please log in to view your submissions.")
return PipelineState(workflow=workflow, ui_state=PipelineUIState.from_workflow(workflow))