wehnsdaefflae / SpotTheBot

Spot The Bot tests players on their skill to spot AI-generated misinformation. Players identify fake content and provide reason. Other participants can learn these reasons and apply them themselves. This collaborative game boosts critical thinking and fosters a community where users learn together to discern AI misinformation.

Home Page:https://spotthebot.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spot The Bot - A Community-Agnostic AI Text Recognition Game

Logo Placeholder

Spot The Bot is an innovative web application game designed to enhance the ability of users to distinguish between AI-generated and human-written text. Tailored for various communities, Spot The Bot offers an engaging and educational platform to identify and understand the subtle differences in language usage between humans and AI models.

Table of Contents

About the Project

screencast_spotthebot.webm

Screenshot

Spot The Bot allows communities to input their authentic texts and then challenges players to differentiate between these and AI-generated versions of the texts. Players tag suspicious words or phrases with custom labels such as "irrelevant" or "generic," aiding in the identification of AI-generated content and publishing helpful information even for those who prefer not to play the game. The game is designed to be community-agnostic, meaning that it can be tailored to any community, from online forums to social media platforms.

Features

  • Community Customization: Tailor the game to any community by inputting authentic, community-specific texts and adapting the style to the community's brand or CI.
  • Interactive Tagging Mechanism: Engage with content by tagging suspicious words or phrases, learning to discern between AI and human language nuances.
  • Educational Tool: Enhance critical reading skills and become more discerning of the content consumed online.

Built With

Getting Started

To get a local copy up and running, follow these simple steps.

Prerequisites (todo: finish this)

Python 3.11

Installation

Starting from [working_directory] [user] [db_password] [storage_secret] [openaí_api_key] [domain]

  1. Clone the repo
git clone https://github.com/wehnsdaefflae/SpotTheBot
  1. Create and activate virtual environment
cd SpotTheBot
python3 -m venv venv
source venv/bin/activate
  1. Install pip dependencies
pip install -r requirements.txt
  1. Configure the database
nano databases/general.conf
bind 127.0.0.1
requirepass [db_password]
port 6379
save 60 10
loglevel verbose
dir databases/
dbfilename spotthebot.rdb
appendonly yes
appendfsync everysec
  1. Add systemd service file for the database
sudo nano /etc/systemd/system/spotthebot_db.service
[Unit]
Description=SpotTheBot Redis Server
After=network.target

[Service]
Type=simple
WorkingDirectory=[working_directory]/SpotTheBot
ExecStart=/usr/bin/redis-server [working_directory]/SpotTheBot/databases/general.conf
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. Add a systemd service file for the server
sudo nano /etc/systemd/system/spotthebot.service
[Unit]
Description=SpotTheBot Python Service
After=network.target

[Service]
Type=simple
User=[user]
WorkingDirectory=[working_directory]/SpotTheBot
ExecStart=[working_directory]/SpotTheBot/venv/bin/python [working_directory]/SpotTheBot/src/main.py
Environment="PYTHONPATH=[working_directory]/SpotTheBot"

[Install]
WantedBy=multi-user.target
  1. Install Nginx
sudo apt install nginx
  1. Add a Nginx config file (todo: finish this)
sudo nano /etc/nginx/sites-available/spotthebot
server {
    listen 80;
    server_name [domain];
    location / {
        proxy_pass http://
  1. Install https certificates
sudo certbot --nginx
  1. Modify the config file
sudo nano config.json
 {
  "nicegui": {
    "host": "0.0.0.0",
    "port": 8000,
    "title": "Spot The Bot!",
    "uvicorn_logging_level": "debug",
    "storage_secret": "[storage_secret]",
    "reload": true,
    "tailwind": true,
    "prod_js": false
  },
  "openai": {
    "key": "[openaí_api_key]",
    "parameters": {
      "model": "gpt-4-1106-preview",
      "temperature": 0,
      "top_p": null
    }
  },
  "redis": {
    "users_database": {
      "host": "localhost",
      "port": 6379,
      "password": "[db_password]",
      "db": 0
    },
    "snippets_database": {
      "host": "localhost",
      "port": 6379,
      "password": "[db_password]",
      "db": 1
    },
    "markers_database": {
      "host": "localhost",
      "port": 6379,
      "password": "[db_password]",
      "db": 2
    },
    "invitations_database": {
      "host": "localhost",
      "port": 6379,
      "password": "[db_password]",
      "db": 3
    }
  }
}
  1. Start and enable server and database
sudo systemctl start spotthebot_db
sudo systemctl enable spotthebot_db
sudo systemctl start spotthebot
sudo systemctl enable spotthebot

Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgments

This project was funded by the German BMBF and the Prototype Fund.

BMBF Logo Prototype Fund Logo

We want to extend our gratitude to all the contributors and funders who made this project possible.

About

Spot The Bot tests players on their skill to spot AI-generated misinformation. Players identify fake content and provide reason. Other participants can learn these reasons and apply them themselves. This collaborative game boosts critical thinking and fosters a community where users learn together to discern AI misinformation.

https://spotthebot.app

License:MIT License


Languages

Language:Python 79.6%Language:CSS 18.0%Language:HTML 2.3%Language:Shell 0.0%