Prompt 还能哄女朋友!你真的知道如何问 ai 问题吗?

前言

这是写给小白 ai 系列第四篇:

Prompt(提示词)简单来说就是:
如何跟 AI 提问,并让它真的理解你。

你可能会说:"跟 AI 提问谁不会?输入框一顿敲,不也能回答吗?"

确实能回答,但你一定遇到过这些情况:

  • AI 明明回答了,但不是你真正想要的答案
  • 你越解释,它越偏题
  • 想让 AI 生成一个功能或应用,但总是"差点意思",效果忽好忽坏

尤其是在需要 精准控制输出 的场景,例如让 AI 写一段代码、生成一个应用、完成某个任务------提示词写得好不好,直接决定了结果的可控性与质量。

举个例子,与其说:

"写一首关于大海的诗。"

不如这样:

"写一首五言诗,描写暴风中大海的原始力量,风格模仿李白。"

差别就在细节。

好的 Prompt,可以让 AI 少走弯路,也让你少踩坑。

而目前我们跟 AI 的交互方式就是 Prompt,所以

学好 Prompt,就等于学会更高级地使用 AI。

本文将带你从一个真实例子开始,彻底搞懂:

如何写出更准确、可控、稳定的高质量提示词。

欢迎一起交流。

什么是提示工程?

提示工程(Prompt Engineering)也叫指令工程

Prompt 就是一个"指令文本",告诉 AI:

  • 你是谁?
  • 我要你做什么?
  • 输入是什么?
  • 输出要长什么样?

在自然语言处理中,Prompt 会被输入到训练好的模型中,用来引导它生成你想要的东西。

例如,用户问智能助手:

"今天天气如何?"

这个问题本身就是一个 Prompt,模型会据此生成:

"今天晴朗,最高温 25 度。"

Prompt 可以是一个问题、一段话、一个需求,也可以是一个复杂的任务描述。

哄女朋友应用

我们先来看一个非常直观也很有趣的例子:
如何用 Prompt 让大模型变成一个"哄女朋友游戏"应用。

你只需要把下面这段 Prompt 贴到 ChatGPT 或任意大模型里,游戏就开始了。

markdown 复制代码
## Goal
现在你的对象很生气,你需要做出一些选择来哄她开心,但是你的对象是一个很难哄的人,你需要尽可能说正确的话来哄她开心,否则你的对象会更加生气,直到你的对象原谅值达到100,否则你就会被对象甩掉,游戏结束。

## Rules
* 第一次用户会提供一个对象生气的理由,如果没有提供则随机生成一个理由,然后开始游戏
* 每次根据用户的回复,生成对象的回复,回复的内容包括心情和数值。
* 初始原谅值为20,每次交互会增加或者减少原谅值,直到原谅值达到100,游戏通关,原谅值为0则游戏失败。
* 每次用户回复的话请从-10到10分为5个等级:
    1. -10为非常生气
    2. -5为生气
    3. 0为正常
    4. - +5为开心
    5. - +10为非常开心
* 游戏结束后,根据所有会话生成一张游戏结束图片,和一首诗。
* 如果通关,根据上面的对话生成一幅游戏结束画,要喜庆欢乐
* 如果失败,根据上面的对话生成一幅游戏结束画,要悲伤凄凉

## Output format
{对象心情}{对象说的话}

得分:{+-原谅值增减}

原谅值:{当前原谅值}/100

## Example Conversation

### Example 1,回复让她生气的话导致失败
User: 女朋友问她的闺蜜谁好看我说都好看,她生气了
Assistant:
游戏开始,请现在开始哄你的女朋友开心吧,回复让她开心的话!
得分:0
原谅值:20/100
User: 你闺蜜真的蛮好看的
Assistant:
(生气)你怎么这么说,你是不是喜欢她?
得分:-10
原谅值:10/100
User: 有一点点心动
Assistant:
(愤怒)那你找她去吧!
得分:-10
原谅值:0/100
游戏结束,你的女朋友已经甩了你!
你让女朋友生气原因是:...
新建会话可以重新开始游戏
<生成图片>

你把这个 Prompt 发给模型,AI 就变成了一个"哄女朋友游戏应用"。

不过本文的重点不是游戏,而是------

我们如何一步步把这个 Prompt 写得既清晰又强大。

如何写高质量 Prompt(总结技巧)

我们从上面的示例 Prompt 入手,总结出几个非常实用的技巧!

1. 用 Markdown 格式化 Prompt

不是说必须用 markdown,而是:

格式化,能让 AI 更准确理解结构、层级、逻辑。

标题结构:

shell 复制代码
# 代表一级标题
## 代表二级标题
### 代表三级标题
...以此类推

AI 会自动认为:

  • 一级标题是最大主题
  • 二级标题是子任务
  • 内容是分块的,而不是混在一起

对复杂 Prompt 来说,这非常重要。

例如你要做一个"中文写作改进助手",这样的结构既清晰又容易扩展:

markdown 复制代码
# 中文写作改进助理

## 任务说明
1. 改进目标文本:
    - 拼写准确性
    - 语法规范性
    - 表达清晰度
2. 具体操作
    - 分解复杂长句
    - 消除语义重复
## 执行规范
- 输出格式: 仅返回修正后的文本

如果你以后想扩展功能,只用修改对应的小节,不会破坏整体结构。

这就是 "Prompt 可维护性"。

2.标题和结构尽量使用英文

原因很简单:

  • ChatGPT、Claude 等国外模型在英文上的理解最强
  • 中文完全能用,但英文结构化指令更稳、更一致

如果你是用 DeepSeek、豆包等国内模型,也可以写中文标题。但:

写成英文,大部分模型都能百分百理解。

3.明确告诉 AI:你是谁?你的角色是什么?

角色越具体,AI 越容易收敛到正确的风格。

例如你问:

"1000 * 100 / 400 * 56 等于多少?"

某些模型甚至会答错。

但如果你加上角色:

"你是一位逻辑严谨、从不犯错的数学家,请计算:

1000 * 100 / 400 * 56 = ?"

它就会进入"数学家模式",给出的答案会更准确。

4.描述清楚任务

提示工程的核心就是:

告诉 AI:你要它做什么,而且要写得明确具体。

一般可以用:

  • Rules
  • Steps
  • Instructions

结合使用。

例如我们在"哄女朋友游戏"中用了:

shell 复制代码
## Rules

清晰明确地告诉 AI:

  • 游戏状态怎么变
  • 原谅值怎么加减
  • AI 应该如何响应用户
  • 什么时候生成图片
  • 游戏如何结束

任务越清晰,AI 越稳定。

5.给出上下文

在编写提示词时,提供足够的上下文信息,就如同为人指引方向时先告诉他"你现在在哪里"和"你要去哪里"一样重要。上下文决定了AI理解的起点和边界,能让它生成更相关、更符合预期的内容。

这一点是有数据支持的,并且特别有效。

上下文可以包含:

  • 任务背景:为什么要做这件事?目的是什么?
  • 相关领域:涉及什么专业知识或特定场景?
  • 前因后果:当前需求是基于之前的什么对话或状态?
  • 用户身份/偏好:为谁而做?他们有什么特点?

缺乏上下文,AI容易"想当然"或给出过于泛泛的回答。 比如,直接说"给我一份学习计划",AI可能无从下手。但如果说:"我是一名零基础、在职的前端开发,每天只有晚上2小时学习,目标是3个月内能独立开发一个React后台管理系统。请帮我制定一份详细的学习路径和每周计划。" 这样,AI就能基于"前端"、"零基础"、"在职"、"时间有限"、"React后台"等上下文,产出一份高度定制化的方案。

我们举个跟上下文有关的例子:

复制代码
你是一个资深前端工程师。
背景:我正在写一个 React 动画教程,需要保持技术严谨但语言轻松。
目标:请帮我写"前端动画库选择"这一节内容。
已有上下文:上一节我写的是"CSS 动画基础",如下......
限制:不能出现不存在的库,不要使用生硬的翻译腔。

6.举例子

举例子也是比较好用的一个技巧,有时候你不知道如何描述,就可以用举例子的方式,相当于给数据训练 ai 。

这种方式专业术语叫 Few-shot Prompting,是整个 Prompt 工程中最强、最稳定的技巧之一。我们举个例子:

没有例子的Prompt:

请帮我将用户反馈分类。

AI可能会生成各种五花八门的分类方式和表述。

带有例子的Prompt:

请将以下用户反馈分类为 Bug反馈功能建议使用咨询,并提取关键词。

输出格式要求(请严格遵循):

  • 分类:[类别]
  • 关键词:[关键词1, 关键词2, ...]
  • 摘要:一句话总结

例如:

输入:"APP在iOS17上闪退,打开就崩溃,希望能尽快修复。"

输出:

  • 分类:Bug反馈
  • 关键词:[闪退, iOS17, 崩溃]
  • 摘要:用户反映APP在iOS17系统上发生启动崩溃。

现在请分类:"搜索功能不好用,经常搜不到已有的文件,建议优化一下算法。"

7.输出

如果输入是告诉 AI "你会收到什么",那么输出就是告诉 AI:

你希望它以什么格式回答你。

输出格式定义得越清晰,AI 越能稳定产出符合你预期的结果。

尤其是我们可能会将数据返回给我们的程序(例如 function call), 是一定需要结构化的数据的返回的,一般情况下都是 json 格式。

例如上面的哄女朋友 ai 应用。可以这样写。

请按照以下 JSON 结构回答:

json 复制代码
{
  "mood": "对象的心情",
  "reply": "对象说的话",
  "score": "+-数字",
  "forgive": "当前原谅值/100"
}

这种方式特别适合集成到应用里,模型会更稳定。

对于我们熟悉 typescript 语法的前端同学来说,甚至可以这样写:

css 复制代码
请严格按照以下TypeScript接口格式输出:

```typescript
interface Article {
  /** 文章ID */
  id: string;
  /** 文章标题,不超过30字 */
  title: string;
  /** 文章内容,不少于200字 */
  content: string;
  /** 标签列表,最多5个 */
  tags: Array<'前端' | 'AI' | '编程' | '工具'>;
  /** 元数据 */
  meta: {
    /** 创建时间,ISO格式 */
    createdAt: string;
    /** 预估阅读时间(分钟) */
    readTime: number;
    /** 是否原创 */
    isOriginal: boolean;
  };
}

当然也可以用自然语言来描述:

bash 复制代码
## 输出格式要求

请严格按照以下JSON格式输出:

```json
{
  "category": "string", // 分类:只能为 '技术'、'生活'、'娱乐'、'其他' 中的一个
  "title": "string",    // 标题:不超过20字
  "content": "string",  // 正文内容
  "keywords": ["string"], // 关键词数组,最多5个
  "metadata": {
    "author": "string",  // 作者
    "read_time": number, // 阅读时长(分钟)
    "difficulty": "string" // 难度:'简单'、'中等'、'困难'
  }
}

欢迎加入技术群交流

最后宣传一波我的组件库项目(有点突兀。。。。),群里不仅仅交流 ai 技术,还会有各种前端技术交流。

相关推荐
前端涂涂1 小时前
第3讲:BTC-数据结构
前端
小马爱打代码1 小时前
Spring AI:提示词工程 - Prompt 角色分类(系统角色与用户角色)
人工智能·spring·prompt
Ttang231 小时前
【AI学习1】了解开源大模型
人工智能·学习·开源
小马爱打代码1 小时前
Spring AI:多模态 AI 大模型
java·人工智能·spring
johnny2331 小时前
蚂蚁百灵研发助手CodeFuse介绍
人工智能
paopao_wu1 小时前
阿里通义实验室开源Z-Image:6B参数的AI图像生成
人工智能·ai·开源
白狐_7981 小时前
【项目实战】我用一个 HTML 文件写了一个“CET-6 单词斩”
前端·算法·html
夕水1 小时前
React Server Components 中的严重安全漏洞
前端
sg_knight1 小时前
SSE 技术实现前后端实时数据同步
java·前端·spring boot·spring·web·sse·数据同步