本文正在参加「金石方案」

flag:每月至少产出三篇高质量文章~

本文布景,源于前两天看到李老板说:

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

出现了一个新的词:提示词工程(Prompt Engineering),估计大多数同学或许还不知道这是啥~

不过没关系,立刻你就会知道它是个啥了~

本文核心内容源自于国外大神 Fatih Kadir Akn 的高 star(截止目前 54.2k) 项目 github – awesome-chatgpt-prompts。

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

本文则是对其电子书的精简和整理,由于原文比较冗长,夹杂了许多作者的心路历程,也不太符合中国人的言语习气,硬着头皮读也不是不能够,但或许会有点别扭。

为了让大家能高效获取有价值的信息,我这儿就经过加工,浓缩成了一篇只要干货的短文(文中的“我”即为作者),以协助大家编写明晰有用的 chatGPT Prompt,希望对大家有用~

PS:文章前面部分首要是一步步让你了解明晰有用的 prompt 的重要性,偏理论,请耐心看完,后面三节有亲测 demo一个 Prompt 神器一些最佳实践,相信一定会对你怎么用好 ChatGPT 有所启示~

1、关于

欢迎来到 “ChatGPT Prompting 的艺术:编写明晰有用的提示语指南”!在这本指南中,你将了解到关于制造明晰有用的 ChatGPT Prompts 的一切常识,这些提示语能够协助你更好地运用 chatGPT。

作者的心路历程:当 chatGPT 推出的时分,我觉得这玩意好 NB,立刻沉迷起来,然后看到了好多厉害的人用各种别致的办法运用 chatGPT ,我激动了,我觉得我也能够做个很 NB 的玩意来回馈社区,于是就有了:”Awesome ChatGPT Prompts.” 这个项目,很快啊,它真的就成为你们首选的资源了。对,就这么不讲武德!

在为 ChatGPT 制造提示语的进程中,我偶然发现了一些技巧,这些技巧有助于进步我的提示语的有用性,比方:

  1. 运用详细的、相关性高的描述性言语,以保证 chatGPT 能了解我的提示并能够精确回应我的需求;
  2. 有明晰的意图和要点,而不是运用敞开式或者过于广泛的提示语;

接下来,我会先介绍从 ChatGPT 的基础常识和作业原理下手,然后展示有说服力的提示语和处理常见问题的高档技能。咱们开端吧!

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

2、chatGPT 简介

首要,让咱们从答复这个问题开端:什么是 ChatGPT

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

  • ChatGPT(Generative Pre-trained Transformer)OpenAI 在2022年11月推出的一个谈天机器人。它建立在OpenAI的GPT-3.5系列大型言语模型之上,并经过监督和强化学习技能进行微调。

  • ChatGPT 于2022年11月30日作为原型推出,并因其在许多常识范畴的详细回应和明晰的答案而敏捷取得重视。它的精确性参差不齐被以为是一个重大缺点。—— 维基百科。

  • ChatGPT 是谈天机器人,答运用户与一个依据计算机的代理进行对话。它经过运用机器学习算法来剖析文本输入并产生旨在仿照人类对话的回应。ChatGPT 可用于广泛的用处,包括答复问题、供给信息和进行休闲说话。


ChatGPT 的首要长处之一是它能够了解和呼应天然言语输入。这意味着用户能够运用与人攀谈时相同的言语和语法与ChatGPT交流。 ChatGPT 还能够了解和呼应上下文,使其能够对用户的输入产生更恰当和相关的回应。

除了天然言语处理才能外, ChatGPT 还具有其他一些特点和才能,使其成为推进对话的强壮东西。这些包括:

  • 定制化ChatGPT 能够依据用户的需要和偏好进行定制。这能够包括定制 ChatGPT 回应的口气和风格,以及它能够评论的信息和论题的类型。

  • 个性化ChatGPT 能够运用机器学习算法,依据用户曩昔的互动和偏好,对其反响进行个性化处理。这能够使对话感觉更天然,更符合用户的需求和爱好。

  • 多言语支撑ChatGPT 能够了解和呼应多种言语的输入,使其成为国际用户或那些想用多种言语交流的用户的有用东西。

  • 可扩展性ChatGPT 能够处理大量的流量,可用于同时推进与多个用户的对话。这使它很合适于客户服务或在线社区等运用。

2.1 ChatGPT 是怎么作业的?

那么, ChatGPT 是怎么作业的?这个进程能够分解为以下几个过程:

  1. 用户向 ChatGPT 界面输入文字。这或许是一个问题,一个信息恳求,或一个随意的声明。

  2. ChatGPT 体系剖析输入的内容,并运用机器学习算法来生成一个回应。

  3. 回应会以文本形式回来给用户。

  4. 然后,用户能够输入更多的文本, ChatGPT 体系将再次剖析和回应。这个进程一向持续到对话结束。

决议 ChatGPT 对话成功与否的要害因素之一是用于主张和引导对话的提示的质量。界说明晰的提示能够协助保证对话坚持在正轨上,并包括用户感爱好的论题。反之,界说不当的提示语或许会导致对话脱节或缺乏要点,然后导致参加度和信息量较低的体会。

2.2 chatGPT 与其他谈天机器人有什么不同?

ChatGPT 只是市场上几种类型的谈天机器人之一。那么,是什么让 ChatGPT 有别于其他谈天机器人,又是什么让它与众不同?

  • 一个要害的区别是 ChatGPT 的一个巨大的言语模型。这使得 ChatGPT 能够以相似于人类的办法了解和回应输入。其他谈天机器人或许依赖于预编程的反响或简略的要害词匹配,这或许导致对用户输入的反响不太天然或相关。

  • 还有一个区别是 ChatGPT 的学习才能。经过运用机器学习算法, ChatGPT 能够剖析用户输入,并依据曩昔的对话改善其反响。这能够导致对用户输入的更个性化和相关的反响。

  • 另一个要害区别是 ChatGPT 有才能处理更杂乱或敞开式的对话。由于 ChatGPT 能够了解并回应上下文,它能够更好地处理包括广泛主题或需要更深化回应的对话。

总的来说, ChatGPT 对天然言语处理和机器学习算法的运用使其有别于其他谈天机器人,并使其成为推进参加性和信息性对话的强壮东西。

2.3 ChatGPT 能够用来做什么?

鉴于其了解和呼应天然言语输入的才能, ChatGPT 有广泛的潜在运用。 ChatGPT 的一些常见用处包括:

  • 客户服务ChatGPT 可用于答复客户问题,供给信息,并实时处理问题。这对希望为客户供给24/7支撑的企业特别有用。

  • 教育ChatGPT 可用于在各种教育布景下供给信息或答复问题。例如,它能够被用作辅导员或供给某个特定主题的信息。

  • 信息获取ChatGPT 能够用来供给各种主题的信息,如气候、新闻或当地企业。

  • 个人助理ChatGPT 能够被用作个人助理,协助完成安排、组织和办理信息等使命。

  • 交际互动ChatGPT 能够用来进行休闲说话或供给文娱,使其成为交际媒体或在线社区的有用东西。

3、提示语(Prompt)

3.1 Prompts 在 ChatGPT 对话中的作用

正如咱们前面说到的, ChatGPT 对话中运用的提示语(Prompt)的质量能够大大影响对话的成功。界说明晰的提示能够协助保证对话坚持在正轨上,并包括用户感爱好的论题,然后带来更有吸引力和信息量的体会。

那么,什么是好的 ChatGPT Prompts,以及怎么制造有用的提示,以推进参加性和信息性的对话?有几个要害准则需要记住:

  • 明晰的意图性:一个明晰简练的提示将有助于保证 ChatGPT 了解手头的主题或使命,并能够产生恰当的反响。防止运用过于杂乱或不置可否的言语,在你的提示中要尽或许地详细。

  • 问题的要点:一个明晰的提示应该有明晰的意图和要点,有助于引导对话并使其坚持在正轨上。防止运用过于广泛或敞开式的提示,这或许会导致对话不连贯或没有要点。

  • 相关性:保证你的提示与用户和对话相关。防止引进不相关的论题或切入点,防止涣散说话的首要焦点。

经过遵从这些准则,你能够制造有用的 ChatGPT Prompts,以推进参加性和信息性的对话。在接下来的章节中,咱们将更详细地研讨这些准则,并评论制造明晰简练的提示语的详细技巧。

3.2 编写明晰简练的提示语的优点

编写明晰简练的提示语有许多优点,能够协助保证你的 ChatGPT 对话具有吸引力和信息性。其间一些要害的优点包括:

  • 加强了解:经过运用明晰和详细的言语,你能够协助保证 ChatGPT 了解手头的主题或使命,并能够产生恰当的回应。这能够产生更精确和相关的回应,然后使对话更有吸引力和信息量。

  • 强化要点:经过为对话界说一个明晰的意图和要点,你能够协助辅导对话并使其坚持在正轨上。这能够协助保证对话包括用户感爱好的论题,并防止切入或涣散留意力。

  • 更高的效率:运用明晰和简练的提示也能够协助使对话更有用率。经过专注于特定的主题和防止不必要的切断,你能够保证对话坚持在正轨上,并以更及时的办法包括一切的要害点。

制造明晰简练的提示语能够协助保证你的 ChatGPT 对话是有吸引力的,信息量大,而且高效。在下面的章节中,咱们将评论制造有用提示的详细技巧,以运用这些优点。

3.3 有用和无效的ChatGPT提示的比如

为了更好地了解制造有用的ChatGPT提示的准则,让咱们看看一些有用和无效提示的比如。

3.3.1 有用的ChatGPT提示

  • “你能对’练习的优点’这篇文章的首要内容进行总结吗?” —— 这个提示很有针对性和相关性,使ChatGPT很简略供给所要求的信息。

  • “在巴黎有哪些供给素食的最好的餐厅?” —— 这个提示很详细,也很有针对性,使 ChatGPT 能够供给一个有针对性的、有用的答复。

3.3.2 无效的ChatGPT提示

  • “你能告知我关于国际的什么?” —— 这个提示过于广泛和敞开,使 ChatGPT 难以产生有针对性或有用的答复。

  • “你能帮我做作业吗?” —— 虽然这个提示很清楚和详细,但它太敞开了,让 ChatGPT 产生一个有用的答复。一个更有用的提示会指明详细的主题或手头的使命。

  • “你好吗?” —— 虽然这是一个常见的对话开端,但它不是一个明晰的提示,没有为对话供给一个明晰的意图或要点。

经过比较这些比如,你能够了解到制造有用的 ChatGPT Prompts 的准则。在接下来的章节中,咱们将更详细地研讨这些准则,并评论制造明晰、简练的提示语的详细技巧。

3.4 明晰交流的准则

3.4.1 怎么编写明晰简练的提示语

现在咱们现已评论了编写明晰、简明的提示语的重要性以及明晰交流的要素,让咱们深化评论一些编写有用的 ChatGPT Prompts 的详细技巧。

  1. 确认说话的意图和要点。在你开端写提示语之前,重要的是要清楚地知道你想经过对话到达什么意图。你的方针是获取信息、答复问题,仍是进行休闲说话?确认说话的意图和要点将有助于你拟定一个详细和相关的提示,然后使说话更有吸引力和信息量。

  2. 运用详细和相关的言语。为了保证 ChatGPT 了解你的提示,并能够产生恰当的反响,运用详细和相关的言语是很重要的。防止运用专业术语或不置可否的言语,由于这或许导致混杂或误解。相反,要尽或许地明晰和简明,运用与当前主题相关的言语。

  3. 防止敞开式或过于广泛的提示。虽然为了得到更全面的答复而提出敞开式或过于广泛的问题是很诱人的,但这些类型的提示往往会导致不连贯或没有要点的对话。相反,在你的提示中要尽或许地详细,为对话界说一个明晰的意图和要点。

  4. 让对话坚持在正轨上。当你与 ChatGPT 对话时,重要的是要坚持在手头的论题上,防止引进切入点或不相关的论题。经过坚持对话的正轨,您能够协助保证对话包括用户感爱好的论题,并供给有用的相关信息。

经过遵从这些技巧,你能够制造明晰简练的 ChatGPT 提示。

3.4.2 防止行话和歧义的技巧

编写有用的ChatGPT提示的要害应战之一是防止行话和含糊不清。行话或专业言语会让不熟悉该主题的用户感到困惑或不清楚,而不置可不然会导致误解或过错的解说。为了协助保证你的提示明晰易懂,这儿有几个提示要记住:

  • 界说任何专业术语或技能术语。假如您需要在提示中运用专业术语或技能术语,请保证为这些术语供给明晰的界说或解说。这将有助于保证 ChatGPT 和用户处于同一起跑线上,并能防止误解。

  • 防止运用不置可否的言语。有多种解说的言语或许会引起混杂,导致误解。为了防止不置可否,在你的提示中要尽或许的详细,防止运用有多种含义的词或短语。

  • 运用明晰和简明的言语。为了协助保证你的提示简略了解,要尽或许的明晰和简练。防止运用不必要的词或短语,防止涣散对提示要点的留意力。

1. bad case

“您好!你能给我一些关于网络上最新产生的工作的信息吗?我想了解一下年代潮流”。

这个提示运用了专业术语(俗称“行话”,比方 “intel”、”interwebz”、”zeitgeist”),但没有对其进行界说,这或许使不熟悉这些术语的用户感到困惑或不清楚。此外,”最新产生的工作 “这一短语的运用是模糊的,由于它能够指任何数量的东西,而且能够有多种解说。因此,这个提示关于ChatGPT来说,很难了解并产生有用的回应。

2. good case

“在巴黎有哪些供给素食的最好的餐厅?我正在方案去巴黎游览,我想找一些能满意我饮食需求的好当地。”

这个提示很 清楚和详细,使 ChatGPT 很简略了解并产生恰当的反响。该提示指定了用户感爱好的详细地址(巴黎)和食物类型(素食),这有助于保证回复的相关性和针对性。此外,该提示防止了运用专业术语或不置可否的言语,运用户简略了解。因此,这个提示或许会导致一个更有吸引力和信息量的对话。

4、构建有用的提示语

4.1 构建有用的ChatGPT提示的过程

现在咱们现已评论了制造明晰简练的 ChatGPT 提示的准则,以及防止术语和含糊不清的重要性,让咱们深化了解制造有用提示的详细进程。以下是你应该遵从的过程:

  • 确认说话的意图和要点。在写提示之前,有必要清楚地了解你希望经过对话到达什么意图。你是想供给信息,答复问题,仍是进行随意的攀谈?经过确认说话的意图和要点,您能够制造一个详细和相关的提示,然后使您与ChatGPT进行更有吸引力和信息量的说话。

  • 运用详细和相关的言语。为了保证ChatGPT了解您的提示并能供给恰当的回应,运用详细和相关的言语至关重要。防止运用专业术语或不置可否的言语,防止造成混杂或误解。相反,要努力做到尽或许明晰和简明,运用与当前主题相关的言语。

  • 防止运用敞开式或过于广泛的提示。虽然为了取得更全面的答复而提出敞开式或过于广泛的问题或许是很诱人的,但这些类型的提示往往会导致与 ChatGPT 的对话不连贯或没有要点。相反,在您的提示中要尽或许地详细,为对话确认一个明晰的意图和要点。

  • 审查和修正您的提示。在向 ChatGPT 发送您的提示之前,花点时间审查和修正它,以保证它是明晰和简略了解的。考虑言语是否详细和相关,以及提示是否有要点并防止含糊不清。

一个比如:

  1. 确认对话的意图和要点:这次说话的意图是为罗马的旅游景点供给主张,这些景点合适有小孩的家庭。

  2. 选择详细和相关的言语:”你能引荐罗马一些合适有小孩的家庭的旅游景点吗?”这个提示明晰而详细,使ChatGPT简略了解并产生恰当的反响。

  3. 防止敞开式或过于广泛的提示:这个提示要点杰出,内容详细,防止了敞开式或过于广泛的言语,由于这或许导致对话不连贯或没有要点。

  4. 审查和修正你的提示:经审查,该提示明晰易懂,并会集在罗马合适有小孩的家庭的旅游景点这一特定主题上。没有必要进行修正。

依照这些过程,你能够制造一个有用的 ChatGPT Prompt,推进关于罗马合适有小孩的家庭的旅游景点的信息和参加性对话。

4.2 将对话引向有意义的方向的最佳实践

为了用 ChatGPT 推进引人入胜和内容丰富的对话,重要的是要清楚地知道您希望对话的方向,并引导其向有意义的方向发展。这儿有一些这样做的最佳做法:

  1. 以明晰简明的提示开端。正如咱们前面所评论的,重要的是拟定明晰和简练的提示,以确认说话的意图和要点。经过以一个要点和详细的提示开端,你能够协助保证对话坚持在正轨上,并包括用户感爱好的论题。

  2. 鼓舞ChatGPT扩展其反响。虽然 ChatGPT 能够供给有用的相关信息,但有时鼓舞它扩展其答复,以供给更深化的信息或深化到相关的论题,也是有协助的。你能够经过提出后续问题或供给额外的布景或比如来协助引导对话。

  3. 留意对话中运用的口气和言语。为了坚持一个有意义的和有吸引力的对话,重要的是要留意对话中运用的口气和言语。防止运用过于随意或轻视的言语,由于这或许导致交流的中断。相反,要以尊重和专业的口气为方针,并运用明晰和简略了解的言语。

  4. 监测对话的方向,并依据需要进行调整。跟着对话的进展,重要的是监测它的方向,并依据需要进行调整,以坚持它在轨道上。假如说话开端违背首要论题,你能够运用提示或后续问题来引导它回到一个更相关的方向。

经过遵从这些最佳实践,你能够协助引导 ChatGPT 对话向有意义的方向发展,并推进更有吸引力和内容丰富的对话。

4.3 “act as…” Hack

制造有用的 ChatGPT Prompt 的最有用的技能之一是:“作为…”(act as…)。这个技巧的作用是告知ChatGPT在对话中扮演一个特定的人物或人物。这关于发明更有吸引力和沉溺感的对话,或模拟真实国际的场景特别有用。

例如,你能够用这个技巧来告知ChatGPT:”作为一个游览社”(act as a travel agent),并依据用户的喜爱供给休假意图地的主张。或者你能够告知ChatGPT “作为一个侦探”,处理一个虚拟的犯罪。或许性是无穷的。

运用这个技巧,只需包括 “作为…” 这个前缀,然后描述ChatGPT在对话中应该扮演的人物或人物。例如:“我想让你扮演一个游览社的人物。你能依据我的喜爱引荐一些休假意图地吗?”

下面来看一个更详细的比如:

I want you to act as a javascript console. I will type commands and you will reply with what the javascript console should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}. my first command is console.log(“Hello World”);

我希望你作为一个 javascript 控制台。我将输入指令,你回复 javascript 控制台应显现的内容。我希望您只在一个仅有的代码块内回复终端输出,而不是其他任何内容。不要写解说。除非我指示您这样做,不然不要输入指令。当我需要用英语告知你一些工作时,我会把文字放在大括号内{like this}。我的第一个指令是 console.log(“Hello World”);

来看成果:

英文输入:

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

中文输入:

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

让咱们来逐步剖析这个比如:

  • “我希望你作为一个 javascript 控制台”。这句话运用了 “act as ” hack 来告知 ChatGPT 在对话中承担一个javascript控制台的人物。

  • “我将输入指令,你回复 javascript 控制台应显现的内容”。这句话解说了用户在对话中的人物,以及ChatGPT在回运用户输入的指令时的人物。

  • “我希望您只在一个仅有的代码块内回复终端输出,而不是其他任何内容”。这句话为ChatGPT供给了进一步的指示,规则它只能用一个共同的代码块内的终端输出进行回复,而不能在其回复中包括任何其他内容或解说。

  • “不要写解说”。这句话是对前一句指令的重复,着重 ChatGPT 不应该在其回复中写任何解说。

  • “除非我指示您这样做,不然不要输入指令”。这句话为 ChatGPT 供给了进一步的指示,明晰指出除非有用户的指示,不然它不应该输入任何指令。

  • “当我需要用英语告知你一些工作时,我会把文字放在大括号内{ like this }”。这句话为用户供给了怎么用英语与ChatGPT交流的指示,即把文本放在大括号里。

  • “我的第一个指令是 console.log(“Hello World”);”。这句话供给了提示的第一个指令,因此ChatGPT将首要运行。

4.4 写ChatGPT提示时应防止的常见过错

写有用的 ChatGPT Prompt 需要细心考虑并留意细节。然而,很简略犯过错,这或许会妨碍你的提示的有用性和对话的整体质量。以下是制造ChatGPT提示时要防止的几个常见过错:

  1. 在提示中参加过多的信息 —— 为 ChatGPT 供给满足的信息以了解对话的布景和意图是很重要的,但是过多的信息会让人不知所措和困惑。一定要坚持你的提示简练和会集,防止包括不必要的细节或指示。

  2. 运用行话或不置可否的言语 —— 运用明晰易懂的言语很重要,尤其是在与 ChatGPT 这样的机器学习模型交流时。防止运用行话或或许对 ChatGPT 不熟悉或有歧义的言语。

  3. 过于模糊或敞开式 —— 虽然敞开式问题关于鼓舞更详细的答复很有协助,但过于模糊或敞开式的提示会让人困惑,而且让 ChatGPT 难以了解。要保证供给满足的布景和方向,以有意义的办法引导对话。

  4. 忽略了必要的指示或束缚 —— 为 ChatGPT 供给任何必要的指示或束缚是很重要的,这样才能使对话有用。例如,假如你想让ChatGPT扮演一个特定电影或书籍中的人物,你应该在提示中说明。

在制造 ChatGPT 提示时,重要的是要防止包括过多的信息或运用过于敞开的问题,由于这些会让 ChatGPT 感到困惑和难以了解。以下是防止这些圈套的一些策略:

  • 运用详细的、有针对性的问题,而不是敞开式的问题 —— 不要问一个广泛的、敞开式的问题,如 “你对这个论题有什么观点?”,试着问一个更详细的问题,会集在论题的某一方面。例如,”这种办法的首要优点是什么?”或 “你以为这种办法有什么应战?”

  • 简明扼要,切中要害 —— 防止在你的提示中包括不必要的细节或指示。坚持基本信息,防止漫无边际或违背首要论题。

  • 运用明晰、简明的言语 —— 细心选择你的词语,防止运用专业术语或不置可否的言语。一定要运用简略让 ChatGPT 了解的言语。

遵从这些提示,你能够协助保证您的 ChatGPT 提示明晰、简明、有用,并使对话顺畅、天然。

5、来试试?

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

古语云:“纸上得来终觉浅,绝知此事要躬行”,上面花了几千字说得神乎其技,真的有用吗?于是乎,Let me have a try! 我用上面的技巧随意编写了一个简略的 chatGPT Prompt

我希望你充任一个资深的前端开发者,教我用TypeScript写一个依据axios的接口恳求办法,这个办法有必要要包括恳求和相应拦截。

I want you to be an experienced front-end developer and teach me how to write an Axios-based interface request method in TypeScript, which must include request intercept and response intercept.

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

这是完整的答案,我将其翻译成了中文,以便阅读:

当然,这儿有一个运用恳求和呼应拦截器在 TypeScript 中编写依据 Axios 的接口恳求办法的示例:

import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
interface ApiResponse<T> {
  success: boolean;
  data: T;
  message: string;
}
class ApiService {
  private axiosInstance: AxiosInstance;
  constructor(baseURL: string, headers: Record<string, string>) {
    this.axiosInstance = axios.create({
      baseURL,
      headers,
    });
    // Add a request interceptor
    this.axiosInstance.interceptors.request.use(
      (config: AxiosRequestConfig) => {
        // Do something before request is sent
        console.log(`Request sent to ${config.url}`);
        return config;
      },
      (error) => {
        // Do something with request error
        return Promise.reject(error);
      }
    );
    // Add a response interceptor
    this.axiosInstance.interceptors.response.use(
      (response: AxiosResponse<ApiResponse<any>>) => {
        // Do something with response data
        console.log(`Response received from ${response.config.url}`);
        if (!response.data.success) {
          throw new Error(response.data.message);
        }
        return response.data.data;
      },
      (error) => {
        // Do something with response error
        console.error(`Error occurred while receiving response: ${error.message}`);
        return Promise.reject(error);
      }
    );
  }
  public async get<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.get<ApiResponse<T>>(url, config);
    return response;
  }
  public async post<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.post<ApiResponse<T>>(url, data, config);
    return response;
  }
  public async put<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.put<ApiResponse<T>>(url, data, config);
    return response;
  }
  public async delete<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.delete<ApiResponse<T>>(url, config);
    return response;
  }
}
export default ApiService;

让咱们逐步剖析代码:

  1. 首要,咱们导入 Axios 及其类型,以及将用作 API 恳求的呼应类型的 ApiResponse 接口。

  2. 接下来,咱们界说一个名为“ApiService”的类,它将担任向咱们的 API 宣布恳求。构造函数采用两个参数:API 的“baseURL”和应随每个恳求发送的“headers”

  3. 在构造函数中,咱们运用传入的 baseURLheaders 创建了一个 Axios 实例。咱们还界说了两个拦截器:一个用于恳求,一个用于呼应。

  4. 恳求拦截器运用 axiosInstance.interceptors.request.use 界说。它需要一个函数,该函数将在发送每个恳求之前调用,而且能够修正恳求装备对象。在此示例中,咱们只是将恳求的 URL 记录到控制台。

  5. 呼应拦截器运用 axiosInstance.interceptors.response.use 界说。它有两个功用:一个用于成功呼应,一个用于过错。成功的呼应函数以呼应对象为参数,必要时能够修正呼应数据或抛出过错。在此示例中,咱们将呼应的 URL 记录到控制台,并运用 ApiResponse 接口的 success 属性检查呼应是否成功。假如不成功,咱们会运用 ApiResponsemessage 属性抛出过错。假如恳求失利,将调用过错函数,咱们只需将过错记录到控制台即可。

  6. 接下来,咱们界说四种宣布恳求的办法:getpostputdelete。每个办法都接受一个 URL、可选数据和可选装备对象,并回来一个包括呼应数据的 Promise。 Promise 运用“T”类型参数进行类型化,该参数用作“ApiResponse”的“数据”属性的类型。

  7. 最后,咱们导出 ApiService 类,以便它能够在咱们运用程序的其他部分运用。

要运用 ApiService,您首要要运用要运用的 baseURLheaders 创建一个实例,如下所示:

const apiService = new ApiService('https://example.com/api', {
  Authorization: 'Bearer YOUR_TOKEN_HERE',
});

然后,您能够在 apiService 实例上调用 getpostputdelete 办法来向您的 API 宣布恳求:

// GET request example
const data = await apiService.get<User[]>('/users');
console.log(data);
// POST request example
const newUser = { name: 'John Doe', email: 'john.doe@example.com' };
const createdUser = await apiService.post<User>('/users', newUser);
console.log(createdUser);
// PUT request example
const updatedUser = { id: 1, name: 'Jane Doe', email: 'jane.doe@example.com' };
const savedUser = await apiService.put<User>('/users/1', updatedUser);
console.log(savedUser);
// DELETE request example
const deletedUser = await apiService.delete<User>('/users/1');
console.log(deletedUser);

我希望这个比如能协助你了解怎么运用恳求和呼应拦截器在 TypeScript 中编写依据 Axios 的接口恳求办法!

NB!

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~


6、一些最佳实践

6.1 英语翻译和改善者

Prompt: I want you to act as an English translator, spelling corrector and improver. I will speak to you in any language and you will detect the language, translate it and answer in the corrected and improved version of my text, in English. I want you to replace my simplified A0-level words and sentences with more beautiful and elegant, upper level English words and sentences. Keep the meaning same, but make them more literary. I want you to only reply the correction, the improvements and nothing else, do not write explanations. My first sentence is “lovin istanbul and the city”

提示:我想让你作为英文翻译、拼写校正和改善。我会用任何言语与你攀谈,你会检测言语,翻译它并用我的文本的更正和改善版本用英语答复。我希望你用更美丽高雅的高档英语单词和语句替换我简化的 A0 级单词和语句。坚持相同的意思,但使它们更文艺。我要你只回复更正、改善,不要写任何解说。我的第一句话是“爱伊斯坦布尔和这座城市”

6.2 面试官

Prompt: I want you to act as an interviewer. I will be the candidate and you will ask me the interview questions for the position position. I want you to only reply as the interviewer. Do not write all the conservation at once. I want you to only do the interview with me. Ask me the questions and wait for my answers. Do not write explanations. Ask me the questions one by one like an interviewer does and wait for my answers. My first sentence is “Hi”

提示:我想让你担任面试官。我将成为提名人,你将向我问询该职位的面试问题。我希望你只作为面试官答复。不要一次写出一切的对话。我希望你只对我进行面试。问我问题,等待我的答复。不要写解说。像面试官相同一个一个问我,等我答复。我的第一句话是“嗨”

6.3 Excel表

Prompt: I want you to act as a text based excel. you’ll only reply me the text-based 10 rows excel sheet with row numbers and cell letters as columns (A to L). First column header should be empty to reference row number. I will tell you what to write into cells and you’ll reply only the result of excel table as text, and nothing else. Do not write explanations. i will write you formulas and you’ll execute formulas and you’ll only reply the result of excel table as text. First, reply me the empty sheet.

提示:我希望你充任依据文本的 excel。你只会回复我依据文本的 10 行 Excel 作业表,其间行号和单元格字母作为列(A 到 L)。第一列标题应为空以引证行号。我会告知你在单元格中写入什么,你只会以文本形式回复 excel 表格的成果,而不是其他任何内容。不要写解说。我会写你的公式,你会履行公式,你只会回复 excel 表的成果作为文本。首要,回复我空表。

6.4 JavaScript 控制台

Prompt: I want you to act as a javascript console. I will type commands and you will reply with what the javascript console should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}. my first command is console.log(“Hello World”);

提示:我想让你充任 javascript 控制台。我将输入指令,您将回复 javascript 控制台应显现的内容。我希望您只在一个仅有的代码块内回复终端输出,而不是其他任何内容。不要写解说。除非我指示您这样做,不然不要输入指令。当我需要用英语告知你一些工作时,我会把文字放在大括号内{like this}。我的第一个指令是 console.log(“Hello World”);

6.5 英语发音助手

Prompt: I want you to act as an English pronunciation assistant for Turkish speaking people. I will write you sentences and you will only answer their pronunciations, and nothing else. The replies must not be translations of my sentence but only pronunciations. Pronunciations should use Turkish Latin letters for phonetics. Do not write explanations on replies. My first sentence is “how the weather is in Istanbul?”

提示:我想让你为讲土耳其语的人充任英语发音助手。我给你写语句,你只答复他们的发音,其他什么都不说。答复不能是我语句的翻译,而只能是发音。发音应该运用土耳其的拉丁字母来发音。不要在答复中写解说。我的第一句话是 “伊斯坦布尔的气候怎么?”

6.6 旅游指南

Prompt: I want you to act as a travel guide. I will write you my location and you will suggest a place to visit near my location. In some cases, I will also give you the type of places I will visit. You will also suggest me places of similar type that are close to my first location. My first suggestion request is “”I am in Istanbul/Beyolu and I want to visit only museums.”

提示:我想让你充任一个旅游向导。我会把我的位置写给你,你会给我的位置邻近的一个当地提出主张。在某些情况下,我也会告知你我要去的当地的类型。你也会向我引荐与我的第一个地址附近的相似类型的当地。我的第一个主张恳求是””我在伊斯坦布尔/贝伊奥卢,我只想观赏博物馆”。

要看到更多的比如,你能够拜访 prompts.chat。

7、引荐一个 Prompt 神器 —— AIPRM

AIPRM for ChatGPT 是一个 Chrome 插件:

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

只要你翻开 chatGPT 的页面,它就会主动嵌入到页面,如下图:

【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

你能够以为它就是一个 ChatGPT3.5 年代的运用商店,首要是协助你写出明晰高效的 ChatGPT Prompts,你能够经过不同的 prompts,对它进行练习,到达自己的意图.

AIPRM 就是一个充满了奇思妙想的插件体系,你能够在里面查找/发布各种你想要的prompt,目前笔者还在探究这个插件的玩法,后续假如有好的体会和实践,会分享出来。

8、结语

正如上述所言,为 ChatGPT 对话编写明晰简练的提示是成功和有意义的互动的要害。经过拟定有针对性的详细提示,你能够引导 ChatGPT 朝你希望的方向进行对话,并保证输出的内容是相关的和有用的。

编写有用的 ChatGPT Prompt 的一个要害技能是运用 “act as…” hack,它答应你指定 ChatGPT 在对话中应该扮演的人物。经过清楚地概述对ChatGPT人物的希望和你想得到的输出类型,你能够为对话供给明晰的方向和辅导。

除了运用 “act as…” hack,在你的提示中防止专业术语和含糊不清的要害词也很重要。经过运用简略、直接的言语和防止敞开式的问题,你能够协助保证 ChatGPT 能够供给相关和精确的答复。

最后,重要的是要记住, ChatGPT 是一种东西,像任何东西相同,它只要在运用它的人面前才会有用。经过遵从制造有用提示和引导对话的最佳实践,你能够从 ChatGPT 中取得最大的收益,并运用它来完成你的方针。

参考

  • awesome-chatgpt-prompts

欢迎重视之前的几篇文章:

  • 【脚手架】从0到1建立React18+TS4.x+Webpack5项目(一)项目初始化
  • 【脚手架】从0到1建立React18+TS4.x+Webpack5项目(二)基础功用装备
  • 【脚手架】从0到1建立React18+TS4.x+Webpack5项目(三)代码质量和git提交规范
  • 【脚手架】从0到1建立React18+TS4.x+Webpack5项目(四)发布脚手架
  • 【Go】依据 Gin 从0到1建立 Web 办理后台体系后端服务(一)项目初始化、装备和日志
  • 【Go】依据 Gin 从0到1建立 Web 办理后台体系后端服务(二)衔接数据库
  • 【重学CSS】图文并茂!一次性搞懂 Flex 布局,完成“布局自在”~
  • 【重学CSS】图文并茂!一次性搞懂 Grid 布局,完成“布局自在”~
  • 【微前端】手把手教你从0到1完成依据Webpack5 模块联邦(Module Federation)的微前端~
  • 【微前端】在造一个微前端轮子之前,你需要知道这些~
  • 【React】万字长文!100+个让你事半功倍的常用 React Hooks 和东西包
  • 【React】面试官:怎么在页面改写之后坚持状态?看看你知道几种~
  • 【2023】前端趋势前瞻,学起来!

end ~