瀏覽代碼

Fix: Preserve quotes while handling variable substitution withTemplate component. (#6410)

###Address Problem:
The original implementation used re.sub(r"(\\\"|\")", "", content) which
stripped all quotes from the processed content. While this worked for
simple Jinja2-rendered templates, it caused formatting issues when :
-Quotes were required in the final output (e.g., JSON, Python Code
strings)

###Solution:
    1. Selective JSON Serialization.
    2. Removed Global Quote Removal

### What problem does this PR solve?

This PR addresses an issue in template processing where all quotation
marks (" and \") were being removed from content, potentially corrupting
string formatting in rendered outputs. **In fact, extra quotes is
generated by json.dumps(v, ensure_ascii=False).**

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
tags/v0.18.0
Richard 7 月之前
父節點
當前提交
d869e4d43f
沒有連結到貢獻者的電子郵件帳戶。
共有 1 個檔案被更改,包括 5 行新增7 行删除
  1. 5
    7
      agent/component/template.py

+ 5
- 7
agent/component/template.py 查看文件

@@ -109,16 +109,14 @@ class Template(ComponentBase):
pass

for n, v in kwargs.items():
try:
v = json.dumps(v, ensure_ascii=False)
except Exception:
pass
if not isinstance(v, str):
try:
v = json.dumps(v, ensure_ascii=False)
except Exception:
pass
content = re.sub(
r"\{%s\}" % re.escape(n), v, content
)
content = re.sub(
r"(\\\")", "", content
)
content = re.sub(
r"(#+)", r" \1 ", content
)

Loading…
取消
儲存