Compare commits

...

2 Commits

Author SHA1 Message Date
Ninluc d9132fe6ee Removed non gradient version
linter / quality (push) Successful in 7m40s
tests / ci (8.4) (push) Failing after 8m38s
tests / ci (8.5) (push) Failing after 6m49s
2026-09-09 17:20:19 +02:00
Ninluc e42849bed4 Rate limiting 2026-09-09 17:20:11 +02:00
5 changed files with 22 additions and 8 deletions
+10
View File
@@ -3,8 +3,11 @@
namespace App\Providers; namespace App\Providers;
use Carbon\CarbonImmutable; use Carbon\CarbonImmutable;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\Date; use Illuminate\Support\Facades\Date;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Http\Request;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
@@ -23,6 +26,13 @@ class AppServiceProvider extends ServiceProvider
public function boot(): void public function boot(): void
{ {
$this->configureDefaults(); $this->configureDefaults();
RateLimiter::for('training', function (Request $request) {
return [
Limit::perMinute(50),
Limit::perMinute(15)->by($request->ip()),
];
});
} }
/** /**
+3 -3
View File
@@ -1,4 +1,4 @@
0, 0, 0 0, 0, -1
0, 1, 0 0, 1, -1
1, 0, 0 1, 0, -1
1, 1, 1 1, 1, 1
1 0 0 0 -1
2 0 1 0 -1
3 1 0 0 -1
4 1 1 1 1
-4
View File
@@ -1,4 +0,0 @@
0, 0, -1
0, 1, -1
1, 0, -1
1, 1, 1
1 0 0 -1
2 0 1 -1
3 1 0 -1
4 1 1 1
@@ -109,6 +109,12 @@ function startTraining() {
}) })
.then((response) => { .then((response) => {
if (!response.ok) { if (!response.ok) {
if (response.status === 429) {
alert('Trop de requêtes pour mon petit serveur. Veuillez réessayer dans une minute.');
} else {
alert('Erreur lors du lancement de l\'entraînement. Veuillez réessayer.');
}
throw new Error('Network response was not ok'); throw new Error('Network response was not ok');
} }
return response.json(); return response.json();
+3 -1
View File
@@ -3,4 +3,6 @@
use App\Http\Controllers\PerceptronController; use App\Http\Controllers\PerceptronController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::post('perceptron/run', [PerceptronController::class, 'run'])->name('perceptron.run'); Route::middleware('throttle:training')->group(function () {
Route::post('perceptron/run', [PerceptronController::class, 'run'])->name('perceptron.run');
});