Spaces:
No application file
No application file
| import streamlit as st | |
| import pandas as pd | |
| import json | |
| from utils.preprocess import preprocess_text | |
| from utils.predict import load_model, predict_label | |
| st.set_page_config( | |
| page_title="BRD Clarity Detection", | |
| layout="wide" | |
| ) | |
| st.title("๐ BRD Clarity Detection Tool") | |
| def init_model(): | |
| clf, s2v = load_model() | |
| return clf, s2v | |
| clf, s2v_model = init_model() | |
| uploaded_file = st.file_uploader( | |
| "Upload requirement file (JSON or TXT)", | |
| type=["json", "txt"] | |
| ) | |
| text_input = st.text_area("Or paste requirement text here", height=200) | |
| if st.button("Analyze"): | |
| if uploaded_file: | |
| if uploaded_file.name.endswith(".json"): | |
| data = json.load(uploaded_file) | |
| texts = [d["text"] for d in data] | |
| else: | |
| texts = uploaded_file.read().decode("utf-8").splitlines() | |
| elif text_input.strip(): | |
| texts = text_input.splitlines() | |
| else: | |
| st.warning("Please upload a file or paste text") | |
| st.stop() | |
| df = pd.DataFrame({"text": texts}) | |
| df["clean_text"] = df["text"].apply(preprocess_text) | |
| preds = predict_label(df["clean_text"], clf, s2v_model) | |
| df["Prediction"] = preds | |
| st.dataframe(df, use_container_width=True) | |