import streamlit as st import json from datetime import datetime import uuid import os import time # Import your agent function (assuming it's in the same directory or properly imported) # from your_agent_file import call_agent # Mock function for demonstration - replace with your actual call_agent function def call_agent(query): """ Mock function - replace this with your actual call_agent function """ # This is a mock response for demonstration mock_response = [ {"id": 1, "task": "Fetch DEM data for the specified region", "tool": "DEMFetcher"}, {"id": 2, "task": "Extract drainage networks from available data", "tool": "DrainageExtractor"}, {"id": 3, "task": "Analyze hydrological flow patterns", "tool": "HydrologyAnalyzer"}, {"id": 4, "task": "Generate flood risk assessment maps", "tool": "LLM Reasoning"} ] # Mock state object class MockState: def __init__(self): self.query = query self.response = mock_response self.output_files_path = [f"outputs/geospatial_plan_{datetime.now().strftime('%Y%m%d_%H%M%S')}_{uuid.uuid4().hex[:6]}.json"] return MockState() # Sample analysis data - Replace with your actual image URLs and captions SAMPLE_ANALYSES = [ { "image_url": "output.png", "caption": "Flood vulnerability analysis of Chennai during monsoon season", "query": "Create a flood risk assessment map for Chennai during monsoon season" }, { "image_url": "https://via.placeholder.com/800x600/2196F3/FFFFFF?text=Urban+Heat+Island+Mumbai", "caption": "Urban heat island analysis of Mumbai metropolitan area", "query": "Analyze urban heat island effect in Mumbai using satellite imagery" }, { "image_url": "https://via.placeholder.com/800x600/FF9800/FFFFFF?text=Deforestation+Amazon", "caption": "Deforestation monitoring in Amazon rainforest", "query": "Monitor deforestation patterns in Amazon rainforest using multi-temporal satellite data" }, { "image_url": "https://via.placeholder.com/800x600/9C27B0/FFFFFF?text=Crop+Yield+Punjab", "caption": "Crop yield prediction analysis for Punjab agricultural regions", "query": "Predict crop yield for wheat cultivation in Punjab using satellite data" }, { "image_url": "https://via.placeholder.com/800x600/F44336/FFFFFF?text=Wildfire+California", "caption": "Wildfire risk assessment and spread modeling", "query": "Create wildfire risk maps and predict fire spread patterns for California" } ] # Page configuration st.set_page_config( page_title="Geospatial AI Task Planner", page_icon="🌍", layout="wide", initial_sidebar_state="collapsed" ) # Custom CSS for modern design st.markdown(""" """, unsafe_allow_html=True) # Initialize session state if 'messages' not in st.session_state: st.session_state.messages = [] if 'generated_json' not in st.session_state: st.session_state.generated_json = None if 'processing' not in st.session_state: st.session_state.processing = False if 'current_slide' not in st.session_state: st.session_state.current_slide = 0 if 'last_slide_change' not in st.session_state: st.session_state.last_slide_change = time.time() # Header with logos and title st.markdown("""
Geospatial AI Task Planner
{current_analysis['query']}
{json_str}