@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; use App\Helpers\Classes\MarketplaceHelper; $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(); $activeModels = collect($fullModels) ->filter(function ($model) { $driver = \App\Domains\Entity\Facades\Entity::driver(EntityEnum::tryFrom($model?->value)); return $driver->isUnlimitedCredit() || $driver->creditBalance() > 0; }) ->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; } } } $currentUrl = url()->current(); $previousUrl = url()->previous(); $is_chat_pro = \App\Helpers\Classes\MarketplaceHelper::isRegistered('ai-chat-pro') && (route('dashboard.user.openai.chat.pro.index') === $currentUrl || route('chat.pro') === $currentUrl || route('dashboard.user.openai.chat.pro.index') === $previousUrl || route('chat.pro') === $previousUrl); $isMultiModelExtensionEnabled = $is_chat_pro && MarketplaceHelper::isRegistered('multi-model') && setting('ai_chat_pro_multi_model_feature', '1') === '1'; @endphp
@lang('AI Model: ') {{ Str::limit($selectedModel->model()?->selected_title ?? $selectedModel->enum()?->value, 20) }}

@lang('AI Models')

@if ($isMultiModelExtensionEnabled) @lang('Choose multiple AI models that best suit your needs.') @else @lang('Choose the AI model that best suits your needs.') @endif

@if ($isMultiModelExtensionEnabled) @endif
@foreach ($fullModels as $engine) @php $model = EntityEnum::fromSlug($engine?->value); $driver = \App\Domains\Entity\Facades\Entity::driver($model); $is_inactive = $driver->creditBalance() <= 0 && !$driver->isUnlimitedCredit(); @endphp $is_inactive, ]) variant="outline-shadow" @click.prevent="updateSelectedModels({ value: $el.getAttribute('data-model-value'), label: $el.getAttribute('data-model-label') })" ::data-selected="selectedModels.findIndex(model => model.value === $el.getAttribute('data-model-value')) >= 0 && {{ $is_inactive ? 'false' : 'true' }}" x-show="searchString === '' || $el.getAttribute('data-model-label').toLowerCase().includes(searchString.toLowerCase())" >

@lang('Words')

@if ($driver->isUnlimitedCredit()) @lang('Unlimited Credits') @else {{ $driver->creditBalance() > 0 ? $driver->creditBalance() : __('No credits left') }} @endif

{{ $driver->model()?->selected_title ?? $model?->value }}

@if ($isMultiModelExtensionEnabled)
@endif
@endforeach
@foreach ($fullModels as $model) @endforeach {{ __('Apply') }}
@push('script') @endpush