import gradio as gr # from relative_tester import relative_tester # from two_sample_tester import two_sample_tester # from utils import init_random_seeds # init_random_seeds() def run_test(input_text): if not input_text: return [("Please enter text to analyze.")] result = AI # relative_tester.test(input_text.strip()) if "Human" in result: return [("Human")] elif "AI" in result: return [("AI")] else: return [("Please enter a longer text")] # TODO: Add model selection in the future # Change mode name # def change_mode(mode): # if mode == "Faster Model": # .change_mode("t5-small") # elif mode == "Medium Model": # .change_mode("roberta-base-openai-detector") # elif mode == "Powerful Model": # .change_mode("falcon-rw-1b") # else: # gr.Error(f"Invaild mode selected.") # return mode css = """ #header { text-align: center; font-size: 2.5em; margin-bottom: 5px; color: #black; font-weight: bold;} #output-text { font-weight: bold; font-size: 1.2em; border-radius: 10px; padding: 10px; background-color: #f4f4f4;} .links { display: flex; justify-content: flex-end; gap: 5px; margin-right: 10px; align-items: center; font-size: 0.9em; color: #ADD8E6; } .separator { margin: 0 5px; color: #000; } /* Adjusting layout for Input Text and Inference Result */ .input-row { display: flex; width: 100%; } .input-text { flex: 3; /* 4 parts of the row */ margin-right: 1px; border-radius: 8px; padding: 12px; border: 2px solid #d1d1d1; } .output-text { flex: 1; /* 1 part of the row */ border-radius: 8px; padding: 12px; border: 2px solid #d1d1d1; text-align: center; font-size: 1.2em; font-weight: bold; } /* Set button widths to match the Select Model width */ .button { width: 250px; /* Same as the select box width */ height: 100px; /* Button height */ background-color: #ADD8E6; color: white; font-weight: bold; border-radius: 8px; } .button:hover { background-color: #0000FF; } /* Set height for the Select Model dropdown */ .select { height: 100px; /* Set height to 100px */ } /* Accordion Styling */ .accordion { width: 100%; /* Set the width of the accordion to match the parent */ max-height: auto; /* Set a auto-height for accordion */ margin-bottom: 10px; /* Add space below accordion */ box-sizing: border-box; /* Ensure padding is included in width/height */ } /* Accordion content max-height */ .accordion-content { max-height: auto; /* auto the height of the content */ } .demo-banner { background-color: #f3f4f6; padding: 20px; border-radius: 10px; font-size: 1.1em; font-weight: bold; text-align: center; margin-bottom: 20px; color: #ff5722; } /* Green for Human text */ .highlighted-human { background-color: #d4edda; color: #155724; border: 2px solid #28a745; } /* Red for AI text */ .highlighted-ai { background-color: #f8d7da; color: #721c24; border: 2px solid #dc3545; } /* Yellow for errors */ .highlighted-error { background-color: #fff3cd; color: #856404; border: 2px solid #ffc107; } """ # Gradio App with gr.Blocks(css=css) as app: with gr.Row(): gr.HTML('