import re import json from log import log def parse_llm_blocks(response_text): blocks = { "answer": "", "intent": "NONE", "params": {}, "missing": [], "action_json": {} } try: answer_match = re.search(r"#ANSWER:\s*(.+)", response_text) if answer_match: blocks["answer"] = answer_match.group(1).strip() else: log(f"⚠️ ANSWER blok bulunamadı. Ham içerik: {response_text}") intent_match = re.search(r"#INTENT:\s*(.+)", response_text) if intent_match: blocks["intent"] = intent_match.group(1).strip() else: log(f"⚠️ INTENT blok bulunamadı. Ham içerik: {response_text}") params_match = re.search(r"#PARAMS:\s*(\{.*?\})", response_text) if params_match: try: blocks["params"] = json.loads(params_match.group(1)) except json.JSONDecodeError: log(f"⚠️ PARAMS JSON parse hatası: {params_match.group(1)}") blocks["params"] = {} else: log(f"⚠️ PARAMS blok bulunamadı. Ham içerik: {response_text}") missing_match = re.search(r"#MISSING:\s*(\[[^\]]*\])", response_text) if missing_match: try: blocks["missing"] = json.loads(missing_match.group(1)) except json.JSONDecodeError: log(f"⚠️ MISSING JSON parse hatası: {missing_match.group(1)}") blocks["missing"] = [] else: log(f"⚠️ MISSING blok bulunamadı. Ham içerik: {response_text}") action_match = re.search(r"#ACTION_JSON:\s*(\{.*?\})", response_text) if action_match: try: blocks["action_json"] = json.loads(action_match.group(1)) except json.JSONDecodeError: log(f"⚠️ ACTION_JSON parse hatası: {action_match.group(1)}") blocks["action_json"] = {} else: log(f"⚠️ ACTION_JSON blok bulunamadı. Ham içerik: {response_text}") except Exception as e: log(f"❌ parse_llm_blocks() genel hatası: {e}") return blocks