LLM生成的Python完整代码块在聊天界面中被分割怎么办?(当Prompt包含特殊Markdown序列时)

问题描述:

当我请求大模型生成或修改一段Python代码,而这个代码的功能是根据一个需求写出一个prompt调用大模型进行生成时,因为代码中的prompt中 内部 含有类似Markdown代码块标记的序列(例如 ```json````),LLM在聊天界面回复的整个Python代码块有时会被从这些内部标记处“截断”或“分割”成多个独立的代码块。

例如下图所示:
在这里插入图片描述

可以看到
prompt开始时的

"""

和末尾的

josn```

字符错误结合,导致整个代码块分裂,输出错误。导致我们无法一次性完整复制整个Python脚本,需要手动拼接,非常不方便,有时还会因为拼接错误引入bug。

解决方法:

  1. 修改Python字符串内容

    • 移除或替换内部的Markdown标记:Python字符串内部的 ```json 这样的标记尽可能在最终Prompt时用其他方式表达,就尽量移除它,或者用纯文本描述替代。例如,不写 ```json,而是写 “请确保输出是JSON格式,结构如下:…”。
    • 转义:理论上可以通过转义反引号(例如 \```)来告诉Markdown渲染器这不是一个代码块标记,但这在复杂的嵌套和聊天界面中效果不一定好,且可能让Python字符串本身变得难以阅读。所以主要还是针对第一点进行修改。
  2. 请求LLM调整输出

    • 明确告诉LLM:“请确保你回复的Python代码是一个单一、完整的代码块,不要在代码内部(尤其是在字符串常量中)使用可能导致Markdown渲染冲突的字符序列,比如三个反引号。”
    • 如果已经生成了被分割的代码,可以尝试说:“你刚才给我的代码被分成了几块,请把它们合并成一个完整的Python代码块再发给我。”
  3. 手动修复(最后手段)

    • 如果LLM实在无法正确输出,或者修改成本太高,那就只能手动复制粘贴,然后仔细检查拼接是否正确了。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐