Kaynağa Gözat

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 ay önce
ebeveyn
işleme
d869e4d43f
No account linked to committer's email address
1 değiştirilmiş dosya ile 5 ekleme ve 7 silme
  1. 5
    7
      agent/component/template.py

+ 5
- 7
agent/component/template.py Dosyayı Görüntüle

@@ -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…
İptal
Kaydet