Inspiration

A desire to harness the power of technology to address a critical issue that affects Black communities worldwide: police brutality. The goal of this system would be to alert people and raise awareness about incidents of police brutality and potentially hidden racism across the globe. We strive to create a safer and more just world and end police brutality.

What it does

Our website uses Google maps to automatically track and record incidents of police brutality with their location, date and description, making it easier to identify and expose these incidents as they occur. We also added a feature where the user can press a button to start recording the conversation between themself and the officer in case documentation is needed. If an emergency is detected in the recorded conversation, we’ve included a real-time “help” feature that instantly alerts authorities that empowers users to receive assistance. It also integrates an AI-powered conversation analysis system that analyzes the recorded interaction between the police officer and the victim. By analyzing it, the application can detect patterns of misconduct and microaggressions which could have swayed the officer’s decision to press a particular charge.

How we built it

For the backend, we used Python, Flask and SQL. We trained our LLM using highly effective and extensive input-output pairs to increase its accuracy when detecting racism in text. We also used the classify function to categorize the text into 3 categories: ‘Neutral’, ‘Intentionally racist’ and ‘Unintentionally racist’. Every time a marker is added, its location and date are generated by the backend and added to the database of markers, which can then be displayed by the Google Maps API on the Frontend. For the frontend, we used React. The speech-to-text to record the conversation was done using React-Speech-Kit. React was also used to display the map with all of the markers and show real-time updates and display the history of the user’s conversations with officers, which includes the transcript, classification, and analysis.

Challenges we ran into

We struggled the most with analyzing the racism in the conversation. Analyzing text for racism is very intricate and requires a precise language model trained with many related input-output pairs. We did not have access to this and thus had to make our base training prompts as clear as possible and do extensive testing to ensure accuracy. We also had issues with displaying real-time updates as soon as an incident is reported, as it was difficult to make the google maps API responsive using react. We made sure to set up the markers in a way so that when it's updated, the entire map is updated without having to refresh the page.

Accomplishments that we're proud of

We are most proud of making an app that we believe has the potential to inspire great change and finally end an issue that has been plaguing people for a long time. We are also proud of how much we learned in 24 hours. We used APIs we had never used before and pushed the LLM to its ‘limits’ to make our app as accurate as possible. In the end, we had a fully functional and responsive app.

What we learned

We learned how to integrate different technologies that generally aren’t thought to be compatible. For example, setting up Flask for the backend and React as the frontend and connecting them was fairly difficult and intricate. In addition, we learned how to integrate various different APIs for our project so we could harness them all to end up with a powerful project that solves a genuine problem.

What's next for Peace Keeper

We are planning to make our racism-detection feature more accurate by either using a different model which can be trained using a dataset or simply adding a very large amount of input-output pairs to optimize the model. Furthermore, we can implement machine learning to analyze the data collected and identify patterns in incidents of police brutality. This can aid in identifying areas where there is a higher risk of incidents occurring and enabling targeted interventions to prevent future incidents.

Built With

Share this project:

Updates