您的位置:首页 > 文旅 > 旅游 > 一起学习大模型 - 大模型的交互工具 prompt简介与运用

一起学习大模型 - 大模型的交互工具 prompt简介与运用

2024/10/7 15:12:28 来源:https://blog.csdn.net/kljyrx/article/details/139231461  浏览:    关键词:一起学习大模型 - 大模型的交互工具 prompt简介与运用

文章目录

  • 前言
  • 一、prompt的概念
  • 二、prompt设计的技巧
  • 三、prompt template 及其应用
    • 1. 安装 LangChain
    • 2. 创建 Prompt Template
    • 3. 应用 Prompt Template
    • 4. 完整代码示例
  • 总结


前言

按我们前面一节langchain表达式 LCEL来看,chain = prompt | model | output_parser,可以大概看出大模型的应用主要分三部分,prompt 提示词、model模型计算 、output_parser输出格式化。
今天我们讲 prompt。在深入了解langchain这一块的源码前,我们先简单看看它的概念和简单的运用


一、prompt的概念

在大模型的运用中,“prompt”(提示词)是用户与模型进行互动的主要方式。Prompt 是一段文字或指令,用来告诉模型你想要得到什么样的输出。它可以包括问题、命令、描述或任何能够引导模型生成期望响应的内容。

以下是 prompt 在大模型运用中的几个主要功能:

  1. 引导生成内容:prompt 提供上下文或具体问题,引导模型生成相关的回答或内容。例如,输入一个问题“什么是黑洞?”模型会根据提示生成有关黑洞的解释。

  2. 设置场景和角色:prompt 可以用来设定对话的背景和角色。例如,输入“假装你是一位医生,解释一下感冒的症状”,模型会根据提示生成相关内容。

  3. 控制输出风格:prompt 可以影响模型输出的风格和语气。例如,输入“用幽默的方式解释光合作用”,模型会尝试用幽默的语言来解释这个科学概念。

  4. 解决特定任务:prompt 可以用于特定任务,如编程辅助、文本翻译、文本总结等。输入相应的指令,模型会根据提示执行相应的任务。

  5. 调整输出长度:prompt 的设计可以影响生成内容的长度。详细的提示可能会得到更长和更详细的回答,而简短的提示可能会得到较简短的响应。

总之,prompt 是用户与大模型之间沟通的桥梁,通过精心设计 prompt,可以引导模型生成更加符合需求的内容。

二、prompt设计的技巧

设计有效的 prompt 是利用大模型生成高质量输出的关键。以下是一些设计 prompt 的技巧:

  1. 明确和具体:提示词应当清晰明确,避免模糊和歧义。具体的问题或指令能帮助模型生成更相关和准确的回答。例如,与其问“讲讲物理”,不如问“什么是量子力学的基本原理?”

  2. 提供上下文:为模型提供足够的背景信息,使其更好地理解你需要的内容。例如,“作为一位老师,解释一下牛顿第三定律。”

  3. 逐步指示:如果任务复杂,可以将其分解为几个小步骤,每个步骤都有明确的提示。例如,“首先解释牛顿第一定律,然后举个例子说明。”

  4. 使用示例:通过给出示例来引导模型。例如,“解释一下什么是代数,例如:2x + 3 = 7 的解是多少?”

  5. 控制语气和风格:如果需要特定的语气或风格,可以在提示中明确说明。例如,“用简单的语言解释一下什么是区块链技术。”

  6. 限制输出范围:通过提示限制生成内容的范围。例如,“在100字以内解释一下光合作用。”

  7. 开放式 vs. 封闭式:根据需求选择开放式问题(如“谈谈人工智能的未来发展”)或封闭式问题(如“人工智能的三个主要应用领域是什么?”)。

  8. 迭代和优化:在初次尝试后,根据生成的内容进行调整和优化。逐步修改和改进提示,直到得到满意的结果。

  9. 鼓励细节:如果需要详细的回答,可以在提示中要求。例如,“详细描述一下19世纪工业革命的主要影响。”

  10. 使用模板:为常见问题或任务创建模板,可以提高一致性和效率。例如,“假设你是一名[角色],解释一下[主题]。”

通过应用这些技巧,可以更有效地设计 prompt,使大模型生成的内容更符合预期和需求。

三、prompt template 及其应用

对于普通用户来说,他无法很好的掌握上面的技巧,导致无法有效的和大模型交互,获取需要的资源。
我们可以通过 LangChain 库来创建和应用 prompt template。LangChain 是一个用于构建语言模型应用程序的框架,支持创建复杂的提示模板,并与大模型进行交互。

以下是一个使用 LangChain 创建和应用 prompt template 的示例。

1. 安装 LangChain

首先,确保你已经安装了 LangChain:

pip install langchain

2. 创建 Prompt Template

1) 定义 Prompt Template:首先,我们定义一个 prompt template。例如,我们要创建一个模板来生成关于特定主题的简短介绍。

from langchain.prompts import PromptTemplate# 定义 prompt 模板
template = "请用简明的语言介绍一下{topic}。"# 创建 PromptTemplate 对象
prompt_template = PromptTemplate(input_variables=["topic"],template=template
)

2) 填充 Prompt Template:使用具体的输入变量来填充模板。

# 定义输入变量
input_variables = {"topic": "人工智能"}# 生成最终的 prompt
prompt = prompt_template.format(**input_variables)
print(prompt)

此时,输出的 prompt 会是:“请用简明的语言介绍一下人工智能。”

3. 应用 Prompt Template

接下来,我们将这个 prompt 应用于大模型。假设我们使用 OpenAI 的 GPT-4 模型,代码如下:

import openai# 设定 API 密钥
openai.api_key = 'your-api-key'# 生成 prompt
prompt = prompt_template.format(**input_variables)# 调用 OpenAI API
response = openai.Completion.create(engine="davinci-codex",  # 或者使用 "gpt-4" 模型prompt=prompt,max_tokens=150  # 设置生成内容的长度
)# 打印模型的响应
print(response.choices[0].text.strip())

4. 完整代码示例

结合上述步骤,以下是完整的代码示例:

import openai
from langchain.prompts import PromptTemplate# 安装并导入 LangChain 和 OpenAI 库# 定义和创建 PromptTemplate 对象
template = "请用简明的语言介绍一下{topic}。"
prompt_template = PromptTemplate(input_variables=["topic"],template=template
)# 填充模板
input_variables = {"topic": "人工智能"}
prompt = prompt_template.format(**input_variables)
print("生成的 prompt:", prompt)# 设定 OpenAI API 密钥
openai.api_key = 'your-api-key'# 调用 OpenAI API 生成内容
response = openai.Completion.create(engine="davinci-codex",  # 或者使用 "gpt-4" 模型prompt=prompt,max_tokens=150  # 设置生成内容的长度
)# 打印模型的响应
print("模型的响应:", response.choices[0].text.strip())

总结

通过上述步骤,我们使用 LangChain 创建了一个 prompt template,并通过填充模板生成了一个具体的 prompt,最后将其应用于 OpenAI 的大模型生成内容。这种方法可以使 prompt 的创建更加灵活和高效,尤其适用于需要生成多个类似内容的场景。这样用户就可以很轻松的和大模型交互了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com