File size: 3,708 Bytes
0042cc6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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.")