isapp/laravel-ai-spamdetector

Laravel wrapper for AI SpamDetector – protect your contact forms from spam and bots using OpenAI GPT. Easy integration, smart filtering, and fully Laravel-native.

1.0.0 2025-05-27 08:10 UTC

This package is auto-updated.

Last update: 2025-05-27 08:20:23 UTC


README

Laravel wrapper for AI SpamDetector – protect your contact forms from spam and bots using OpenAI GPT. This package provides seamless Laravel integration for intelligent spam filtering with minimal setup.

AI SpamDetector Latest Version on Packagist Total Downloads

Features

  • 🧠 AI-based spam detection using OpenAI GPT
  • āš”ļø Lightweight and efficient
  • šŸ› ļø Simple configuration with .env

Installation

composer require your-vendor/laravel-ai-spamdetector

Configuration

You can configure the package in two ways:

1. Using .env variables (recommended for simple setups)

Add the following to your .env file:

AI_SPAMDETECTOR_OPENAI_API_KEY=your-openai-api-key
AI_SPAMDETECTOR_OPENAI_ORGANIZATION=openai-organization-id
AI_SPAMDETECTOR_OPENAI_PROJECT=your-openai-project-id # Optional
AI_SPAMDETECTOR_OPENAI_BASE_URI=api.openai.com/v1 # Optional, defaults to OpenAI API
AI_SPAMDETECTOR_OPENAI_MODEL=gpt-4 # Optional, default is gpt-4

šŸ’” If you already have OPENAI_API_KEY defined in your project, it will be used automatically — no need to duplicate it. Available fallback variables:

  • OPENAI_API_KEY
  • OPENAI_ORGANIZATION
  • OPENAI_PROJECT
  • OPENAI_BASE_URI
  • OPENAI_MODEL

2. Publishing the config file

If you need more control, publish the configuration file:

php artisan vendor:publish --provider="Isapp\LaravelAiSpamdetector\SpamDetectorServiceProvider"

Usage

1. Dependency Injection

use Illuminate\Http\Request;
use Isapp\AiSpamdetector\SpamDetector;

public function index (Request $request, SpamDetector $spamDetector)
{
    $request->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|string|max:255',
        'message' => 'required|string|max:255',
    ]);
    
    $formData = new \Isapp\AiSpamdetector\FormData(
        name: $request->input('name'),
        email: $request->input('email'),
        message: $request->input('message'),
        userAgent: $request->header('User-Agent')
    );

    $isNotSpam = $spamDetector->analyze($formData);

    if ($isNotSpam) {
        // Process the form submission
    } else {
        // Handle spam detection
    }
    
}

2. Facade Usage

use Illuminate\Http\Request;
use Isapp\LaravelAiSpamdetector\Facades\SpamDetector;

public function index (Request $request)
{
    $request->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|string|max:255',
        'message' => 'required|string|max:255',
    ]);
    
    $formData = new \Isapp\AiSpamdetector\FormData(
        name: $request->input('name'),
        email: $request->input('email'),
        message: $request->input('message'),
        userAgent: $request->header('User-Agent')
    );

    $isNotSpam = SpamDetector::analyze($formData);

    if ($isNotSpam) {
        // Process the form submission
    } else {
        // Handle spam detection
    }
    
}

Contributing

Please, submit bugs or feature requests via the Github issues.

Pull requests are welcomed!

Thanks!

License

This project is open-sourced software licensed under the MIT License.

You are free to use, modify, and distribute it in your projects, as long as you comply with the terms of the license.

Maintained by ISAPP and ISAP OÜ.
Check out our software development services at isap.me.