import streamlit as st from pyserini.search.lucene import LuceneSearcher st.set_page_config( page_title="Reddit CMV", page_icon="📄", layout="wide" ) index_locations = {"shoe-sizes": "index/cmv'-shoe-sizes-should-be-the-same-for-both-men-and-women", "social-media": "index/cmv'-social-media-is-the-most-destructive-addiction-in-our-society", "depression": "index/cmv'-the-others-have-it-worse-argument-is-terrible-and-should-never-be-used-in-an-actual-conversation-with-a-depressed-person", "metric-system": "index/cmv'-there-shouldnt-be-anything-other-than-the-metric-system.", "best-time-period": "index/cmv'-today-is-the-best-time-period-in-human-history-to-be-alive-for-the-vast-majority-of-people.", } titles = {"shoe-sizes": "Shoes sizes should be the same for both men and women", "social-media": "Social Media is the most destructive addiction in our society", "depression": "'The others have it worse' argument is terrible and should never be used in an actual conversation with a depressed person", "metric-system": "There shouldn't be anything other than the metric system", "best-time-period": "Today is the best time period in human history to be alive for the vast majority of people", } instructions = {"shoe-sizes": "Explore this discussion by searching for comments using your queries of interest. You may want to introduce your own arguments to the discussion (assuming that you can do so with this interface) or simply find interesting ones from other participants.", "social-media": "Explore this discussion by searching for comments using your queries of interest. You may want to introduce your own arguments to the discussion (assuming that you can do so with this interface) or simply find interesting ones from other participants.", "depression": "Explore this discussion by searching for comments using your queries of interest. You may want to introduce your own arguments to the discussion (assuming that you can do so with this interface) or simply find interesting ones from other participants.", "metric-system": "Explore this discussion by searching for comments using your queries of interest. You may want to introduce your own arguments to the discussion (assuming that you can do so with this interface) or simply find interesting ones from other participants.", "best-time-period": "Explore this discussion by searching for comments using your queries of interest. You may want to introduce your own arguments to the discussion (assuming that you can do so with this interface) or simply find interesting ones from other participants.", } num_docs = {"shoe-sizes": 623, "social-media": 1133, "depression": 982, "metric-system": 4679, "best-time-period": 2516, } def result_html(result): return ( f"
{(result.docid)}
" f"
{(result.contents)}


" ) discussion = st.selectbox( 'Choose discussion', index_locations.keys()) searcher = LuceneSearcher(index_locations[discussion]) # searcher.set_rm3() cola, colb, colc = st.columns([5,4,5]) with colb: st.write(titles[discussion]) col1, col2 = st.columns([9, 1]) with col1: search_query = st.text_input(label="", placeholder="Search" ) with col2: st.write('#') button_clicked = st.button("🔎") if search_query or button_clicked: k=num_docs[discussion] search_results = searcher.search(search_query, k=k) if len(search_results) == 0: st.write("Retrieved 0 documents") else: st.write(f"retrieved {len(search_results)} out of {k} total posts") for result in search_results: st.write(result_html(result), unsafe_allow_html=True) with st.expander("Instructions", expanded=False): st.markdown( """ Explore this discussion by searching for comments using your queries of interest. You may want to introduce your own arguments to the discussion (assuming that you can do so with this interface) or simply find interesting ones from other participants. """ )