Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from src.analyzer import EventAnalyzer | |
| from ui.format import ResultFormatter | |
| from ui.styles import css | |
| # Initialize analyzer | |
| analyzer = EventAnalyzer() | |
| async def process_input(text: str) -> str: | |
| """Process input text and return formatted HTML results.""" | |
| result = await analyzer.analyze_event(text) | |
| return ResultFormatter.format_results(result) | |
| # Define example inputs | |
| EXAMPLES = [ | |
| ["John from Tech Corp. is attending the meeting in Washington, DC tomorrow at 14:30 #tech"], | |
| ["Sarah Johnson and Mike Smith from Defense Systems Inc. are conducting training in Norfolk, VA on June 15th #defense #training"], | |
| ["Team meeting at headquarters with @commander_smith at 0900 #briefing"], | |
| ["Prof. Maria Garcia from MIT will present her research at Stanford University on quantum computing next Thursday at 15:00 PST #science #quantum"], | |
| ["Annual cybersecurity conference by InfoSec Systems at Dubai World Trade Centre from May 5-7, featuring keynote speaker Dr. James Wilson #security"], | |
| ["Emergency response drill coordinated by FEMA and local authorities in Houston, TX on April 2nd at 0800 hours #emergency #preparedness"] | |
| ] | |
| # Create custom theme with better alert colors | |
| theme = gr.themes.Soft( | |
| primary_hue="blue", | |
| secondary_hue="neutral", | |
| ) | |
| # Create Gradio interface with custom layout | |
| with gr.Blocks(theme=theme, css=css, title="Event Analysis System") as demo: | |
| gr.Markdown("# Event Analysis System") | |
| gr.Markdown("Analyze text to extract entities, assess confidence, and identify key event information with relationship tracking.") | |
| with gr.Row(): | |
| with gr.Column(scale=2): | |
| input_box = gr.Textbox( | |
| label="Event Text", | |
| placeholder="Enter text to analyze (e.g., 'John from Tech Corp. is attending the meeting in Washington, DC tomorrow at 14:30 #tech')", | |
| lines=3 | |
| ) | |
| gr.Examples( | |
| examples=EXAMPLES, | |
| inputs=[input_box], | |
| label="Example Inputs", | |
| examples_per_page=6 | |
| ) | |
| submit_btn = gr.Button("Submit", variant="primary") | |
| with gr.Column(scale=3): | |
| output = gr.HTML(label="Analysis Results") | |
| # Event handlers | |
| submit_btn.click(fn=process_input, inputs=input_box, outputs=output) | |
| input_box.submit(fn=process_input, inputs=input_box, outputs=output) | |
| if __name__ == "__main__": | |
| demo.launch() |