Spaces:
Running
Running
| # app.py β Streamlit UI for AutoReview AI | |
| import streamlit as st | |
| from main import review_pr_simple | |
| # ββ PAGE CONFIG βββββββββββββββββββββββββββ | |
| st.set_page_config( | |
| page_title="AutoReview AI", | |
| page_icon="π€", | |
| layout="centered" | |
| ) | |
| # ββ TITLE βββββββββββββββββββββββββββββββββ | |
| st.title("π€ AutoReview AI") | |
| st.markdown("*Autonomous GitHub PR Reviewer powered by LLaMA + Groq*") | |
| st.divider() | |
| # ββ INPUT βββββββββββββββββββββββββββββββββ | |
| pr_url = st.text_input( | |
| "Enter GitHub PR URL", | |
| placeholder="https://github.com/owner/repo/pull/123" | |
| ) | |
| # ββ BUTTON ββββββββββββββββββββββββββββββββ | |
| if st.button("π Review PR", type="primary"): | |
| # check if URL is empty | |
| if not pr_url: | |
| st.warning("Please enter a PR URL first!") | |
| else: | |
| # show spinner while reviewing | |
| with st.spinner("π€ Reviewing PR... this may take 30 seconds"): | |
| result = review_pr_simple(pr_url) | |
| # if success | |
| if result["success"]: | |
| st.success("β Review Complete!") | |
| st.divider() | |
| # show PR data | |
| st.subheader("π PR Summary") | |
| st.code(result["pr_data"][:500]) | |
| # show analysis | |
| st.subheader("π Code Analysis") | |
| st.write(result["analysis"]) | |
| # show verdict | |
| st.subheader("β Final Verdict") | |
| st.write(result["verdict"]) | |
| # if failed | |
| else: | |
| st.error(f"β Failed: {result['error']}") | |
| # ββ FOOTER ββββββββββββββββββββββββββββββββ | |
| st.divider() | |
| st.caption("Built with LangChain + Groq + Streamlit") |