roomies / fraudable
将您的 Laravel 应用与 AWS Fraud Detector 集成
Requires
- php: ^8.3
- aws/aws-sdk-php: ^3.320
- illuminate/database: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^8.25
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-22 05:00:49 UTC
README
Roomies Fraudable 为您的 Laravel 应用和 AWS Fraud Detector 之间提供了一层集成层。它利用事件,允许您发送/摄入事件进行训练,并在之后使用您的训练模型来预测事件。
Fraudable 为您的 Laravel 应用和 AWS Fraud Detector 提供了一层集成。它利用 Laravel 事件作为将数据摄入到模型进行训练的方式,并在收集足够数据后,对事件进行预测。它提供控制以更新事件为合法或欺诈,以改进您的模型,并使用预测数据来对您的应用中的评估进行决策。
请注意,这并非一个即插即用的欺诈检测解决方案。至少您需要配置 AWS Fraud Detector 中的事件、模型和检测器才能开始。
安装
您可以通过 Composer 安装此包
composer require roomies/fraudable
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag=fraudable
阅读配置文件以了解 AWS Fraud Detector 集成并运行提供的迁移。
php artisan migrate
入门
首先,将 Fraudable
添加到将在 AWS Fraud Detector 内部作为“实体”的模型(s)。默认情况下,我们将使用 snake-case 的全类名作为“实体”名称 - App\Models\User
将成为 app_models_user
,因为 AWS Fraud Detector 只允许小写字母和下划线。
namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; use Roomies\Fraudable\Concerns\Fraudable; class User extends Authenticatable { use Fraudable }
接下来,创建将映射到 AWS Fraud Detector 内部事件的事件。您可以使用常规 Laravel 扩展和实现 FraudableEvent
合约。它应返回一个包含 AWS Fraud Detector 事件名称和要传递给事件的变量的 PendingEvent
实例。将提供当前 Illuminate\Http\Request
实例以用于事件变量。
namespace App\Events\Users; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Str; use Roomies\Fraudable\Contracts\FraudableEvent; use Roomies\Fraudable\PendingEvent; class UserCreated implements FraudableEvent { /** * Create a new event instance. */ public function __construct(public User $user) { // } /** * Get the fraud event representation of the event. */ public function toFraudEvent(Request $request): PendingEvent { $name = Str::of($this::class)->replace('\\', '')->snake()->toString(); return new PendingEvent(name: $name, variables: [ 'email' => $this->user->email, 'user_agent' => $request->userAgent(), ]); } }
在此示例中,我们也将全类名使用 snake-case,因此 App\Events\Users\UserCreated
在 AWS Fraud Detector 内部变为 app_events_users_user_created
。
最后,您现在可以开始摄入事件以进行训练或预测。
$user = Auth::user(); $event = new App\Events\Users\UserCreated($user); // Simply record the event to the database - an instance of `Roomies\Fraudable\Models\FraudEvent` is returned. $fraudEvent = $user->ingest($event); // Immediately upload the event for training. $user->ingest($event)->upload(); // Get a prediction for the event $predication = $user->ingest($event)->predict('detectorId');
在您对实体做出判断时,您可以回溯更新记录的事件。
use Roomies\Fraudable\Label; $user = Auth::user(); $user->relabel(Label::Fraudulent);