fix(rag): 图片占位符正则扩展匹配 LLM 输出的 placeholder URL
LLM 有时输出  而非 ,正则尾部增加 https?:// 匹配覆盖。
This commit is contained in:
@@ -1417,10 +1417,11 @@ def _replace_table_image_placeholders(answer: str, images: List[Dict]) -> str:
|
|||||||
parts.append('[图片]') # 图片用完了
|
parts.append('[图片]') # 图片用完了
|
||||||
return ' '.join(parts)
|
return ' '.join(parts)
|
||||||
|
|
||||||
# !? — 可选前导 !(LLM 有时加)
|
# !? — 可选前导 !(LLM 有时加)
|
||||||
# \[(\d+)?张?图片\] — [图片] 或 [3张图片](张 可选)
|
# \[(\d+)?张?图片\] — [图片] 或 [3张图片](张 可选)
|
||||||
# (?:\(图片URL\))? — 可选的 LLM 从上下文复制的假 URL
|
# (?:\((?:图片URL|https?://[^)]+)\))? — 可选的 LLM 从上下文复制的假 URL
|
||||||
result = re.sub(r'!?\[(\d+)?张?图片\](?:\(图片URL\))?', _replacer, answer)
|
# 匹配 (图片URL) 或 (https://via.placeholder.com/150) 等
|
||||||
|
result = re.sub(r'!?\[(\d+)?张?图片\](?:\((?:图片URL|https?://[^)]+)\))?', _replacer, answer)
|
||||||
if replaced_count > 0:
|
if replaced_count > 0:
|
||||||
logger.info(f"[图片占位符替换] 替换了 {replaced_count}/{len(images)} 个图片为 markdown 图片语法")
|
logger.info(f"[图片占位符替换] 替换了 {replaced_count}/{len(images)} 个图片为 markdown 图片语法")
|
||||||
return result
|
return result
|
||||||
|
|||||||
Reference in New Issue
Block a user