Spaces:
Sleeping
Sleeping
| import os | |
| from groq import Groq | |
| import streamlit as st | |
| import pandas as pd | |
| # Set your Groq API key | |
| os.environ["GROQ_API_KEY"] = "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" | |
| client = Groq(api_key=os.environ.get("GROQ_API_KEY")) | |
| # Create a mock dataset with more relevant cases | |
| mock_data = [ | |
| { | |
| "case_title": "Smith v. Jones", | |
| "summary": "A landmark case that established the principle of duty of care.", | |
| }, | |
| { | |
| "case_title": "Doe v. United States", | |
| "summary": "This case addressed issues related to search and seizure under the Fourth Amendment.", | |
| }, | |
| { | |
| "case_title": "Roe v. Wade", | |
| "summary": "A pivotal Supreme Court case that legalized abortion in the United States.", | |
| }, | |
| { | |
| "case_title": "Brown v. Board of Education", | |
| "summary": "A landmark decision that declared racial segregation in public schools unconstitutional.", | |
| }, | |
| { | |
| "case_title": "Loving v. Virginia", | |
| "summary": "This case struck down laws banning interracial marriage, addressing civil rights.", | |
| }, | |
| { | |
| "case_title": "Miranda v. Arizona", | |
| "summary": "This case established Miranda rights and protections under the Fifth Amendment.", | |
| }, | |
| { | |
| "case_title": "Griswold v. Connecticut", | |
| "summary": "A case that recognized the right to privacy in marital relations and contraceptive use.", | |
| }, | |
| { | |
| "case_title": "Tinker v. Des Moines", | |
| "summary": "A case that affirmed students' rights to free speech in public schools.", | |
| }, | |
| { | |
| "case_title": "Furman v. Georgia", | |
| "summary": "A significant case regarding the death penalty and its application, addressing criminal law.", | |
| }, | |
| { | |
| "case_title": "Obergefell v. Hodges", | |
| "summary": "This case legalized same-sex marriage across the United States, highlighting equal protection.", | |
| }, | |
| ] | |
| # Convert mock data to DataFrame for easy querying | |
| mock_df = pd.DataFrame(mock_data) | |
| def get_case_summary(user_query): | |
| # Search for relevant cases in the mock dataset | |
| relevant_cases = mock_df[mock_df['case_title'].str.contains(user_query, case=False) | | |
| mock_df['summary'].str.contains(user_query, case=False)] | |
| if not relevant_cases.empty: | |
| # Take the first relevant case for simplicity | |
| case_info = relevant_cases.iloc[0] | |
| case_title = case_info['case_title'] | |
| case_summary = case_info['summary'] | |
| # Generate a response using the Groq API | |
| chat_completion = client.chat.completions.create( | |
| messages=[ | |
| { | |
| "role": "user", | |
| "content": f"Provide a detailed summary of the following case: {case_title}. Summary: {case_summary}", | |
| } | |
| ], | |
| model="llama3-8b-8192", | |
| ) | |
| return chat_completion.choices[0].message.content | |
| else: | |
| return "No relevant cases found." | |
| # Streamlit application | |
| st.title("Legal Research Assistant") | |
| # User input | |
| user_query = st.text_input("Enter a case title or keyword:") | |
| if st.button("Get Case Summary"): | |
| if user_query: | |
| summary = get_case_summary(user_query) | |
| st.write(summary) | |
| else: | |
| st.write("Please enter a case title or keyword.") | |