diff --git a/app/Http/Controllers/Admin/AiSettingController.php b/app/Http/Controllers/Admin/AiSettingController.php index 0c26854..561a905 100644 --- a/app/Http/Controllers/Admin/AiSettingController.php +++ b/app/Http/Controllers/Admin/AiSettingController.php @@ -19,11 +19,13 @@ class AiSettingController extends Controller $request->validate([ 'ollama_url' => 'required|url|max:255', 'ollama_model' => 'required|string|max:100', + 'prompt' => 'nullable|string', ]); $ai = AiSetting::get(); $ai->ollama_url = rtrim($request->ollama_url, '/'); $ai->ollama_model = $request->ollama_model; + $ai->prompt = $request->filled('prompt') ? $request->prompt : null; $ai->save(); return redirect()->route('admin.ai.show')->with('success', 'KI-Einstellungen gespeichert.'); diff --git a/app/Jobs/ProcessNailPolishImage.php b/app/Jobs/ProcessNailPolishImage.php index a47a90c..864e724 100644 --- a/app/Jobs/ProcessNailPolishImage.php +++ b/app/Jobs/ProcessNailPolishImage.php @@ -33,20 +33,7 @@ class ProcessNailPolishImage implements ShouldQueue $ai = AiSetting::get(); $imageB64 = base64_encode(Storage::disk('public')->get($import->image_path)); - $prompt = <<getActivePrompt(); $response = Http::timeout(160)->post("{$ai->ollama_url}/api/generate", [ 'model' => $ai->ollama_model, diff --git a/app/Models/AiSetting.php b/app/Models/AiSetting.php index 865de4a..64b54f3 100644 --- a/app/Models/AiSetting.php +++ b/app/Models/AiSetting.php @@ -8,7 +8,27 @@ class AiSetting extends Model { protected $table = 'ai_settings'; - protected $fillable = ['ollama_url', 'ollama_model']; + protected $fillable = ['ollama_url', 'ollama_model', 'prompt']; + + public const DEFAULT_PROMPT = <<prompt) ? $this->prompt : self::DEFAULT_PROMPT; + } public static function get(): self { diff --git a/database/migrations/2026_06_13_000005_add_prompt_to_ai_settings.php b/database/migrations/2026_06_13_000005_add_prompt_to_ai_settings.php new file mode 100644 index 0000000..8716d3e --- /dev/null +++ b/database/migrations/2026_06_13_000005_add_prompt_to_ai_settings.php @@ -0,0 +1,22 @@ +text('prompt')->nullable()->after('ollama_model'); + }); + } + + public function down(): void + { + Schema::table('ai_settings', function (Blueprint $table) { + $table->dropColumn('prompt'); + }); + } +}; diff --git a/resources/views/admin/ai/show.blade.php b/resources/views/admin/ai/show.blade.php index 0734bb4..718d78a 100644 --- a/resources/views/admin/ai/show.blade.php +++ b/resources/views/admin/ai/show.blade.php @@ -30,7 +30,7 @@
URL des Ollama-Containers/Servers ohne abschließenden Slash.
-
+
Muss ein Vision-fähiges Modell sein (z.B. llama3.2-vision, llava).
+
+ + + @error('prompt') +
{{ $message }}
+ @enderror +
+ Leer lassen um den Standard-Prompt zu verwenden. + Standard-Prompt einfügen +
+
+

AKTUELL AKTIVER PROMPT:

+
{{ $ai->getActivePrompt() }}
+
+
+ @@ -69,4 +91,10 @@ +@section('scripts') + @endsection