AIGC时代之 - 怎样更好的利用AI助手 - 指令工程

爆火的AIGC

2022年11月30日,OpenAI发布ChatGPT 3

2022年12月4 日,ChatGPT 3 已拥有超过一百万用户

2023年各种大语言模型开始火爆全球

GPT们,已经成为了我工作和学习的非常重要的工具。

ChatGPT也没那么神奇?

不知道大家有没有体验过OpenAI的ChatGPT,大家又是如何和ChatGPT对话的?有时候是不是也感觉他好像没那么神奇,有时候会答非所问,问题出在哪里?

人与人是怎么沟通的

试想一下,当我们去咖啡店里买咖啡,假设我们是在柜台和服务员面对面点咖啡。

我:你好,我要一杯咖啡

店员:您要什么口味的?

我:拿铁吧

店员:您是要中杯,大杯,还是超大杯?

我:我要超大杯。

店员:您是要无糖,半糖,还是全糖?

我:半糖。

店员:您是要热的,去冰的,还是少冰的?

我:热的。

店员:好的,您稍等,马上为您制作。

我们在日常生活中,正常的人与人的沟通尚且如此,需要一步一步,循序渐进,最终才能达成一致,得到想要的结果,更何况我们与一个AI助手聊天?

也就是相处多年的朋友在简单说了几句话后,说出一句:你懂的,然后大家都明白是什么了。如果换作是一位不那么熟悉的朋友,丢出一句:你懂的,如果你们聊天的内容不是大家都熟悉的,如果大家不在一个语境之中,我相信,你肯定不懂。更何况一个AI助手。

所以当我们与AI助手聊天时,不要期待一句话就想得到你想要的结果。有时候AI助手返回的结果不是我们想要的,通常都是因为我们表述得不够清楚。AI助手无法根据我们的提示,猜测我们真正想要表达的是什么。

怎么样和AI助手聊天

  • 不要期待一句话就想得到你想要的结果
  • 别以为你已经讲清楚了,AI可能还没完全理解
  • 说得越多越好,提供越多的信息,可以帮助AI理解你的需求

什么是指令工程

所谓指令,就是我们给ChatGPT的输入,专业术语叫:Prompt,指令工程就是Prompt Engineering. ChatGPT会根据我们的输入,生成相应的输出。

Prompt的质量直接影响ChatGPT输出的质量。而指令工程,就是对Prompt进行调优,使ChatGPT返回符合我们预期结果的过程。

Prompt 的基本构成

提示:告诉GPT是一个什么角色,我们希望他做些什么

上下文:与任务有关的具体的描述

例子:告诉GPT一些加深他理解问题的例子

输入:提供一些与任务相关的输入信息

输出:告诉GPT输出的格式是怎样的

下面是一个比较详细的例子,大家复制下面的内容,将注释去掉,粘贴至ChatGPT的对话框,看看会输出怎样的结果。

shell 复制代码
#告诉GPT是什么角色,希望他帮助我们干什么?
你好,你是一位资深EXCEL用户,你非常善于使用编写VBA脚本来完成使用EXCEL来处理各种数据。

#提供一些关于任务的重要信息
我现在有一个sheet, sheet名称是:system_info,

我希望你写一段VBA程序,要求遍历整张表,计算出每一列的长度,并将结果写入名称为 column_length的sheet中

#说明怎么求列的列度,以及从哪里开始
请注意,
1. 列名为第1行,数据从第2行开始
2. 列的长度是该列中所有记录中最长的那条记录的长度值

#指定数据输出的格式
结果的输出格式为:
1. 第一行为列名
2. 第二行为每一列的长度
3. 第三行为每列最长的那一行的行号

以下是GPT的输出

js 复制代码
Sub CalculateColumnLength()
    Dim wsData As Worksheet
    Dim wsResult As Worksheet
    Dim lastRow As Long
    Dim lastCol As Long
    Dim i As Long, j As Long
    Dim maxLength() As Long
    Dim maxRow() As Long
    
    ' 获取数据所在的sheet
    Set wsData = ThisWorkbook.Sheets("system_info")
    
    ' 创建结果存储的sheet
    Set wsResult = ThisWorkbook.Sheets.Add(After:=Sheets(Sheets.Count))
    wsResult.Name = "column_length"
    
    ' 获取数据范围
    lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
    lastCol = wsData.Cells(1, wsData.Columns.Count).End(xlToLeft).Column
    
    ' 初始化数组
    ReDim maxLength(1 To lastCol)
    ReDim maxRow(1 To lastCol)
    
    ' 遍历每一列,计算长度和最长行号
    For j = 1 To lastCol
        maxLength(j) = 0
        maxRow(j) = 0
        For i = 2 To lastRow
            If Len(wsData.Cells(i, j).Value) > maxLength(j) Then
                maxLength(j) = Len(wsData.Cells(i, j).Value)
                maxRow(j) = i
            End If
        Next i
    Next j
    
    ' 将结果写入结果sheet
    For j = 1 To lastCol
        wsResult.Cells(1, j).Value = wsData.Cells(1, j).Value ' 列名
        wsResult.Cells(2, j).Value = maxLength(j) ' 列长度
        wsResult.Cells(3, j).Value = maxRow(j) ' 最长行号
    Next j
    
    ' 调整列宽
    wsResult.Columns.AutoFit
    
    MsgBox "计算完成,结果已写入 column_length sheet。"
End Sub

通过上面的例子,我们就已经基本了解了如何去编写一个好用的提示词,让ChatGPT来帮助实现想要的结果。

实际上,编辑提示词,就好你我们编辑代码一样,也是需要经过一轮一轮的迭代,不断的调整,不断的增加新的逻辑,最终才能让ChatGPT输出满足我们需求的结果。

相关推荐
Chengbei11几秒前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
QN1幻化引擎12 分钟前
DalinX Phi 性能突破:跨层秩保持对齐与意识涌现度量的实证研究
人工智能·ai·架构·agi·asi
NeilCarmack13 分钟前
Deepseek-harness增加桌面版端序列:第 1 讲 · 命令解析:`pnpm dsh desktop` 的第一步
人工智能·agent·ai agent
龙兵AI增长破局圈.赵老师讲成交20 分钟前
只有把过程管好,结果才会出来。
大数据·人工智能·ai·创业创新
最强小杰26 分钟前
gpt-5.6-sol 频繁报 503 怎么办?区分容量熔断和限速 429 的排查方法 + 可复用 retry wrapper
java·人工智能·gpt·ai
天天代码码天天39 分钟前
我做了一个只有一个 EXE 的本地 Markdown 编辑器:lw.MD(简墨)
人工智能
AI的探索之旅43 分钟前
97 个 OpenCV 实例(七):SIMD 向量化,给像素处理装上涡轮增压
人工智能·opencv·计算机视觉
不可求~44 分钟前
用 AI 读论文别只看摘要:建立可追溯的证据链
人工智能·深度学习·机器学习
狙击主力投资工具1 小时前
通达信软件手机app和电脑使用手册教程.内含160多个.mpv版使用手册
人工智能
飞翔的火箭弹1 小时前
伊顿电力模块技术参数深度解析:AI算力时代高集成供配电方案选型参考
人工智能