关键在于用语言特性锚定动词、缺陷类型驱动句式、角色切换打乱惯性:强制绑定Python 3.11/FastAPI上下文,禁用“应须改为补全”,限定每条意见调用with/try/typing等不可替代语法,并按空指针/类型混淆/资源泄漏三类匹配对应动作结构,再以FE/BE/SRE角色标签约束动词偏好。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让ChatGPT生成的代码评审意见避免“应校验”“须补全”“建议优化”反复出现,关键在于打断它对固定动词模板的路径依赖,强制它绑定具体语言特性与上下文语义。
用语言特征锚定动作动词
第一步:在提示词开头插入当前代码的语言运行时约束。例如「当前代码为Python 3.11 + FastAPI 0.115,所有异步函数均使用async/await,无threading.Lock」。
第二步:列出该语言中【不可替代的语法结构】,要求每条意见必须调用其中至少一个。比如Python中:with contextlib.suppress、try/except ValueError、typing.Optional、dataclass(slots=True)、@cached_property。
第三步:禁用通用动词池。明确写:“禁止使用‘应’‘须’‘改为’‘补全’四词中的任意一个;若意见含上述任一词,整条作废重写”。这会迫使模型从语言本身找动作出口——比如把“应校验空值”转成“第37行调用json.loads()前未包裹try/except JSONDecodeError,导致上游HTTP 400被吞没”。
用缺陷类型反向驱动句式变异
方法一:提供三类真实缺陷示例并标注其句式基因
① 空指针类 → 必须含“.get(key, default)”或“or None”结构
② 类型混淆类 → 必须含“isinstance(obj, ExpectedType)”或“pydantic.BaseModel.model_validate”
③ 资源泄漏类 → 必须含“with open() as f:”或“async with aiohttp.ClientSession() as session:”
用于在用户想通过浏览器自动化与 Google Gemini 或 ChatGPT 交互时。触发短语包括“ask Gemini”“ask ChatGPT”“ask GPT”“让...”。
方法二:在提示词末尾加硬性格式指令
“每条意见必须以缺陷类型开头,且后续动词必须来自该类型对应的动作结构库。例如:【空指针类】→ 使用.get()替代[];【类型混淆类】→ 插入isinstance校验;【资源泄漏类】→ 改为with语句包裹”。
这一步不做,ChatGPT会持续输出“建议增加类型检查”这种跨语言万能句式,而不会落到Python的isinstance或TypeScript的as const上。
用评审角色切换打乱表达惯性
直接告诉模型它此刻的身份:
“你现在是Code Review Bot v2.3,职责是模拟三位不同背景的工程师轮流出意见:前端工程师(关注DOM操作与事件流)、后端工程师(关注事务边界与序列化)、SRE(关注超时设置与panic日志)”。
每条意见开头强制标注角色缩写:
[FE] 第89行document.querySelector()未加null check → 触发Uncaught TypeError阻塞整个React组件挂载
[BE] 第12行JSON.parse()未捕获SyntaxError → 导致FastAPI中间件返回500而非400
[SRE] 第55行fetch timeout设为0 → 请求永不超时,连接池耗尽后服务雪崩
角色标签天然携带动词偏好:FE倾向用“触发/阻塞/挂载”,BE倾向用“导致/返回/抛出”,SRE倾向用“耗尽/雪崩/熔断”。模型无法复用同一套动词模板。

















