深度求索提示词编写示例详解:如何写出稳定输出结果的实用技巧
很多人忽略了一个关键点:DeepSeek依赖的是模式匹配,而非真正的理解。当你输入“写个登录弹窗”,它可能输出Vue组件、jQuery层或伪代码——因为它无法预判你团队的编码风格。但只要附上一段生产环境中的AuthDialog.vue,包含props声明、emits定义与disabled状态透传,模型立刻就能对齐你的规范。这就是示例作为DeepSeek校准标尺的核心逻辑。
要让DeepSeek产出的代码、文案或结构化内容精准、完整且不自由发挥,关键在于提供可对齐的参照物,而非单纯描述需求。示例正是它的校准标尺。
为何示例不可或缺
道理很简单:DeepSeek不具备抽象概念能力,只能识别具体模式。当你说“写个登录弹窗”,它可能抛出带遮罩层的Vue组件、jQuery弹窗HTML,甚至伪代码——因为它没见过你团队的实际写法。而一旦贴出一段线上在用的、包含props定义与错误提示逻辑的LoginPanel.vue,模型便立即推断出:class需带前缀、emits需包含login/fail、disabled状态要透传到button。
无示例时,模型按通用模板填充;有示例时,它按你定义的契约执行。牢记:示例不是参考,而是接口协议。
三类示例写法与效果对比
方法一:单点锚定式(适用于快速复刻现有组件)
从项目中直接复制一段最简可用的组件代码作为唯一示例。例如,若你使用Ant Design Vue 4.3的Form表单,将包含rules校验、labelAlign="right"以及submit按钮禁用逻辑的完整代码粘贴过去。模型会自动继承命名约定(如formRef、onFinish)、TypeScript接口写法(如FormInstance),以及默认值处理方式(如initialValues为空对象时不报错)。
方法二:边界对比式(适用于防止遗漏和错误)
提供两个输入-输出对:一个常规场景,一个边界场景。例如:
输入: username="admin", password=""
输出: 触发密码必填校验,显示红色提示“请输入密码”,submit按钮置灰
输入: username="", password="123"
输出: 触发用户名必填校验,焦点自动跳回username输入框,不提交请求
操作很简单,分行列出两组“输入→输出”即可。模型一旦看到边界响应,便会主动添加校验分支与焦点处理逻辑。
方法三:失败-修复对照式(适用于纠正历史错误)
将上次生成失败的代码作为“输入”,修复后的版本作为“输出”。例如,上次生成的API调用函数缺少try-catch,可写为:
输入: def get_user(id): return requests.get(f"/api/user/{id}")
输出: def get_user(id: int) -> dict:
// 参数: 用户ID,正整数
// 返回: 成功返回user字典,失败返回{"error": "not_found"}
// 异常: 网络超时或404时捕获requests.exceptions.RequestException,返回error字典
try:
res = requests.get(f"/api/user/{id}", timeout=5)
return res.json() if res.status_code == 200 else {"error": "not_found"}
except requests.exceptions.RequestException:
return {"error": "not_found"}
模型会记住这个错误模式,后续自动补全异常处理块与类型注解。
示例后的硬性约束
第一个示例结束后,无需任何过渡,直接另起一行写入:
temperature=0.3 top_p=0.7 max_tokens=1200
接着换行,声明技术栈:
基于Vue 3.4 + TypeScript 5.4,采用<script setup>语法,props通过defineProps显式声明
最后一行仅放入新需求,例如:
输入: type=primary, size=large, loading=true, children="提交中"
