01-提问的艺术:如何让AI听懂“人话”
你是否也曾被AI的回答气得哭笑不得?
它就像那个刚来的实习生,聪明,学得快,但脑子一根筋。你让他扫地,他恨不得把地板都给掀了;你让他倒水,他能给你精确到毫升,但就是忘了加热。
问题不在它,在我们。我们跟它说话,就像在维护没有文档、没有注释的祖传代码,总指望着它能“心领神会”。
这个《与AI共舞》系列,就是一个老程序员的私房笔记。这里没有高深莫测的论文,也没有空洞的理论,只有我踩过的坑、总结出的“黑话”,以及一些能让你立刻上手的“骚操作”。
我们将一起,完成一场对AI的“调教”之旅:
作为一个在代码世界里摸爬滚打了半辈子的老家伙,我得承认,AI这玩意儿,是真有点意思。它就像我们年轻时遇到的那种实习生——聪明、学得快,但偶尔会犯些让你哭笑不得的低级错误。你让他修复一个bug,他可能直接把整个模块给删了,然后一脸无辜地告诉你:“老板,现在没bug了。”
你是不是也遇到过这种情况?你让AI帮你写个文案,它给你一段“亲爱的用户,我们很高兴地通知您……”,客气得像银行催债的;你让它帮你画个图,它给你一个四不像,让你怀疑自己的审美是不是出了问题。
问题出在哪?是我们提问的方式。
跟AI打交道,就像是在写代码。你不能指望它“心领神会”,你得给它清晰、明确、无歧义的指令。我们这些写代码的,最懂这个了。你写a = b + c
,计算机绝不会去猜你想不想要四舍五入。你给AI的指令(也就是Prompt)也是一个道理。
把AI当成一个“函数”
你可以把和AI的每一次对话,都看作是一次函数调用。你输入的Prompt就是参数,AI返回的内容就是函数的返回值。要想得到预期的结果,你的参数得传对。
那么,怎么传参呢?我总结了三个基本原则,算是我的“三板斧”。
第一板斧:给它一个“角色”
你直接跟AI说:“写个产品介绍。”它会很困惑。什么产品?写给谁看?用什么语气?它只能猜,结果往往就是平庸的“AI味”文案。
但如果你换个说法:
“你现在是一个资深的产品经理,也是一个幽默风趣的段子手。我需要你为我的新产品‘万能AI盒’写一段介绍,目标用户是那些对AI感兴趣但又有点怕麻烦的普通人。风格要轻松、好玩,多用比喻,少说术语。”
你看,这就好比你在调用一个函数前,先把它new
出来,还给它赋了一堆初始值。你告诉它,它的身份是“资深产品经理+段子手”,它的任务是“写产品介绍”,它的目标是“吸引怕麻烦的普通人”,它的风格是“轻松幽-默”。
AI有了这个“人设”,就知道该用什么“声线”来说话了。
第二板斧:提供“上下文”
光有角色还不够,你得给它“剧本”,也就是上下文。AI没有我们人类的生活经验,它的“知识”都来自于它读过的海量数据。你不给它上下文,它就只能从它那庞杂的知识库里随机捞一点出来。
比如,你直接问:“最近有什么好电影?”它可能会给你推荐一部十年前的奥斯卡获奖影片。
但如果你加上上下文:
“我最近压力很大,想看一部能让我从头笑到尾的喜剧电影,放松一下。我比较喜欢周星驰那种无厘头的风格,有没有类似的新片推荐?”
这个Prompt里,“压力大想放松”是背景,“喜剧电影”是类型,“周星-驰风格”是偏好。有了这些上下文,AI就能更精准地理解你的需求,给出的推荐自然也就更靠谱。
写代码时,我们都知道要给变量起个有意义的名字,要写注释,这就是在提供上下文。对AI,也是一个道理。
第三板斧:明确“输出格式”
最后,你得告诉AI,你想要的东西长什么样。
如果你让AI“给我列一下学习Python的步骤”,它可能给你一段长篇大论。但如果你要求得更具体:
“请用Markdown的有序列表(numbered list)格式,为零基础的小白规划一个为期四周的Python学习计划。每周都要有明确的学习重点和几个可上手练习的小项目。”
看到区别了吗?你不仅告诉它“做什么”(规划学习计划),还告诉它“怎么做”(用有序列表,分四周,包含重点和项目)。这就好比你不仅告诉程序员要做个登录功能,还把UI原型图、API接口文档都拍在他桌上。
他会对你感激涕零的,相信我。
总结一下
跟AI打交道,别把它当成一个无所不知的神,也别把它当成一个言听计从的奴隶。把它当成一个需要你循循善诱的“实习生”,或者一个需要你精确传参的“函数”。
记住这三板斧:
- 角色扮演 (Role-playing): 告诉它“你是谁”。
- 提供上下文 (Context): 告诉它“背景是什么”。
- 指定输出格式 (Output Formatting): 告诉它“我要什么样子的结果”。
掌握了这三点,你就已经比80%的人更会“提问”了。你手里的AI,也会从一个“聪明的傻子”,慢慢变成你真正的“得力助手”。
下一篇,我们来聊聊怎么通过“角色扮演”,把AI调教成你专属的“专家顾问团”。这其中的门道,可比你想象的要深得多。