admin管理员组

文章数量:1532372

写在前面

帮朋友推广一下公众号,欢迎朋友们关注,谢谢!

引言

众所周知,为ChatGPT提供更合适的Prompt输入,我们就能得到更优质的结果。

为了帮助初学者更好地学习这些知识和技能,吴恩达老师与 OpenAI 合作推出了《ChatGPT Prompt Engineering for Developers》教程。该课程通过简单易懂的讲解和范例代码演示,深入介绍了如何使用 Prompt 和 OpenAI 的 API 来开发应用程序,包括如何构造 Prompt 并基于 OpenAI 提供的 API 实现多种常用功能,如总结、推断、转换等。这是入门 LLM 开发的经典教程。

本序列文章是深度参考吴恩达老师的教程之后,提炼的一些关键点。希望可以帮助到大家。

本文章主要聚焦于:编写 Prompt 的原则。
了解基本原则后,也可以进一步阅读《这样逐步优化Prompt,让ChatGPT输出你想要的结果!》

大纲

给OpenAI API 提供更优质的Prompt,需要遵循两个原则:

  • 原则一:编写清晰、具体的指令

    策略1:使用合理的分隔符,更清晰地表示输入的不同部分。

    策略2:给模型指示,要求结构化地输出内容。

    策略3:可以要求模型检查是否满足条件。

    策略4:可以给模型提供少量示例,以获得更优的结果。

  • 原则二:给模型可以思考的时间

    策略5:给模型指定完成任务所需的步骤。

    策略6:引导模型在下结论之前找出一个自己的解法。

接下来结合具体的代码实践,来一起学习上面的原则和具体的策略。

提示:在本教程中,我们将使用 OpenAI 开放的 ChatGPT API。为此,您需要先获得 ChatGPT 的 API_KEY(您也可以直接访问官方网站进行在线测试),然后安装 openai 的第三方库。

安装openai库
pip install openai
准备辅助函数

这个辅助函数在后续的示例中经常会用到。主要功能是根据输入的Prompt内容,调用openai API,并获得输出结果。

import openai
​
# 设置key
# Key的查看入口:https://beta.openai/account/api-keys
# 也可以通过环境变量的方式来设置,为了简单起见,这里直接通过设置参数的方式来设置
openai.api_key = "sk-XXX"
​
# 一个封装 OpenAI 接口的函数,参数为 Prompt,返回对应结果
def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=0,  # 模型输出的温度系数,控制输出的随机程度
    )
    return response.choices[0].message["content"] 
策略1:使用合理的分隔符

使用合理的分隔符,向模型更清晰地表示输入的不同部分。

分隔符可以是任何标记,只要让模型明确知道这是一个单独的部分即可。例如分隔符可以是:```,“”,<>,,<\tag>等。

以下是一个例子,我们给出一段话并要求 GPT 进行总结,在该示例中我们使用 ```来作为分隔符。

# 原始的内容
text = f"""
    你应该提供尽可能清晰、具体的指示࿰

本文标签: 效果promptchatGPT