. */ declare(strict_types=1); namespace App\Settings\AISettings; use App\Form\Type\APIKeyType; use App\Services\AI\AIPlatformSettingsInterface; use App\Settings\SettingsIcon; use Jbtronics\SettingsBundle\Metadata\EnvVarMode; use Jbtronics\SettingsBundle\Settings\Settings; use Jbtronics\SettingsBundle\Settings\SettingsParameter; use Jbtronics\SettingsBundle\Settings\SettingsTrait; use Symfony\Component\Form\Extension\Core\Type\UrlType; use Symfony\Component\Translation\TranslatableMessage as TM; #[Settings(name: 'ai_lmstudio', label: new TM("settings.ai.lmstudio"))] #[SettingsIcon("fa-robot")] class LMStudioSettings implements AIPlatformSettingsInterface { use SettingsTrait; #[SettingsParameter(label: new TM("settings.ai.lmstudio.hosturl"), formType: UrlType::class, envVar: "AI_LMSTUDIO_HOSTURL", envVarMode: EnvVarMode::OVERWRITE)] public ?string $hostURL = null; public function isAIPlatformEnabled(): bool { return $this->hostURL !== null && $this->hostURL !== ""; } }