@php use App\Domains\Engine\Enums\EngineEnum; use App\Domains\Entity\Models\Entity; use App\Domains\Entity\Enums\EntityEnum; use App\Extensions\OpenRouter\System\Enums\OpenRouterEngine; $defaultEngine = EngineEnum::fromSlug(setting('default_ai_engine', EngineEnum::OPEN_AI->slug())); $defaultModel = $defaultEngine->getDefaultWordModel($setting); $fullModels = [$defaultModel]; if (Entity::planModels()->count() > 0) { $planModels = Entity::planModels() ->filter(function ($model) { return !empty($model->key); }) ->pluck('key') ->toArray(); $fullModels = array_merge($fullModels, $planModels); } if ((int) setting('open_router_status') === 1) { $openRouterModels = OpenRouterEngine::cases(); $fullModels = array_merge($fullModels, $openRouterModels); } $fullModels = collect($fullModels)->unique('value')->values(); $defaultDriver = \App\Domains\Entity\Facades\Entity::driver(EntityEnum::tryFrom($defaultModel?->value)); $selectedModel = $defaultDriver; if (!$defaultDriver->isUnlimitedCredit() && $defaultDriver->creditBalance() <= 0) { foreach ($fullModels as $model) { $driver = \App\Domains\Entity\Facades\Entity::driver(EntityEnum::tryFrom($model?->value)); if ($driver->isUnlimitedCredit() || $driver->creditBalance() > 0) { $selectedModel = $driver; break; } } } @endphp
@lang('Choose the AI model that best suits your needs.')