做 AI 产品最关键是尊重常识
2026-07-06 3383403
2026-07-06 0
要让Copilot生成可落地的建表需求,必须提供文档名、光标位置、字段业务动作、真实日志、下游消费方及权限约束等完整锚点,缺一不可。

你需要让Microsoft Copilot生成的数据库建表需求文档能直接交给DBA评审、被开发写进DDL脚本、被测试用来构造用例,就不能只写“请写一个用户表建表需求”——Copilot会返回泛泛而谈的id、name、created_at三字段模板,根本没法落地。
打开你本地或OneDrive里刚更新的《订单中心V3.0需求说明书_20260702.docx》→把光标停在“3.2 数据模型设计”小节末尾→点击Word右上角Copilot图标。
这一步不能跳过,【Copilot此时会自动读取文档名、光标位置及附近500字符内容】;如果只是口头说“我有个订单需求”,它根本不知道你指哪份文件、哪一段、是否已含字段草稿。
确认Copilot侧边栏顶部显示“正在分析:订单中心V3.0需求说明书_20260702.docx”后再输入提示词。
在Copilot输入框中,直接写:【当前在Word中,文档名为《订单中心V3.0需求说明书_20260702.docx》,光标位于“3.2 数据模型设计”小节下方,需生成order_info表建表需求,字段必须嵌入真实业务动作:例如“pay_status字段决定前端是否展示‘支付成功’弹窗,也控制风控系统是否触发反欺诈模型扫描;仅支付网关回调时更新,人工后台不可修改”。】
这里强制包含应用名(Word)、文件名(带日期)、位置(小节下方)、业务含义(支付状态作用)、更新约束(仅回调更新)——缺任一要素,Copilot就可能把pay_status解释成“支付状态码”,而不是“影响弹窗+触发风控扫描+禁止人工改写”的三重语义。
别写“请说明pay_status字段”,这种没锚点的提示会让Copilot忽略你文档里已写的“支付网关回调”上下文,转而虚构一个无关的“管理员后台开关”场景。
方法一:粘贴一行真实错误日志作为上下文锚点
在提示词末尾直接插入:[2026-07-01T14:33:12.189Z] ERROR order-service: order_id=ORD-20260701-00341, pay_status=null → rejected by DDL validation rule #ORD-501
方法二:用该日志反推字段约束
紧接着写:【请据此说明pay_status字段:① 为何在insert时必须非空;② 哪些值(如‘paid’‘refunded’)会触发下游履约服务;③ 若填入非法值(如‘success’),订单中心将拒绝写入并抛出ConstraintViolationException】。
方法三:绑定下游消费方的真实使用方式
在提示词中明确写出:【物流调度中台通过订阅Kafka topic ‘order_event’获取该字段,当pay_status=‘paid’且order_type=‘express’时,自动触发分单引擎;而BI报表平台只读取pay_status字段用于统计支付转化率,完全忽略order_type】。
【pay_status必须为非空字符串,且仅允许取值‘unpaid’‘paid’‘refunded’‘cancelled’,其他值会导致订单创建失败】
第一步:识别字段查看者
在提示词中写明:“pay_status字段在客服工单系统中仅显示中文描述(如‘已支付’),原始英文码值仅运维组和DBA可在数据库监控后台查看。”
第二步:标注字段变更路径
写清楚:“该字段值变更仅由支付网关回调接口触发,前端不可提交;若需人工干预(如误判退款),必须走DBA审批流程,填写《核心字段人工修正单》并附风控复核意见。”
第三步:禁用模糊表述
单独加一句:“禁止出现‘状态字段’‘用于标识支付情况’等抽象描述,必须写成‘决定前端弹窗、触发风控扫描、控制履约启动’三层业务作用。”