【函数签名不可修改】【入参名称、顺序、类型注解必须1:1保留】【返回值类型与字段结构(含嵌套key)禁止增删改】 def process_order(order_id: str) -> dict:"""处理订单,返回标准响应结构""" result = {"status": "success", "order_id": order_id} return {"code": 0, "data": result} 「仅重写函数体内部(def行与return行之间);禁用try/except包裹原有逻辑;不新增全局变量;不修改任何import语句」
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让智谱清言帮你修复一段正在线上运行的Python函数,但不能改动它的输入参数名、返回值结构和调用方式——任何接口变更都会导致下游服务调用失败或CI校验报错。
明确锁定接口契约
在提示词最开头,用三行硬性声明框定不可触碰的边界:
【函数签名不可修改】
【入参名称、顺序、类型注解必须1:1保留】
【返回值类型与字段结构(含嵌套key)禁止增删改】
这三行必须顶格写,不加引号、不换行、不缩进。模型若识别到“不可修改”“必须1:1”“禁止”等强约束词,才会放弃自动补全参数或重命名return dict的key。
接着换行,粘贴原始函数代码(含def行、参数注解、docstring、return语句),【务必包含最后一行return语句的完整结构,例如return {"code": 0, "data": result}】。漏掉return行,模型可能擅自改成return result或raise Exception,直接破坏接口契约。
引导模型只修逻辑不碰壳
在代码下方,用分号分隔指令块,写明动作边界:
「仅重写函数体内部(def行与return行之间);禁用try/except包裹原有逻辑;不新增全局变量;不修改任何import语句」
这条指令直击常见翻车点:模型喜欢给老函数加异常捕获,结果把原本抛出的ValueError变成统一的APIError,下游服务的错误分类逻辑就全乱了。用“禁用try/except包裹原有逻辑”能精准堵住这个漏洞。
如果原函数有类型注解(如def process_order(order_id: str) -> Dict[str, Any]),必须保留;若没有,不要补。补了反而会触发mypy校验失败,因为实际运行时Python解释器并不强制执行注解。
验证修复后是否仍兼容旧调用
第一步:复制修复后的完整函数代码,粘贴进Python解释器,执行以下检查:
import inspect; sig = inspect.signature(process_order); print(sig)
第二步:对比修复前后输出的Signature对象,确认parameters列表长度、每个param.name和param.annotation完全一致。
第三步:构造一个最小合法输入(如process_order("ORD-123")),确认返回值能被json.dumps()序列化且字段结构未变——【若返回字典含datetime对象,必须保持原样不转str,否则下游解析会报TypeError】。











