Labels (default: ModelConfig::getAll())
* @param string $selected Ausgewähltes Modell (default: ModelConfig::DEFAULT_MODEL)
* @param string $name Form-Feldname (default: 'model')
* @param string $variant 'default', 'inline' oder 'compact'
* @param string $id Optional: HTML ID für das Select
* @param bool $saveToLocalStorage Speichert Änderungen in localStorage (default: true)
* @param string $localStorageKey Key für localStorage (default: 'pipeline_model')
*/
use Infrastructure\AI\ModelConfig;
$models ??= ModelConfig::getAll();
$selected ??= ModelConfig::DEFAULT_MODEL;
$name ??= 'model';
$variant ??= 'default';
$id ??= 'model-' . uniqid();
$saveToLocalStorage ??= true;
$localStorageKey ??= 'pipeline_model';
$class = match ($variant) {
'inline' => 'form-select form-select--inline model-select',
'compact' => 'form-select form-select--compact model-select',
default => 'form-select model-select',
};
// Gruppiere Modelle nach Provider
$anthropicModels = [];
$ollamaModels = [];
foreach ($models as $modelId => $label) {
if (str_starts_with($modelId, 'ollama:')) {
$ollamaModels[$modelId] = $label;
} else {
$anthropicModels[$modelId] = $label;
}
}
?>