15|Prompt 结构化:目标-上下文-约束-输出格式
本篇目标这是卷 2提示工程实战的第一篇。我们将告别“聊天式提问”学会像写代码一样写 Prompt让 AI 的回答从“看运气”变成“稳定交付”。一、为什么你的 Prompt 总是不稳定很多人的提问方式是碎片化的第一句“帮我写个 Python 脚本。”AI 给了个脚本。第二句“不对要能读取 Excel 的。”AI 改了。第三句“要把结果存到数据库。”AI 又改了。第四句“能不能加个进度条”这种“挤牙膏”式的提问不仅累而且容易让 AI迷失上下文记得卷 1 讲的遗忘原理吗。更高效的做法是一次性把话说完并且说得有条理。这就是结构化 Prompt。二、结构化 Prompt 的四大支柱GOCO 模型一个完美的 Prompt应该包含四个核心模块Goal目标、Context上下文、Constraints约束、Output输出格式。1. Goal目标你要干什么用一个动词开头清晰定义任务。差“看看这个代码。”好“重构这段 Python 代码使其符合 PEP8 规范并优化循环性能。”2. Context上下文背景信息告诉 AI 它不知道的信息。角色你是谁资深后端工程师环境代码运行在哪里Ubuntu 22.04, Python 3.10依赖已经装了什么库Pandas, SQLAlchemy业务背景这是给谁用的给财务部门用的报表工具3. Constraints约束红线与边界告诉 AI不能做什么或者必须做什么。“必须使用pathlib禁止使用os.path。”“代码必须包含类型注解Type Hints。”“不要解释基础概念直接给代码。”4. Output输出格式交付物标准告诉 AI 你想要什么样子的结果。“返回一个 JSON 格式的列表。”“只返回修复后的代码块不要 Markdown 包裹。”“先列出修改计划再给代码。”三、实战对比从“路人甲”到“工程师”任务写一个 SQL 查询统计每个用户的订单总额。❌ 路人甲 Prompt“写个 SQL 查用户订单总额。”AI 回复随机性大它可能会给你写个 MySQL 的也可能写个 PostgreSQL 的可能没考虑订单状态退款的也算进去了字段名也是瞎编的。✅ 结构化 Prompt# Goal Write a SQL query to calculate the total order amount for each user. # Context - Database: PostgreSQL 15 - Table users: id, username - Table orders: id, user_id, amount (decimal), status (string), created_at (timestamp) - Business Logic: Only include orders with status completed. # Constraints - Use LEFT JOIN to include users with zero orders (show 0 as total). - Sort by total amount descending. - Use COALESCE to handle NULL values. # Output Format - Return only the SQL code block. - Add comments explaining the logic.AI 回复精准稳定-- Calculate total order amount for each user, including those with no ordersSELECTu.id,u.username,COALESCE(SUM(o.amount),0)AStotal_amountFROMusers uLEFTJOINorders oONu.ido.user_idANDo.statuscompletedGROUPBYu.id,u.usernameORDERBYtotal_amountDESC;结果完全符合预期用了 Postgres 语法过滤了状态处理了 NULL 值排序正确。四、Prompt 的“积木化”管理不要每次都从头写 Prompt。你应该建立自己的“Prompt 积木库”。1. 角色积木Role Block存一个文件role_python.mdYou are a Senior Python Engineer. - You prefer pydantic for data validation. - You use pytest for testing. - You follow Google Style Guide for docstrings.2. 任务积木Task Block存一个文件task_refactor.md# Goal Refactor the provided code for better readability and performance. # Constraints - Keep the original logic unchanged. - Add comments for complex logic.3. 组合使用当你需要重构 Python 代码时只需要把这两个积木拼起来再贴上你的代码即可。在Cursor或Trae中你可以把这些积木存为.cursorrules或 Snippets一键调用。五、本篇产出通用 Prompt 模板可复制请把这个模板保存到你的笔记软件里每次提问前填空。# Role (角色) [你是谁例如资深前端开发精通 React 和 Tailwind CSS] # Goal (目标) [你要做什么例如实现一个响应式的登录页面组件] # Context (上下文) [背景信息例如 - 使用 Next.js 14 App Router - 已安装 lucide-react 图标库 - 需要适配深色模式 ] # Constraints (约束) [规则是什么例如 - 使用 TypeScript - 必须包含表单验证Zod - 不要使用任何额外的 CSS 文件全部用 Tailwind 类 ] # Output Format (输出格式) [长什么样例如 - 只提供组件代码文件 (.tsx) - 不解释基础 import ] # Input Data (输入数据 - 可选) [如果有代码要改贴在这里]练习题修复这个烂 Prompt烂 Prompt“帮我把这个 excel 转成 csv。”请用上面的模板把它改成一个结构化 Prompt。提示你要考虑 excel 有几个 sheetcsv 存哪里编码格式是 utf-8 吗要不要保留表头点击查看参考答案# Goal Write a Python script to convert an Excel file to CSV. # Context - Input file: data.xlsx (contains multiple sheets) - Target sheet: Sheet1 only # Constraints - Use pandas library. - Encoding: UTF-8 with BOM (to support Chinese in Excel). - Separator: Comma (,). - Handle missing values: Fill with empty string. # Output Format - Provide the full Python script.下一步掌握了结构化你的 Prompt 已经及格了。但有时候仅仅把话说清楚还不够你得给 AI “打个样”。下一章我们将学习Few-Shot Prompting示例驱动——这是让 AI 瞬间学会你团队代码风格的终极秘籍。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440244.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!