Rename project from any-llm to laravel-llm

- Remove old any-llm related files (Dockerfile, config.yml, web/, setup-laravel.sh)
- Update README.md with new Laravel LLM Gateway documentation
- Keep docker-compose.yml with laravel-llm container names
- Clean project structure for Laravel-only implementation
This commit is contained in:
wtrinkl
2025-11-18 22:05:05 +01:00
parent b1363aeab9
commit bef36c7ca2
33 changed files with 1341 additions and 2930 deletions

View File

@@ -2,7 +2,15 @@
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schedule;
use App\Jobs\ResetDailyBudgets;
use App\Jobs\ResetMonthlyBudgets;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');
// Schedule budget reset jobs
Schedule::job(new ResetDailyBudgets)->dailyAt('00:00')->name('reset-daily-budgets');
Schedule::job(new ResetMonthlyBudgets)->monthlyOn(1, '00:00')->name('reset-monthly-budgets');

View File

@@ -7,12 +7,16 @@ use App\Http\Controllers\ApiKeyController;
use App\Http\Controllers\BudgetController;
use App\Http\Controllers\UsageLogController;
use App\Http\Controllers\ModelPricingController;
use App\Http\Controllers\Admin\CredentialController;
use App\Http\Controllers\Admin\UserBudgetController;
use App\Http\Controllers\Admin\UserManagementController;
Route::view('/', 'welcome');
Route::middleware(['auth', 'verified'])->group(function () {
// Dashboard
Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::get('dashboard/realtime-stats', [DashboardController::class, 'realtimeStats'])->name('dashboard.realtime-stats');
// Gateway Users Management
Route::resource('gateway-users', GatewayUserController::class);
@@ -41,6 +45,33 @@ Route::middleware(['auth', 'verified'])->group(function () {
Route::post('model-pricing-calculate', [ModelPricingController::class, 'calculate'])->name('model-pricing.calculate');
Route::get('model-pricing-import', [ModelPricingController::class, 'importForm'])->name('model-pricing.import-form');
Route::post('model-pricing-import', [ModelPricingController::class, 'import'])->name('model-pricing.import');
Route::get('api/provider-models/{provider}', [ModelPricingController::class, 'getProviderModels'])->name('api.provider-models');
// Provider Credentials Management (Admin)
Route::prefix('admin')->name('admin.')->group(function () {
// User Management
Route::get('users', [UserManagementController::class, 'index'])
->name('users.index');
// Credentials
Route::resource('credentials', CredentialController::class);
Route::post('credentials/{credential}/test', [CredentialController::class, 'test'])
->name('credentials.test');
Route::post('credentials/{credential}/toggle', [CredentialController::class, 'toggle'])
->name('credentials.toggle');
// User Budget & Rate Limit Management
Route::get('users/{user}/budget', [UserBudgetController::class, 'show'])
->name('users.budget.show');
Route::put('users/{user}/budget', [UserBudgetController::class, 'updateBudget'])
->name('users.budget.update');
Route::put('users/{user}/rate-limit', [UserBudgetController::class, 'updateRateLimit'])
->name('users.rate-limit.update');
Route::post('users/{user}/rate-limit/reset', [UserBudgetController::class, 'resetRateLimit'])
->name('users.rate-limit.reset');
Route::post('users/{user}/budget/reset', [UserBudgetController::class, 'resetBudget'])
->name('users.budget.reset');
});
});
Route::view('profile', 'profile')