Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from collections import defaultdict | |
| # Function to detect conflicts between two cases | |
| def detect_conflicts(case_1, case_2): | |
| # Sample data - should be replaced with actual data fetching logic | |
| cases_data = [ | |
| { | |
| "id": "46690", | |
| "title": "United Operations v. Comoros", | |
| "parties": ["3535", "64825"] | |
| }, | |
| { | |
| "id": "46609", | |
| "title": "Expropriated Religious Properties", | |
| "parties": ["7302", "7319", "7790", "3535"] # Party "3535" added to cause a conflict | |
| }, | |
| { | |
| "id": "46542", | |
| "title": "Bellwether and Tecnipetrol v. Ecuador and Petroecuador", | |
| "parties": ["7569", "13856", "64647", "64648"] | |
| } | |
| ] | |
| # A function to detect conflicts between two case inputs | |
| conflicts = defaultdict(list) | |
| # Convert case_1 and case_2 to IDs | |
| case_1 = case_1.strip() | |
| case_2 = case_2.strip() | |
| # Find the two cases from the sample data | |
| selected_cases = [ | |
| case for case in cases_data if case_1 == case["id"] or case_2 == case["id"] | |
| ] | |
| # If both cases are found, proceed to check conflicts | |
| if len(selected_cases) == 2: | |
| case_1_parties = set(selected_cases[0]["parties"]) | |
| case_2_parties = set(selected_cases[1]["parties"]) | |
| # Find the common parties | |
| common_parties = case_1_parties.intersection(case_2_parties) | |
| if common_parties: | |
| conflicts_output = "Conflicts Detected:\n" | |
| for party in common_parties: | |
| conflicts_output += f"Party {party} is involved in the following cases:\n" | |
| conflicts_output += f" - {selected_cases[0]['title']} (Case ID: {selected_cases[0]['id']})\n" | |
| conflicts_output += f" - {selected_cases[1]['title']} (Case ID: {selected_cases[1]['id']})\n" | |
| conflicts_output += "-" * 40 + "\n" | |
| else: | |
| conflicts_output = "No conflicts detected." | |
| return conflicts_output | |
| else: | |
| return "Invalid Case IDs" | |
| # Gradio UI Setup | |
| def create_gradio_ui(): | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Conflict Detection Tool") | |
| gr.Markdown("This app detects conflicts between two cases based on party involvement.") | |
| # User inputs for case IDs | |
| case_id_1 = gr.Textbox(label="Enter Case ID 1", placeholder="Enter the first case ID here...") | |
| case_id_2 = gr.Textbox(label="Enter Case ID 2", placeholder="Enter the second case ID here...") | |
| # Output area for the result | |
| output_area = gr.Textbox(label="Conflict Detection Output", lines=10) | |
| # Button to trigger conflict detection | |
| detect_button = gr.Button("Detect Conflicts") | |
| # Define button click behavior | |
| detect_button.click(detect_conflicts, inputs=[case_id_1, case_id_2], outputs=[output_area]) | |
| demo.launch() | |
| # Run the Gradio app | |
| if __name__ == "__main__": | |
| create_gradio_ui() | |