前言
22:30分的宿舍区骤然响起此起彼伏的嚎叫——不是无畏契约五杀惨案,而是学习通定时投送的《心理课结课论文》末日倒计时。
你手抖着撕开一包“学术急支糖浆”(指DeepSeek),输入史诗级烂咒语: “帮我写一篇心理课结题论文1000字” 。
AI立刻端出一锅电子猪食:
后天的凌晨三点,咖啡渍斑驳的Word文档堆里,老师的Ctrl+F键突然在你这篇 《内在世界的守望者:后现代语境下的心理健康自护之道》 前紧急刹车——
标题是端庄的华文中宋,连“综上所述”后面都跟着精妙的破折号递进。但那双批改过114514篇论文的眼睛,早已在文章的三个小标题处,闻到了AI味儿溢出屏幕的工业香精。
“同学,你连‘情结“和”情绪’都分不清吧?”红笔在你的文章上落下赛博朱批:
“建议重修《学术裁缝的自我修养》第三章——如何防止Prompt水印反光刺伤导师眼睛(参考案例:把‘根据研究表明’换成人类会说的正常话)”
几日后,你的小作文不合格了,这时你看看你同学的论文:
“嘿!昨天不是还一起打瓦呢吗!你哪来的时间自己手写!?”这时你的同学回答道:
那既然如此,命名都是AI写的,怎么差距就这么大!!!
那是因为有Prompt的存在啊,Prompt写好了,你的论文自然没有任何问题的~
Prompt 是个啥玩意?
Prompt:就是提示词,分为System Prompt & User Prompt,是我们与LLM(Large Language Model)交流最重要的东西。
简单来说,你在聊天输入框输入的东西都叫Prompt:
(此App为Cherry Studio,内部可以接入各种厂家的API Key,和各种不同的LLM进行对话,感兴趣的大家可以去下载一个用一用,地址:www.cherry-ai.com/ )
既然是这样,那我们提到的User Prompt 和 System Prompt 究竟有什么区别呢?
System Prompt
System Prompt 是系统提示词,是开发者预先设定的“角色设定”或“行为规范”,用来告诉AI如何更好地响应用户,它在chat-bot中规定了AI的人设,允许它回复什么,不允许它回复什么,这一切都在System Prompt中,一般是用户不可更改也是不可看的。
当然也不是全部的系统提示词不可以更改,ChatGPT就可以定制提示词:
User Prompt
User Prompt 是用户提示词,我们输入的都算是用户提示词,比如我们输入:写一篇关于心理健康的自我维护的论文,不少于800字,就算是一个User Prompt,简而言之,就是你发出的指令都被视为User Prompt,相同的,你也可以在这里规定AI的人设,规定AI的回复格式,给AI一些限制等等都是可以做到的。
OK,既然Prompt有这么大的魔力,使我们同一题目下的论文的产出效果如此不同,那么,我们该如何写好一个Prompt,才能每一次用AI都不被老师一眼发现呢?
Promptの使用技巧——从小白到大神
使用方法
使用LLM来完成任务时,我们的撰写的Prompt可以遵循以下规则:
Prompt 规则 :
1.给一个身份,像人一样思考
2.给它一个目的,要让他做些什么
3.给它一个具体的任务,明确任务的各种细节,细化任务的各种流程,要清晰,准确。
4.要令其遵守什么样的规则,能做什么,不能做什么。
PS:这些规定不是死的,大家遇到不同需求灵活运用~
接下来我将以一个开发chrome插件的Prompt为基础来展示这些规则如何去运用,以下开发运用的是Trae:
instructions.txt你是一个经验丰富的Chrome拓展开发者。请帮我开发一个名为Hulk的扩展应用。具体交互步骤如下:Step 1: 点击程序图标打开弹出窗口,在窗口中显示默认提示: “改变背景颜色”、“点击下方按钮将当前页面背景色为浅绿色” 和一个 “改变背景颜色”按钮Step 2: 点击按钮,网页背景颜色改变为绿色注意以下两点:1. 请使用icons文件夹的图标作为应用程序的图标2. 将icons中的UX.jpg作为UX设计图
这里要表扬一下这些插件了,字节的Trae或者腾讯的CodeBuddy都可以读取我们的开发文件,这使得我们对于Prompt的书写不仅仅局限于聊天框了,而是可以利用文件写的更加具体,使得Prompt作为一个单独的模块来进行Prompt Engineering,而且利用Prompt进行开发不太需要我们明白太多的代码知识,可以0基础来尝试开发了
像这样的开发也可以看一看 (超链接在此👉) Coze(👈超链接在此) 很优秀的一款产品,里面可以搭建自己的AI模型完成不同的任务。
这是利用Trae生成的文件:
/** @desc 页面背景切换* @author Skye* @date 2025-05-10*/// 监听 DOM 内容加载完成事件,确保在 DOM 元素都加载完成后再执行代码document.addEventListener('DOMContentLoaded', function() { // 通过元素的 ID 获取“改变背景颜色”按钮元素 const changeColorButton = document.getElementById('changeColorButton'); // 为“改变背景颜色”按钮添加点击事件监听器 changeColorButton.addEventListener('click', function() { // 检查 chrome.scripting API 是否可用 if (!chrome.scripting) { // 如果不可用,在控制台输出错误信息 console.error('chrome.scripting 不可用,请检查 Chrome 版本或 manifest.json 配置。'); // 终止当前函数执行 return; } // 查询当前活动窗口中的活动标签页 chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { // 检查是否找到了活动标签页 if (tabs.length === 0) { // 如果未找到,在控制台输出错误信息 console.error('未找到活动标签页。'); // 终止当前函数执行 return; } // 在找到的活动标签页中执行脚本 chrome.scripting.executeScript({ // 指定要执行脚本的标签页 ID target: {tabId: tabs[0].id}, // 定义要在标签页中执行的函数 function: function() { // 将当前页面的 body 元素的背景颜色设置为绿色 document.body.style.backgroundColor = 'green'; } }, function(results) { // 检查执行脚本过程中是否有错误 if (chrome.runtime.lastError) { // 如果有错误,在控制台输出错误信息 console.error('执行脚本时出错: ', chrome.runtime.lastError); } else { // 如果没有错误,在控制台输出成功信息 console.log('背景颜色已成功更改。'); } }); }); }); // 添加新按钮事件处理 // 通过元素的 ID 获取“去除颜色”按钮元素 const removeColorButton = document.getElementById('removeColorButton'); // 为“去除颜色”按钮添加点击事件监听器 removeColorButton.addEventListener('click', function() { // 检查 chrome.scripting API 是否可用 if (!chrome.scripting) { // 如果不可用,在控制台输出错误信息 console.error('chrome.scripting 不可用,请检查 Chrome 版本或 manifest.json 配置。'); // 终止当前函数执行 return; } // 查询当前活动窗口中的活动标签页 chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { // 检查是否找到了活动标签页 if (tabs.length === 0) { // 如果未找到,在控制台输出错误信息 console.error('未找到活动标签页。'); // 终止当前函数执行 return; } // 在找到的活动标签页中执行脚本 chrome.scripting.executeScript({ // 指定要执行脚本的标签页 ID target: {tabId: tabs[0].id}, // 定义要在标签页中执行的函数 function: function() { // 将当前页面的 body 元素的背景颜色设置为空,恢复默认 document.body.style.backgroundColor = ''; } }, function(results) { // 检查执行脚本过程中是否有错误 if (chrome.runtime.lastError) { // 如果有错误,在控制台输出错误信息 console.error('执行脚本时出错: ', chrome.runtime.lastError); } else { // 如果没有错误,在控制台输出成功信息 console.log('背景颜色已成功去除。'); } }); }); });});
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>改变背景颜色</title> <style> body { width:300px; } </style></head><body> <p>改变背景颜色</p> <p>点击下方按钮将当前页面背景色为浅绿色</p> <button id="changeColorButton">改变背景颜色</button> <!-- 添加新按钮 --> <button id="removeColorButton">去除颜色</button> <script src="popup.js"></script></body></html>
关于生成后的报错
大家要明白,利用AI生成你想要的东西都不会一次性就会成功的,就像这个插件demo,中间也出现过一些错误,对于这些错误我们可以进行处理,比如将报错再喂给AI,联系所用的文件一起让AI进行分析,对文件再进行修改....
或者,我们可以再针对于Prompt进行再改动,也就是吴恩达提到的Iterative Prompt Development:
即从我们的想法出发,写Prompt,通过反馈和错误分析不断迭代我们的Prompt,写出一个适应生产情况的Prompt。
如何利用Prompt的规则调教水课论文
现在我们理解了Prompt的使用技巧了,那么我们该如何调♂教一下LLM使得它生成我们想要的论文呢?大家看下面:
为什么我会第一次想到用这个Prompt呢?
经过我的测试和资料搜集,我发现DeepSeek生成的论文逻辑性都是非常强的(第2条给它限制),而且当你给它指定某专业的角色后,他会在论文中添加大部分本专业懂的术语来作为论据,而且它不太明白知识的边界,比如让它生成思政类论文,它会用一些思政专业研究生都很少听的名词(上次我就是这么被老师拷打的),到时候一下就露馅了,所以对于它的这些问题,我们要给它限制!
大家看到这篇生成的论文,我要求它语言要生活化,思维可以很跳跃,就是限制了电子大粪的出现,因为我们人的思维是跳跃的,不是完全被逻辑封死的,语言上也不会写的那么高大上,各种专业名词和连词堆在一起。
Prompt的再改进
但是呢,这篇论文还有很多毛病,1.它无视了我不让它生成小标题的规定,2.它生成的语言过于生活化,不适合当一篇作文,针对这两点,我们就需要进行Prompt Iteration,不断修改我们的Prompt,大家看下面更新后所生成的文章:
解析:由于上一篇的语言过于随意和生活化,所以添加了限制——也要书面语;又重申了不能使用标题的规定,最终生成了一篇质量还算令人满意的文章。
那么我们就止步于此了吗?不能对文章进行再优化了?不不不,my friend,我们还有好多利用LLM的技巧,下面给各位呈上!
超限突破:LLM高级优化技巧——从局限驾驭到多维智能跃迁
🔍 模型限制(Model Limitations):识边界,破幻觉
问题: 尽管大模型在训练时接触了大量的知识,它并没有完全记住它所见的信息,他对自身的知识边界不明晰,会产生幻觉(Hallucinations),也就是会凭空而造出一些不存在的东西来回复你的问题,所以我们要给模型添加限制,来得到尽量精确的答案。
解法:
✅ 验证式引导——“请先列出3个权威来源,再基于此分析……”
✅ 不确定性标注——“若无法确认,请标注‘待验证’并说明推理过程”
🤔 自主求解(Instruct to Work Out Solutions):慢思考,准决策
问题: 模型常急于给出表面答案,缺乏深度推演。
解法:
🔧 分步强制思考——(给出更清晰的执行过程,要求第一步做啥,第二步做啥....)
例:
- 先列出所有可能的解决路径评估每条路径的可行性(成本/效果/风险)综合比较后给出最优解
🔧 令模型自己先求解
例:在验证自己的数理问题是否正确时先让大模型自己求解一遍再与自己的做比较,吴恩达的课中有提到过:大模型有时也会粗心得和人一样,题干没读通透,导致让它验证答案时得到的结果是错误的,这个时候让它自己做一遍再与我们的进行比较是个很好的选择。
📌 智能总结(Summarizing):从泛泛而谈到精准提炼
场景对比:
❌ 普通指令:“总结这篇新闻” → 得到笼统概述
✅ 高阶技巧:
- 角度控制:“从‘技术突破’和‘市场影响’双维度总结”复杂度调节:“用小学生能听懂的话总结量子计算原理”
🔄 动态转化(Transforming):跨模态与跨风格的智能变形
可以是人类语言之间的转换,可以是同一种语言表达方式的转换:
(Translate the following languages in both the formal and informal ways in English)
也可以将机器语言类型的转化 HTML→JSON Markdown.....
实战案例:
- 语气转型:“把这份法律条款改写成风趣的社交媒体文案”格式迁移:“将会议录音转文字,并按‘议题-结论’结构化输出”语言翻译:“将这份材料从英文翻译为中文”
强烈推荐:非母语者使用拼写或语法检查,so helpful~
🔎 深度推理(Inferring):超越字面,洞察隐藏逻辑
主要涉及到 Information Extracting,从大量数据中提取想要的数据进行分析
(by the way,大量信息的提取建议利用JSON格式😀)
高阶应用:
- 信息抽取:“从客户差评中提取产品改进线索(JSON格式)”情感解构:“分析这封邮件的潜在不满情绪,按0-10分量化”
🚀 思维扩展(Expanding):可控的创造力爆发
温度(Temperature)调控术:
参数 | 适用场景 | 输出特性 |
---|---|---|
0.2 | 财务报告 | 严谨保守,数据精准 |
0.7 | 产品创意提案 | 平衡创新与可行性 |
1.0 | 科幻小说构思 | 天马行空,脑洞大开 |
temperature:能使我们改变模型生成内容的类型
可以将其理解为模型的探索程度或者某种随机性程度
也就是对于同一个问题有不同的回答
可以理解为 temperature 越高模型就越分心越有创造力
💡 终极心法:“LLM的局限不是终点,而是需要被智能引导的起点。通过结构化思考、分步验证和维度控制,将‘生成式AI’转变为‘决策级AI’。”
结语
同学们,经过这期“如何用 AI 写论文不被导师追杀”特训,我们成功从"AI,帮我写个论文"(然后得到5000字废话)升级成"AI,按这篇大纲用学术语言写第三章,参考文献限2020年后,禁止编造数据"(直接得到可用初稿)
📜 我们学会了什么?
“喂饭级指令”才是好指令
- 以前:"总结这篇文章" → AI 给你一段仿佛没读懂的读后感现在:"用三个bullet points总结核心论点,每点不超过15字" → 瞬间人话
AI 不是学霸,是那个 “考前连夜翻书装懂”的学渣
- 如果你问:"量子物理最新突破是?"它可能当场编个"科学家发现薛定谔的猫其实是大象"所以现在我们会:❌ "直接给答案"✅ "先查2023年《Nature》论文,再对比三家观点"
格式控制 = 防止 AI 放飞自我
- 没约束时:AI 的论文像酒后抒情散文加上"用APA格式,每段有主题句"后:瞬间像模像样
“分步思考”让 AI 智商+50%
- 效果对比:🤯 直球提问:"这经济学模型靠谱吗?" → "大概也许可能?"🧠 分步榨干:
1. 列出该模型的三个假设2. 找出近5年反对这些假设的论文3. 最后给可靠性打分(1-5)
→ 得到能当答辩答案的结论一些忠告
- 像驯哈士奇一样驯 AI:尽量给明确的指令,不给明确指令就拆家(胡编乱造)最高境界:让 AI 觉得你在带它写论文,而不是它带你(即给它限制,指引它完成任务)别忘了:交作业前把 "根据 AI 分析…" 改成 "本研究认为…"(嘘——)
最后送大家一句魔咒:🔮 “Poor prompt, garbage output.Good prompt, PhD output.”
Plus:文章内容如果有错误还希望各位大佬指出,我们一起进步,预祝大家端午节快乐!
(好了,我要去打瓦了)