import streamlit as st import streamlit.components.v1 as components import random from pathlib import Path paths_to_html = [Path(filename) for filename in Path("./html_files/").glob("*.html")] # path_to_html = random.choice(paths_to_html) # Show in webpage # written_by = {} # st.header(f"Judge this email") # with open(path_to_html, "r") as f: # html_data = f.read() # st.components.v1.html(html_data, height=2100) # written_by[path_to_html.as_posix()] = st.sidebar.radio( # "Written by a human or generated by AI ?", # ["Human", "AI"], # horizontal=True, # index=None, #random.randint(0, 1), # key=path_to_html, # ) # # col1, col2 = st.columns([1,1]) # with col1: # if st.button(label="Human", key=path_to_html.as_posix()+"human"): # written_by[path_to_html.as_posix()] = "human" # with col2: # if st.button(label="GenAI", key=path_to_html.as_posix()+"ai"): # written_by[path_to_html.as_posix()] = "ai" # st.components.v1.html( # """
""" # ) # st.stop() label_to_number = {"Human":0, "AI":1} if "html_idx" not in st.session_state: st.session_state.html_idx = 0 if "html_ratings" not in st.session_state: st.session_state.html_ratings = {} # Display the image path_to_html = paths_to_html[st.session_state.html_idx] with open(path_to_html, "r") as f: html_data = f.read() st.components.v1.html(html_data, height=2100) if st.session_state["html_idx"] in st.session_state.html_ratings: rating = st.session_state.html_ratings[st.session_state.html_idx] else: rating = "" if rating := st.radio( "Written by a human or generated by AI ?", ["Human", "AI"], horizontal=True, index=None if rating == "" else label_to_number[rating], key=path_to_html, ): st.session_state.html_ratings[st.session_state.html_idx] = rating st.info("Submitted!") if st.button("Next email", key="next"): idx = st.session_state.html_idx idx = (idx + 1) % len(paths_to_html) st.session_state.html_idx = idx st.experimental_rerun() elif st.button("Previous email", key="previous"): idx = st.session_state.html_idx idx = (idx - 1) % len(paths_to_html) st.session_state.html_idx = idx st.experimental_rerun() else: if st.button("Quit", key="quit"): # send email with data or append to jsonl file st.success(f"Thank you for rating {len(st.session_state.html_ratings)} emails, you can close the webpage.") # st.session_state