Team Ai
Apppublic

syntaxhacker/developer-portfolio-rag

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
patch_preciz.py55 linesDownload Raw Back to scripts
1"""Patch preciz SDK's _parse_tool_calls to handle malformed XML gracefully."""2 3import site4import re5 6P = f"{site.getsitepackages()[0]}/summarizer/llm_client.py"7 8with open(P) as f:9    src = f.read()10 11marker_old = (12    '                raw_text = re.sub(r"\\s+handle$", "", raw_text).strip()\n'13    '                return [(fallback.group(1), raw_text)]\n'14    '            return []'15)16 17marker_new = (18    '                raw_text = re.sub(r"\\s+handle$", "", raw_text).strip()\n'19    '                return [(fallback.group(1), raw_text)]\n'20    '            # Ultra-fallback: strip all tags, extract key-value pairs\n'21    '            # from even badly malformed XML\n'22    '            stripped = re.sub(r"<[^>]+>", "\\n", content)\n'23    '            lines = [l.strip() for l in stripped.split("\\n") if l.strip()]\n'24    '            known_keys = {"name", "question", "dataset"}\n'25    '            tool = "rag_qa"\n'26    '            question = ""\n'27    '            dataset = "developer-portfolio"\n'28    '            for i, line in enumerate(lines):\n'29    '                if line not in known_keys:\n'30    '                    continue\n'31    '                if i + 1 < len(lines) and lines[i + 1] not in known_keys:\n'32    '                    val = lines[i + 1]\n'33    '                    if line == "name":\n'34    '                        tool = LONGCAT_NAME_MAP.get(val, val)\n'35    '                    elif line == "question":\n'36    '                        question = val\n'37    '                    elif line == "dataset":\n'38    '                        dataset = val\n'39    '            if not question:\n'40    '                vals = [l for l in lines if l not in known_keys]\n'41    '                if vals:\n'42    '                    question = " ".join(vals)\n'43    '            if question:\n'44    '                return [_normalize_tool_args(tool, {"question": question, "dataset": dataset})]\n'45    '            return []'46)47 48assert marker_old in src, "Marker not found"49src = src.replace(marker_old, marker_new, 1)50 51with open(P, "w") as f:52    f.write(src)53 54print("Patched _parse_tool_calls with robust XML fallback")55