diff --git a/config/packages/ai_lm_studio_platform.yaml b/config/packages/ai_lm_studio_platform.yaml
index 1d832763..0e4287e0 100644
--- a/config/packages/ai_lm_studio_platform.yaml
+++ b/config/packages/ai_lm_studio_platform.yaml
@@ -2,4 +2,3 @@ ai:
platform:
lmstudio:
host_url: '%env(string:settings:ai_lmstudio:hostURL)%'
- http_client: 'app.http_client.ai_lmstudio'
diff --git a/config/packages/ai_ollama_platform.yaml b/config/packages/ai_ollama_platform.yaml
index 67ebe190..df551d4a 100644
--- a/config/packages/ai_ollama_platform.yaml
+++ b/config/packages/ai_ollama_platform.yaml
@@ -3,4 +3,3 @@ ai:
ollama:
endpoint: '%env(string:settings:ai_ollama:endpoint)%'
api_key: '%env(string:settings:ai_ollama:apiKey)%'
- http_client: 'app.http_client.ai_ollama'
diff --git a/config/packages/ai_open_router_platform.yaml b/config/packages/ai_open_router_platform.yaml
index 53eb20b9..d34de592 100644
--- a/config/packages/ai_open_router_platform.yaml
+++ b/config/packages/ai_open_router_platform.yaml
@@ -2,4 +2,3 @@ ai:
platform:
openrouter:
api_key: '%env(string:settings:ai_openrouter:apiKey)%'
- http_client: 'app.http_client.ai_openrouter'
diff --git a/config/services.yaml b/config/services.yaml
index aa476bbb..5021c577 100644
--- a/config/services.yaml
+++ b/config/services.yaml
@@ -52,28 +52,6 @@ services:
alias: 'doctrine.migrations.dependency_factory'
- ####################################################################################################################
- # AI provider HTTP clients (with configurable timeouts)
- ####################################################################################################################
-
- app.http_client.ai_ollama:
- class: Symfony\Contracts\HttpClient\HttpClientInterface
- factory: ['@http_client', 'withOptions']
- arguments:
- - { timeout: '%env(int:settings:ai_ollama:timeout)%' }
-
- app.http_client.ai_lmstudio:
- class: Symfony\Contracts\HttpClient\HttpClientInterface
- factory: ['@http_client', 'withOptions']
- arguments:
- - { timeout: '%env(int:settings:ai_lmstudio:timeout)%' }
-
- app.http_client.ai_openrouter:
- class: Symfony\Contracts\HttpClient\HttpClientInterface
- factory: ['@http_client', 'withOptions']
- arguments:
- - { timeout: '%env(int:settings:ai_openrouter:timeout)%' }
-
####################################################################################################################
# Email
####################################################################################################################
diff --git a/src/Services/InfoProviderSystem/DTOJsonSchemaConverter.php b/src/Services/InfoProviderSystem/DTOJsonSchemaConverter.php
index 3c2cbf64..a61e7465 100644
--- a/src/Services/InfoProviderSystem/DTOJsonSchemaConverter.php
+++ b/src/Services/InfoProviderSystem/DTOJsonSchemaConverter.php
@@ -42,7 +42,7 @@ final class DTOJsonSchemaConverter
public function getJSONSchema(): array
{
return [
- 'name' => 'part_detail',
+ 'name' => 'clock',
'strict' => true,
'schema' => [
'type' => 'object',
diff --git a/src/Services/InfoProviderSystem/Providers/AIWebProvider.php b/src/Services/InfoProviderSystem/Providers/AIWebProvider.php
index be91041e..6539e69b 100644
--- a/src/Services/InfoProviderSystem/Providers/AIWebProvider.php
+++ b/src/Services/InfoProviderSystem/Providers/AIWebProvider.php
@@ -282,10 +282,6 @@ final class AIWebProvider implements InfoProviderInterface
try {
$aiPlatform = $this->AIPlatformRegistry->getPlatform($this->settings->platform ?? throw new \RuntimeException('No AI platform selected') );
- // AI inference can take much longer than PHP's default max_execution_time (typically 30s).
- // The HTTP client timeout already enforces the configured limit; disable PHP's constraint here.
- set_time_limit(0);
-
//'openai/gpt-5-mini'
$result = $aiPlatform->invoke($this->settings->model ?? throw new \RuntimeException('No model selected'), $input, [
'response_format' => [
diff --git a/src/Settings/AISettings/AISettings.php b/src/Settings/AISettings/AISettings.php
index 659577b6..9f145c7f 100644
--- a/src/Settings/AISettings/AISettings.php
+++ b/src/Settings/AISettings/AISettings.php
@@ -35,8 +35,6 @@ class AISettings
{
use SettingsTrait;
- public const TIMEOUT_LIMIT = 600;
-
#[EmbeddedSettings]
public ?OpenRouterSettings $openRouter = null;
diff --git a/src/Settings/AISettings/LMStudioSettings.php b/src/Settings/AISettings/LMStudioSettings.php
index d92ce97e..2bdad06e 100644
--- a/src/Settings/AISettings/LMStudioSettings.php
+++ b/src/Settings/AISettings/LMStudioSettings.php
@@ -23,17 +23,16 @@ 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\NumberType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Translation\StaticMessage;
use Symfony\Component\Translation\TranslatableMessage as TM;
-use Symfony\Component\Validator\Constraints as Assert;
#[Settings(name: 'ai_lmstudio', label: new TM("settings.ai.lmstudio"))]
#[SettingsIcon("fa-robot")]
@@ -47,14 +46,6 @@ class LMStudioSettings implements AIPlatformSettingsInterface
envVar: "AI_LMSTUDIO_HOSTURL", envVarMode: EnvVarMode::OVERWRITE)]
public ?string $hostURL = null;
- #[SettingsParameter(label: new TM("settings.ai.timeout"),
- description: new TM("settings.ai.timeout.help"),
- formType: NumberType::class,
- formOptions: ["scale" => 0, "attr" => ["min" => 1]],
- )]
- #[Assert\Range(min: 1, max: AISettings::TIMEOUT_LIMIT)]
- public int $timeout = 180;
-
public function isAIPlatformEnabled(): bool
{
return $this->hostURL !== null && $this->hostURL !== "";
diff --git a/src/Settings/AISettings/OllamaSettings.php b/src/Settings/AISettings/OllamaSettings.php
index 7ca0e5a0..dd17d5e2 100644
--- a/src/Settings/AISettings/OllamaSettings.php
+++ b/src/Settings/AISettings/OllamaSettings.php
@@ -30,11 +30,9 @@ 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\NumberType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Translation\StaticMessage;
use Symfony\Component\Translation\TranslatableMessage as TM;
-use Symfony\Component\Validator\Constraints as Assert;
#[Settings(name: 'ai_ollama', label: new TM("settings.ai.ollama"))]
#[SettingsIcon("fa-robot")]
@@ -53,14 +51,6 @@ class OllamaSettings implements AIPlatformSettingsInterface
envVar: "AI_OLLAMA_API_KEY", envVarMode: EnvVarMode::OVERWRITE)]
public ?string $apiKey = null;
- #[SettingsParameter(label: new TM("settings.ai.timeout"),
- description: new TM("settings.ai.timeout.help"),
- formType: NumberType::class,
- formOptions: ["scale" => 0, "attr" => ["min" => 1]]
- )]
- #[Assert\Range(min: 1, max: AISettings::TIMEOUT_LIMIT)]
- public int $timeout = 180;
-
public function isAIPlatformEnabled(): bool
{
return $this->endpoint !== null && $this->endpoint !== "";
diff --git a/src/Settings/AISettings/OpenRouterSettings.php b/src/Settings/AISettings/OpenRouterSettings.php
index 16665554..e083513a 100644
--- a/src/Settings/AISettings/OpenRouterSettings.php
+++ b/src/Settings/AISettings/OpenRouterSettings.php
@@ -30,9 +30,7 @@ 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\NumberType;
use Symfony\Component\Translation\TranslatableMessage as TM;
-use Symfony\Component\Validator\Constraints as Assert;
#[Settings(name: 'ai_openrouter', label: new TM("settings.ai.openrouter"), description: "settings.ai.openrouter.help")]
#[SettingsIcon("fa-robot")]
@@ -45,14 +43,6 @@ class OpenRouterSettings implements AIPlatformSettingsInterface
formOptions: ["help_html" => true], envVar: "AI_OPENROUTER_KEY", envVarMode: EnvVarMode::OVERWRITE)]
public ?string $apiKey = null;
- #[SettingsParameter(label: new TM("settings.ai.timeout"),
- description: new TM("settings.ai.timeout.help"),
- formType: NumberType::class,
- formOptions: ["scale" => 0, "attr" => ["min" => 1]],
- envVar: "int:AI_OPENROUTER_TIMEOUT", envVarMode: EnvVarMode::OVERWRITE)]
- #[Assert\Range(min: 1, max: AISettings::TIMEOUT_LIMIT)]
- public int $timeout = 90;
-
public function isAIPlatformEnabled(): bool
{
return $this->apiKey !== null && $this->apiKey !== "";
diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf
index d828d3ee..af33ee97 100644
--- a/translations/messages.en.xlf
+++ b/translations/messages.en.xlf
@@ -13637,18 +13637,6 @@ Buerklin-API Authentication server:
API Key
-
-
- settings.ai.timeout
- Timeout
-
-
-
-
- settings.ai.timeout.help
- Maximum time in seconds to wait for a response. Local AI inference might take multiple minutes, cloud inference is normally faster.
-
-
browser_plugin.recent_pages.title