import streamlit as st import requests import tempfile # ✅ Hugging Face API Endpoints (Using Relative URLs) BACKEND_URL = "https://tejash300-ai-legal-assistant.hf.space" ANALYZE_API_URL = f"{BACKEND_URL}/analyze_legal_document" CHATBOT_API_URL = f"{BACKEND_URL}/chatbot" VIDEO_ANALYZE_API_URL = f"{BACKEND_URL}/analyze_video" # ✅ Configure Streamlit st.set_page_config(page_title="AI-Powered Legal Assistant", layout="wide") # ✅ Sidebar Navigation menu = st.sidebar.radio("📌 Navigation", ["🏠 Home", "📊 Legal Document Analyzer", "🎥 Video Analyzer", "🤖 Legal Chatbot"]) if menu == "🏠 Home": st.title("📜 AI-Powered Legal & Video Assistant") st.markdown("👋 Welcome to your AI-powered legal and video assistant! Choose an option from the sidebar.") elif menu == "📊 Legal Document Analyzer": st.title("📑 Legal Document Analyzer") uploaded_file = st.file_uploader("📂 Upload a PDF document", type=["pdf"]) if uploaded_file: st.success("✅ File uploaded successfully! Analyzing...") with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as temp_file: temp_file.write(uploaded_file.getbuffer()) temp_file_path = temp_file.name files = {"file": open(temp_file_path, "rb")} try: response = requests.post(ANALYZE_API_URL, files=files, timeout=120) response.raise_for_status() result = response.json() # 📄 Document Summary st.subheader("📑 Document Summary") st.write(result.get("summary", "No summary available.")) except requests.exceptions.RequestException as e: st.error(f"❌ API Error: {e}") elif menu == "🎥 Video Analyzer": st.title("🎬 Video Content Analyzer") uploaded_video = st.file_uploader("📂 Upload a Video File", type=["mp4", "avi", "mov"]) if uploaded_video: st.success("✅ Video uploaded successfully! Analyzing...") with tempfile.NamedTemporaryFile(delete=False, suffix=".mp4") as temp_file: temp_file.write(uploaded_video.getbuffer()) temp_file_path = temp_file.name files = {"file": open(temp_file_path, "rb")} try: response = requests.post(VIDEO_ANALYZE_API_URL, files=files, timeout=180) response.raise_for_status() result = response.json() if result.get("status") == "success": # 📄 Video Transcript st.subheader("📜 Video Transcript") st.write(result.get("transcript", "No transcript available.")) else: st.warning("⚠️ No valid data returned from the video analysis API.") except requests.exceptions.RequestException as e: st.error(f"❌ API Error: {e}") elif menu == "🤖 Legal Chatbot": st.title("🤖 AI Legal Chatbot") st.write("💡 Ask any legal question and get AI-powered responses!") user_query = st.text_input("💬 Ask a legal question:") if st.button("🔍 Get Answer"): if user_query.strip(): st.info("⏳ Processing your query...") try: response = requests.post(CHATBOT_API_URL, json={"query": user_query}, timeout=60) response.raise_for_status() chatbot_response = response.json().get("answer", "No response available.") st.subheader("💡 AI's Response") st.success(chatbot_response) except requests.exceptions.RequestException as e: st.error(f"❌ API Error: {e}") else: st.warning("⚠️ Please enter a question before submitting.")