A newer version of the Gradio SDK is available:
6.3.0
title: Creditcard-Fraud-Detection
app_file: gradio_app.py
sdk: gradio
sdk_version: 4.37.1
Credit Card Fraud Detection Application
This application leverages machine learning to detect fraudulent credit card transactions.
This project contains a Fraud Detection application that includes a FastAPI server for the backend and a Gradio interface for the frontend. The application can predict if a transaction is fraudulent using either XGBoost or RandomForest models.
Overview
- FastAPI Backend: Handles prediction requests using machine learning models.
- Gradio Frontend: Provides a user-friendly web interface for users to input transaction details and get predictions.
Project Structure
/Creditcard-Fraud-Detection
β
βββ/model
β βββ xgboost.pkl
β βββ randomforest.pkl
βββ/Encoder
β βββ WOEEncoder.pkl
β
βββ/static
β βββ/images
β βββ github.svg
β βββ api.png
β
βββ app.py
βββ gradio_app.py
βββ docker_app.py
βββ Dockerfile
βββ docker-compose.yml
βββ requirements.txt
βββ features.py
app.py: Defines the FastAPI application.gradio_app.py: Defines the Gradio interface.docker_app.py: Gradio interface for dockerDockerfile: Dockerfile for building the Docker image.docker-compose.yml: Docker Compose file for orchestrating the services.requirements.txt: List of dependencies.features.py: List of features.model/: Directory containing pre-trained machine learning models.Encoder/: Directory containing encoders used for data preprocessing.static/: Directory containing static files such as images used in the interface.
Getting Started
Prerequisites
- Docker
- Docker Compose
Installation
Clone the repository:
git clone https://github.com/Sibikrish3000/Creditcard-Fraud-Detection.git
cd Creditcard-Fraud-Detection
git install lfs
git lfs ls-files
git lfs pull
Running Locally
Using Docker Compose
Build and start the containers:
docker network create AIservicedocker-compose up --buildAccess the Gradio interface at http://localhost:7860.
Using Docker image
docker network create AIservice
docker pull sibikrish/creditcard-fraud-detection:latest
docker run sibikrish/creditcard-fraud-detection:latest #or
docker run -d -p 7860:7860 sibikrish/creditcard-fraud-detection:latest
Manually
To run the application locally without Docker, ensure you have Python installed and follow these steps:
Install the dependencies:
pip install -r requirements.txtRun the FastAPI server:
uvicorn app:app --host 0.0.0.0 --port 8000Run the Gradio interface:
python gradio_app.py
Development
Running in a Gitpod Cloud Environment
Click the button below to start a new development environment:
Deployment
Using Vercel
Create a
vercel.jsonfile in the project root:{ "version": 2, "builds": [ { "src": "app.py", "use": "@vercel/python" }, { "src": "gradio_app.py", "use": "@vercel/python" } ], "routes": [ { "src": "/api/(.*)", "dest": "app.py" }, { "src": "/(.*)", "dest": "gradio_app.py" } ] }Deploy using the Vercel CLI:
vercel
Usage
Access the Gradio Interface:
Open your web browser and navigate to
http://localhost:7860to access the Gradio interface.- Inputs: Users can input transaction details such as credit card frequency, job, age, gender, category, distance, hour, hours difference between transactions, amount, and choose a model.
- Output: The application returns a prediction indicating whether the transaction is legitimate or fraudulent.
- Flag Option: Users can enable a flag option to provide feedback on incorrect or suspicious predictions.
Access the FastAPI Documentation:
Open your web browser and navigate to
http://localhost:8000/docsto access the FastAPI documentation.
API Endpoints
POST /predict
Predict if a transaction is fraudulent.
Request:
{ "cc_freq": int, "cc_freq_class": int, "job": str, "age": int, "gender_M": int, "category": str, "distance_km": float, "hour": str, "hours_diff_bet_trans": float, "amt": float }Response:
{ "prediction": 0 for legitimate, 1 for fraudulent }
License
This project is licensed under the MIT License. See the LICENSE file for details.