From 7d50647f39896a24f0557ffd589c285f620aae6c Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 19 Apr 2026 08:09:44 +0200 Subject: [PATCH] Fix: strip markdown backticks from OpenAI JSON response MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vorher: preg_match mit Capture-Group schlug fehl wenn ``` am Ende fehlt. Nachher: zwei preg_replace entfernen öffnendes ```json und schließendes ``` unabhängig voneinander — robuster gegen unvollständige Codeblöcke. Co-Authored-By: Claude Sonnet 4.6 --- src/app/Services/AgentAIService.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/Services/AgentAIService.php b/src/app/Services/AgentAIService.php index 1e82dc9..c5c3bd6 100644 --- a/src/app/Services/AgentAIService.php +++ b/src/app/Services/AgentAIService.php @@ -677,11 +677,11 @@ PROMPT; return self::fallback(); } - // Markdown-Codeblocks entfernen (```json ... ``` oder ``` ... ```) + // Markdown-Backticks entfernen — auch wenn schließendes ``` fehlt $cleaned = trim($text); - if (preg_match('/```(?:json)?\s*([\s\S]*?)```/', $cleaned, $matches)) { - $cleaned = trim($matches[1]); - } + $cleaned = preg_replace('/^```(?:json)?\s*/i', '', $cleaned); + $cleaned = preg_replace('/\s*```$/', '', $cleaned); + $cleaned = trim($cleaned); $json = json_decode($cleaned, true);