由于ChatGPT拥有人类知识的总和以及强大的文本生成能力,因此它能生成广泛且深入的文本内容。当我们与ChatGPT互动时,为了获得理想的输出结果,需要结构化地描述问题。如果问题表述得不够准确,那么返回的结果可能会与预期大相径庭。这种情况与乘坐自动驾驶汽车类似。对乘客而言,重点不再是紧张地操控方向盘,而是专注于告诉自动驾驶系统何时、何地出发及目的地在哪里。此外,乘客还可以依据自动驾驶系统的建议,在权衡交通、油耗和时间等因素后,确定最佳行车路线。乘客甚至可以根据个人喜好设定车内的温度、湿度、香气、音乐等。
在理解了ChatGPT生成高级语言代码的原理和过程之后,我们可以得出几个如何与ChatGPT良性高效互动的有价值的建议。
❑清楚描述 :为了让ChatGPT能生成高质量的软件代码,我们需要对软件的功能和逻辑进行清晰、详细的描述。避免使用模糊或笼统的描述,因为这会导致ChatGPT无法准确理解你的真实意图,从而生成低质量的代码框架。确保描述中没有歧义,因为ChatGPT可能无法识别你的具体意图,从而随机选择一个解释。
❑聚焦会话 :保持与ChatGPT的会话(session)连贯,确保一个主题只聚焦讨论一个问题,避免讨论过程中跑题。建议使用Notion或Word文件来记录与ChatGPT互动的每条信息,包括提问和回答。
❑分层迭代 :在描述问题时,可以采取自上而下或从宏观到微观的逐步逻辑分层。先解决一个层次的问题,再逐步深入。对于涉及广泛的问题,首先建立一个宏观框架来确定问题边界,然后再深入讨论细节。
所以,用结构化提问法向ChatGPT描述问题可以使我们充分发挥ChatGPT的作用,从而获得更精准、更高效、更适合和更有价值的解决方案。要结构化地描述问题,必须遵循以下七个步骤。
(1)确定问题的核心(核心) :首先明确问题的关键点,包括你想要解决的具体问题和期望达到的目标。
(2)分解问题(详细) :将问题拆分成更小、更易于管理的部分。这有助于更清楚地了解问题的各个方面,以及它们之间的关系。
(3)提供背景信息(背景) :给出与问题相关的背景信息和上下文,这有助于ChatGPT更好地理解问题的实际环境和需求。
(4)设定优先级(优先级) :确定问题中各部分的优先级,以便ChatGPT能够根据你的需求和关注点提供针对性的回答。
(5)提出具体问题(具体) :在描述问题的过程中,尽量使用明确、具体的语言。避免使用模糊或多义词汇,以减少歧义和误解的可能性。
(6)陈述假设或限制条件(限制) :如果问题涉及特定的假设或限制条件,请明确地表达出来。这将有助于ChatGPT提供更贴近实际需求的解决方案。
(7)指定期望的输出格式(输出) :明确表述你希望得到的答案形式,例如列表、段落、图表等。这可以帮助ChatGPT更好地满足你的期望。
与ChatGPT互动将是未来软件开发工程师主要的工作方式,所以必须要牢记上面提出的结构化提问法。其中,核心、详细、背景、优先级、具体、限制和输出是结构化提问法的七大关键要素。以下是一个帮助你记忆结构化提问七大关键要素的小故事。这个故事中的每个环节都与上述七个关键词相对应。
在一个遥远的星球上,有一块名为“核心”的神秘矿石,它拥有无尽的能量。为了找到这块矿石,七个勇敢的探险家开始了他们的冒险。他们需要详细地研究地图和资料,以便找到核心矿石的位置。在寻找线索时,他们发现了一个古老的背景故事,这个故事揭示了核心矿石的起源和重要性。然后,他们将任务按照优先级进行排序,确定哪些任务最关键,先完成哪些任务可以为寻找核心矿石提供更多帮助。在旅途中,他们面临许多具体的挑战,如攀爬险峻的悬崖、穿越沙漠和翻越冰川。为了战胜这些挑战,他们必须充分了解每个障碍的特点和解决方案。然而,他们的旅程并非一帆风顺,他们面临着许多限制,如时间紧迫、资源有限和外界环境恶劣。这些限制要求他们在寻找核心矿石时更加谨慎和充满智慧。最后,当他们找到“核心”矿石时,他们需要输出其能量,以拯救他们的星球,使星球焕发生机。
ChatGPT也给出了一个易于记忆的顺口溜:
核心详细背景给,优先级与限制齐。
具体问题描述好,输出格式讲明晰。
七大步骤走得当,ChatGPT回答亮。
下面举例说明。假设想要询问ChatGPT,如何创建一个简单的Python程序来计算两个数字的和。遵循上述结构化提问法,我们可以按照以下方式向ChatGPT提出问题,如表1-4所示。
表1-4 使用结构化提问法的案例
通过这种结构化提问法,我们可以更加清晰地表达自己的需求,从而使ChatGPT能够提供一个准确且具有针对性的解决方案。在架构设计阶段,架构师不再根据已确定的用户需求来绘制各种设计图,而是准备好用户需求、技术选项和架构要求,让ChatGPT提出设计方案,然后从中进行选择。UI/UX设计师只需要将项目背景、用户需求、用户画像和设计意图告诉ChatGPT,让ChatGPT提出设计方案,然后由设计师自己在反复的互动迭代过程中进行方案的选择。在应用编码阶段,程序员首先向ChatGPT描述高层设计方案和具体代码的实现逻辑,然后让ChatGPT生成代码示例。在测试阶段,测试工程师首先提出应用的设计要求、实现的代码和测试要求,然后让ChatGPT制定具体的测试大纲,甚至直接完成测试工作。