From cf34de67729c28666b2c4e46a60064e543611379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 26 Apr 2026 23:24:51 +0200 Subject: [PATCH] Allow to pass additional instructions to the AI model --- .../InfoProviderSystem/Providers/AIInfoExtractor.php | 4 ++++ .../InfoProviderSystem/AIExtractorSettings.php | 6 ++++++ .../InfoProviderSystem/InfoProviderSettings.php | 5 +++-- translations/messages.en.xlf | 12 ++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Services/InfoProviderSystem/Providers/AIInfoExtractor.php b/src/Services/InfoProviderSystem/Providers/AIInfoExtractor.php index 0c2f19d9..ef7f05a5 100644 --- a/src/Services/InfoProviderSystem/Providers/AIInfoExtractor.php +++ b/src/Services/InfoProviderSystem/Providers/AIInfoExtractor.php @@ -233,6 +233,10 @@ PROMPT; $tmp .= "\n\nThe response must be in ". Languages::getName($this->settings->outputLanguage, 'en') ." language. Translate texts if needed."; } + if ($this->settings->additionalInstructions) { + $tmp .= "\n\nAdditional instructions:\n" . $this->settings->additionalInstructions; + } + return $tmp; } diff --git a/src/Settings/InfoProviderSystem/AIExtractorSettings.php b/src/Settings/InfoProviderSystem/AIExtractorSettings.php index 4ef9a1fa..da5ef0f9 100644 --- a/src/Settings/InfoProviderSystem/AIExtractorSettings.php +++ b/src/Settings/InfoProviderSystem/AIExtractorSettings.php @@ -33,6 +33,7 @@ use Jbtronics\SettingsBundle\Settings\SettingsParameter; use Jbtronics\SettingsBundle\Settings\SettingsTrait; use Symfony\AI\Platform\Capability; use Symfony\Component\Form\Extension\Core\Type\LanguageType; +use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Translation\TranslatableMessage as TM; use Symfony\Component\Validator\Constraints\Language; @@ -64,4 +65,9 @@ class AIExtractorSettings formType: LanguageType::class, )] public ?string $outputLanguage = null; + + #[SettingsParameter(label: new TM("settings.ips.ai_extractor.additional_instructions"), description: new TM("settings.ips.ai_extractor.additional_instructions.description"), + formType: TextareaType::class, + )] + public ?string $additionalInstructions = null; } diff --git a/src/Settings/InfoProviderSystem/InfoProviderSettings.php b/src/Settings/InfoProviderSystem/InfoProviderSettings.php index be0fe746..3e2a27ef 100644 --- a/src/Settings/InfoProviderSystem/InfoProviderSettings.php +++ b/src/Settings/InfoProviderSystem/InfoProviderSettings.php @@ -40,6 +40,9 @@ class InfoProviderSettings #[EmbeddedSettings] public ?GenericWebProviderSettings $genericWebProvider = null; + #[EmbeddedSettings] + public ?AIExtractorSettings $aiExtractor = null; + #[EmbeddedSettings] public ?DigikeySettings $digikey = null; @@ -76,6 +79,4 @@ class InfoProviderSettings #[EmbeddedSettings] public ?CanopySettings $canopy = null; - #[EmbeddedSettings] - public ?AIExtractorSettings $aiExtractor = null; } diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index c0bf8b60..d2c4bc47 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -13127,5 +13127,17 @@ Buerklin-API Authentication server: By default, the providers returns information in the same language as the website. With that option you can ask the AI to translate it for you. Might only work with certain models. + + + settings.ips.ai_extractor.additional_instructions + Additional instructions + + + + + settings.ips.ai_extractor.additional_instructions.description + The additional instructions will be appended to the system prompt. + +