shaheerawan3's picture
Create main.py
a5008fc verified
import streamlit as st
from utils.config import load_config
from core.text_processing import TextProcessor
from core.analysis import AdvancedAnalyzer
from core.ui import UI
def main():
# Load configuration
config = load_config()
# Setup UI
UI.setup_page()
# Initialize processors
text_processor = TextProcessor(config)
analyzer = AdvancedAnalyzer(config)
# Sidebar configuration
with st.sidebar:
st.title("Analysis Settings")
config['analysis']['num_topics'] = st.slider(
"Number of Topics",
2, 10,
config['analysis']['num_topics']
)
config['analysis']['min_entity_confidence'] = st.slider(
"Entity Confidence Threshold",
0.0, 1.0,
config['analysis']['min_entity_confidence']
)
# Main content
st.title("Enhanced AI Output Analyzer")
# Input section
input_method = st.radio("Choose input method:", ["Text Input", "File Upload"])
if input_method == "File Upload":
text = text_processor.process_file_upload(
st.file_uploader("Upload a text file", type=['txt'])
)
else:
text = st.text_area("Enter text to analyze:", height=200)
# Analysis section
if st.button("Analyze", type="primary") and text_processor.validate_text(
text, config['analysis']['max_text_length']
):
try:
with st.spinner("Analyzing text..."):
results = analyzer.analyze_text(text)
UI.display_results(results)
except Exception as e:
st.error(f"An error occurred during analysis: {str(e)}")
if __name__ == "__main__":
main()