import streamlit as st from generator import generate_response_from_document from retrieval import retrieve_documents from evaluation import calculate_metrics from data_processing import load_data_from_faiss, ragbench # Page Title st.title("RAG7 - Real World RAG System") @st.cache_data def load_data(): load_data_from_faiss() data_status = load_data() # Question Section st.subheader("Hi, What do you want to know today?") question = st.text_area("Enter your question:", placeholder="Type your question here...", height=100) # Submit Button if st.button("Submit"): retrieved_documents = retrieve_documents(question, 5) response = generate_response_from_document(question, retrieved_documents) else: response = "" # Response Section st.subheader("Response") st.text_area("Generated Response:", value=response, height=150, disabled=True) # Metrics Section st.subheader("Metrics") col1, col2 = st.columns([1, 3]) # Creating two columns for button and metrics display with col1: if st.button("Calculate Metrics"): metrics = calculate_metrics(question, response, retrieved_documents, ragbench) else: metrics = "" with col2: st.text_area("Metrics:", value=metrics, height=100, disabled=True)