首页 > 其他分享 >全方位解析ChatGPT:如何培养 AI 智能对话技能?

全方位解析ChatGPT:如何培养 AI 智能对话技能?

时间:2024-04-03 10:44:32浏览次数:23  
标签:兼容性 AI App 提示 测试 GPT ChatGPT 解析

简介

ChatGPT 的主要优点之一是它能够理解和响应自然语言输入。在日常生活中,沟通本来就是很重要的一门课程,沟通的过程中表达的越清晰,给到的信息越多,那么沟通就越顺畅。

和 ChatGPT 沟通也是同样的道理,如果想要ChatGPT 给到的信息越准确,越清晰,和它的沟通就至关重要。

如何能和 ChatGPT 建立一个良好的沟通方式呢?其实就是靠提示词 Prompt。

价值

可能很多同学疑惑的点在于,提示词还需要另外去学吗?这个看起来貌似有手就行的操作,只要会打字就能够立刻上手吧?但是用的好是两回事。我们可以把ChatGPT想象成孙悟空的金箍棒,本身它是一个非常强大的法器,但是如果不会使用,它也不过是一根铁棍而已。提示词用的越好,ChatGPT就越强大。而且对于有编程基础的人来说,后续如果想要基于 LLM 或大语言模型快速构建、开发一些应用软件或者功能。不掌握 prompt 的基本原理和使用技巧,是无法达到很好的效果的。在最后的相关资料里面,也添加了由微软和OpenAI所出的,针对于开发者的提示词的教程。我们的课程同样在后面也会带来基于 prompt 的应用开发实践。

提示词的原则与技巧

而写一个好的提示词,有以下的技巧可以使用。

  1. 写清楚需求:GPT 模型无法读懂您的想法,因此在提供需求时尽可能具体是很重要的。这包括在您的查询中包含详细信息,要求模型采用角色,以及使用定界符清楚地指示输入的不同部分。
  2. 提供参考文本:如果可以,请提供与您希望模型生成的内容相似的参考文本。这将有助于模型了解您要查找的内容并生成更准确的结果。
  3. 将复杂的任务拆分为更简单的子任务:如果您试图让模型做一些复杂的事情,将任务分解为更小、更易于管理的子任务会很有帮助。这将使模型更容易理解您的要求并生成更准确的结果。
  4. 角色扮演:这个技巧的作用是告诉ChatGPT在对话中扮演一个特定的角色或人物。这对于创造更有吸引力和沉浸感的对话,或模拟真实世界的场景特别有用。
  5. 系统地测试变化: 对需求或参考文本进行更改时,重要的是系统地测试结果以了解它们如何影响模型的输出。这将帮助您确定对改进结果最有效的更改。

写清楚需求

编写有效的ChatGPT的难点之一是表达含糊不清。为了避免这个问题,有以下几个问题需要注意:

  1. 定义任何专业术语或技术术语。
  2. 避免使用模棱两可的语言。
  3. 使用清晰或简明的语言
  • 错误的案例:"你是我的哈基米吗?"

哈基米属于网络用语,而且诞生在2023年,ChatGPT是无法理解这个词的语意的。

  • 好的案例:"请帮我提供在深圳市宝安区所有的咖啡馆"

简明扼要说清楚自己的需求,无需多言,ChatGPT便很好理解了。

提供参考文本

  1. 对于文本比较短的引用,可以直接贴到提问里面即可:如果你有一段法律条款,并希望模型使用这段条款来解释某个概念,你可以这样提问:“根据以下的法律条款,什么是知识产权?”然后附上法律条款的内容。
  2. 网页链接的引用:也可以直接将网页链接里面的内容提供给 GPT 来作为引用文本。比如可以直接给它一个链接地址,让它总结文章内的内容。(注意这个功能需要使用web插件)

拆解复杂任务

作为一个厨师,在做饭的时候需要完成这些步骤:准备食材、清理食材、处理食材、开始烹饪、摆盘。

在这个过程中,其实厨师就是把一个复杂的任务,拆解成了多个简单的任务。其实在编程的过程中,也是同样的道理。也会把一个复杂需求,拆解为N个简单的子需求。

如果需要ChatGPT帮助我们完成一个复杂的任务,那么,我们需要预先帮它把任务拆分。这样做的优点是:

  1. 更好理解每一个操作步骤。
  2. 不被上下文限制影响。
  3. 方便调整。

例如我们提出了一个如下的复杂任务:

  • 提示词:作为一个测试工程师,我即将进行述职答辩,我想编写一个述职报告,述职报告需要包含我今年的成绩、我明年的目标、以及我在今年的工作过程中碰到的问题

ChatGPT 虽然给到了相应的回复,但是还有问题:

  1. 工作成绩没有清晰的数据也没有说服力,看着比较干瘪。报告内容没有图表。
  2. 内容太过简单空洞。
  3. 格式不够优雅。

如果我们把提问的方式做进一步优化,把这个复杂问题一步步进行拆解,并给ChatGPT一定的修改反馈,则产生的内容会更加符合我们的需求,比如我们可以把问题分解为:

  • 提示词:作为一个测试工程师,我即将进行述职答辩,我想编写一个述职报告。述职报告需要包含我今年的成绩,我今年带领测试团队将bug的逃逸率降低了10%的比例。并且我希望有一个通过echarts绘制的折线图。请将我的述职报告做进一步优化。

当然我们从这张图片中可以看出折线图无法展示,我们可以进一步给GPT提示信息,让它直接给到报表的源码。

看出折线图无法展示,我们可以进一步给GPT提示信息,让它直接给到报表的源码。

    • 提示词:echarts 折线图没有展示出来

然后GPT就会解释原因,并且给到解决方案。由此可见,将问题拆解,我们可以随时调整GPT的返回信息,让其更加贴近我们的需求。

借助外部工具

作为一个大语言生成模型,GPT4 并不擅长各种数学计算。比如下面的问题(来自官方 GPT 最佳指南中的示例问题):

  • 提示词:查找以下多项式的所有实值根:3x^5 - 5x^4 - 3x^3 - 7x - 10

如果直接提问的话,通常没法直接给出答案,如下图所示,虽然借助Python,给出了运算过程,但是其实ChatGPT无法像人类数学家一样,给出直接的推导过程:

所以可以将提示词改为:

  • 提示词:查找以下多项式的所有实值根:3x^5 - 5x^4 - 3x^3 - 7x - 10 ,使用Python 实现。

在后续碰到ChatGPT无法直接解决的问题时,不妨继续尝试这种曲线救国的方式。

角色扮演

角色扮演的过程就更为简单了,我们在编写提示词的时候,只需要给它加上一些角色的设定。

比如这个例子:

  • 提示词:请用鲁迅的口吻,写一篇文章,叫做我的妈妈,要求字数在800字以内。

除了扮演其他作家之外,ChatGPT甚至可以扮演领导,面试官,浏览器的console插件等各种各样我们可以想象到的角色:

    • 提示词:我希望你作为一个 javascript 控制台。我将输入命令,你回复javascript 控制台应显示的内容。我希望您只在一个唯一的代码块内回复终端输出,而不是其他任何内容。不要写解释。我的第一个命令是 console.log("Hello World");

系统的测试变化

正如人在回复信息的时候,也无法保证所有的回复都是正确的,ChatGPT 也无法保证每次给到的信息都是“靠谱的”或者是满足需求的。所以ChatGPT的每一次回复,在确认没有问题之后,再使用。如果有问题的话,可以进一步进行提问,ChatGPT会根据提示词不停的纠正回复。以达到一个满意的效果。

比如这个示例:

  • 提示词:请问 App 的产品在测试的过程中需要注意什么
在测试一个 App 产品的过程中,有一些重要的注意事项可以帮助确保产品质量和用户体验。以下是一些你应该注意的方面:
1. **功能性测试:** 确保所有的功能都能正常工作,包括用户界面、交互和后台操作。测试每个功能的不同用例和场景,以确保没有错误或异常情况。
2. **兼容性测试:** 测试 App 在不同设备、操作系统版本和屏幕尺寸上的兼容性。这有助于确保用户在各种环境中都能正常使用 App。
3. **性能测试:** 测试 App 的性能,包括加载速度、响应时间和资源占用等。确保 App 在各种条件下都能保持良好的性能。
...省略...
11. **更新和升级测试:** 在发布新版本或更新时,确保之前的功能仍然正常,没有引入新的问题。
12. **法律和隐私合规性:** 确保 App 遵守相关的法律法规和隐私政策,特别是涉及用户数据和隐私的方面。
总之,测试是确保你的 App 产品质量和用户满意度的关键步骤。细致的测试流程和综合的测试策略可以帮助你尽早发现和解决问题,提供优秀的用户体验。
  • 提示词:请针对兼容性测试再做一些补充。
当进行兼容性测试时,你需要关注不同设备、操作系统版本、浏览器以及屏幕尺寸之间的兼容性。以下是一些针对兼容性测试的补充建议:
1. **设备兼容性测试:** 确保你的 App 在各种不同品牌、型号和操作系统的移动设备上都能正常运行。考虑测试不同的手机和平板设备。
2. **操作系统版本兼容性测试:** 测试 App 在不同操作系统版本上的兼容性,包括最新版本和一些较旧的版本。一些用户可能还在使用较老的操作系统。
...省略...
11. **更新和升级兼容性测试:** 当你发布新版本或更新时,确保之前的功能仍然正常,没有引入新的兼容性问题。
12. **错误处理和提示信息:** 在不兼容的设备或环境下,确保 App 能够提供适当的错误提示,引导用户解决问题。
通过兼容性测试,你可以确保你的 App 在不同的环境中都能够提供一致的用户体验,减少用户因设备或环境不同而遇到的问题,从而提高用户满意度。

通过不停的测试以及纠正 ChatGPT 的回复,即可最终获得一个满意的回复。

总结

在学习 AIGC 的过程中,需要打破的往常的认知,不能再将AI作为简单的程序看待,反而要把它当作一个“人”来看待。就像和人沟通一样,需要注意措辞、语气、沟通方式,才能够真正做到学会与AI对话,发挥它强大的作用。后续学习的过程中,还会针对于 prompt 结合一些api的开发进行。

相关资料

标签:兼容性,AI,App,提示,测试,GPT,ChatGPT,解析
From: https://www.cnblogs.com/hogwarts/p/18112153

相关文章

  • 在线型业务/大数据场景/AI时代的技术栈
    在线型业务的技术栈 首先当然是硬件,在线业务型的场景下,计算资源基本是CPU为主;存储资源则各种类型都有,主要是IO吞吐、时延、安全性等各种考虑;网络资源公网、内网类型,时延、吞吐考虑等。在硬件之上(软件定义计算/存储/网络资源),基本都会使用类似K8S,或商用VMWare之类,来更方便的使......
  • 知识图谱技术的深度解析与应用前景展望
    在数字化时代,信息爆炸式增长,如何有效地组织、存储和查询知识成为了一个亟待解决的问题。知识图谱作为一种新型的知识表示和组织方式,正逐渐成为信息领域的研究热点。本文将对知识图谱的技术原理、构建方法以及应用前景进行深度解析,旨在为读者提供一个全面而深入的了解。一、知识图......
  • 详解Assertion desc failed at src/libswscale/swscale_internal.h:668
    目录详解Assertiondescfailedatsrc/libswscale/swscale_internal.h:668错误原因解决方案1.检查输入参数2.升级FFmpeg版本3.检查编译选项4.优化代码5.寻求帮助结论详解Assertiondescfailedatsrc/libswscale/swscale_internal.h:668在使用FFmpeg进行视......
  • 解析基础设施即代码:重新定义云管理
    由于现代架构、应用程序接口和相互关联的服务之间的互联性越来越强,云基础设施的复杂性也与日俱增。随着需要管理的云资源数量不断增加,企业开始采用基础设施即代码(IaC)来解决云应用的复杂性和相互依赖性问题。 IaC提供各种工具、流程和方法,以简化基础设施管理、降低风险并采用新......
  • WPF开发分页控件:实现可定制化分页功能及实现原理解析
    概要本文将详细介绍如何使用WPF(WindowsPresentationFoundation)开发一个分页控件,并深入解析其实现原理。我们将通过使用XAML和C#代码相结合的方式构建分页控件,并确保它具有高度的可定制性,以便在不同的应用场景中满足各种需求。一.简介分页控件是在许多应用程序中常见......
  • 盘点AI编程效率神器合集,代码助手工具大模型、Agent智能体
    关注wx公众号:aigc247进社群加wx号:aigc365程序员是最擅长革自己命的职业,让我们借助AI的力量一起摸鱼一起卷!据说好用的AI代码助手工具、大模型、Agent智能体微软的compoliot:AI神器之微软的编码助手Copilot-CSDN博客阿里的: 通义灵码_智能编码助手_AI编程-阿里云智谱AI的C......
  • ClickHouse深度解析 一般有用 看1 速
    一、什么是ClickHouse?ClickHouse由俄罗斯第一大搜索引擎Yandex于2016年6月发布,开发语言为C++,ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK,与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,查询性能非常好,使用之后会被它的性能折服,非常值......
  • GPT4暂停升级,如何升级 ChatGPT Plus: GPT4、GPT4.0 升级 详细指南(2024年4月)
    前言ChatGPT官方暂停了升级GPT-4的入口,但目前官网还可以直接升级。请注意,这种升级情况可能会变化(截至2024.4月,此途径仍然可用)。重磅消息:2024年4月2号,openai宣布ChatGPT3.5不用登录即可使用,大家可以方便尽情体验啦~重要提示:请您尽量不要用微软的邮箱升级Plus或绑定A......
  • 好书推荐 《AIGC重塑金融》
    作者:林建明来源:IT阅读排行榜本文摘编自《AIGC重塑金融:AI大模型驱动的金融变革与实践》,机械工业出版社出版这是最好的时代,也是最坏的时代。尽管大模型技术在金融领域具有巨大的应用潜力,但其应用也面临不容忽视的风险和挑战。本文将深入研究大模型在金融领域的数据隐私......
  • ThreadLocal源码解析
    方法三个主要方法:getsetremove讲三个方法前,现需要知道Thread,ThreadLocal,ThreadLocalMap三个之间的关系,首先ThreadLocalMap虽然是ThreadLocal中定义的静态内部类,但实际的ThreadLocalMap实例是作为Thread对象的一个字段存在的。这样设计的目的是允许每个线程存储自己......