import streamlit as st from functions import * from langchain.chains import QAGenerationChain import itertools st.set_page_config(page_title="Earnings Question/Answering", page_icon="🔎") st.sidebar.header("Semantic Search") st.markdown("## Earnings Semantic Search with LangChain, OpenAI & SBert") st.markdown( """ """, unsafe_allow_html=True, ) bi_enc_dict = {'mpnet-base-v2':"all-mpnet-base-v2", 'instructor-base': 'hkunlp/instructor-base'} search_input = st.text_input( label='Enter Your Search Query',value= "What key challenges did the business face?", key='search') sbert_model_name = st.sidebar.selectbox("Embedding Model", options=list(bi_enc_dict.keys()), key='sbox') chunk_size = 1000 overlap_size = 50 try: if search_input: if "sen_df" in st.session_state and "earnings_passages" in st.session_state: ## Save to a dataframe for ease of visualization sen_df = st.session_state['sen_df'] title = st.session_state['title'] earnings_text = ','.join(st.session_state['earnings_passages']) st.session_state.eval_set = generate_eval( earnings_text, 10, 3000) # Display the question-answer pairs in the sidebar with smaller text for i, qa_pair in enumerate(st.session_state.eval_set): st.sidebar.markdown( f"""
{qa_pair['question']}
{qa_pair['answer']}