提示词工程:引导AI高效完成任务的艺术
提示词工程(Prompt Engineering)是人工智能时代的一项关键技能,它研究如何设计最佳提示词,以引导大型语言模型产生我们所需的结果。本文将深入探讨提示词工程的核心概念、组成部分及其与微调的区别,并通过实际代码展示如何实现提示词工程。
提示词与微调:两种提升模型表现的方法
提示词和微调都是用来提高模型表现的方法,但它们的工作方式有本质区别:
- 提示词:通过给模型提供特定的指令或上下文,直接引导模型生成合适的回答。这种方法灵活便捷,无需额外训练,但需要精心设计提示内容。
- 微调:需要对模型进行额外的训练,使用特定任务的数据来调整模型参数,使其在该任务上表现更佳。这种方法需要更多时间和计算资源,但可以使模型在特定领域获得持久的能力提升。
提示工程的核心概念
提示(Prompt)是用户提供的文本输入,用以引导模型的输出。提示工程则研究如何设计出最佳提示词,使语言模型能高效完成特定任务。
一个完整的提示通常包含三个关键要素:指令 + 问题 + 输出标准。

提示词的四大组成部分
一个有效的提示词通常由以下四个部分组成:
- 指令(Instruction):告诉模型需要执行的具体任务或指令
- 上下文(Context):提供额外的背景信息,帮助模型更好地理解任务
- 输入数据(Input Data):用户输入的具体问题或内容
- 输出指示(Output Indicator):指定期望输出的类型或格式
提示词工程的代码实现
以下是一个Python实现的提示词工程示例,展示了如何将提示词的四个组成部分封装到代码中:
from openai import OpenAI
from dotenv import load_dotenv
from typing import List, Dict
load_dotenv()
client = OpenAI()
class PromptSession:
def __init__(self, instruction: str):
"""初始化:设置系统指令"""
self.messages: List[Dict[str, str]] = [{
"role": "system",
"content": instruction
}]
def add_user_input(self, user_input: str):
"""输入数据(Input Data)"""
self.messages.append({
"role": "user",
"content": user_input
})
def get_response(self, model: str = "gpt-3.5-turbo") -> str:
"""输出指示(Output Indicator)"""
response = client.chat.completions.create(
model=model,
messages=self.messages
)
reply = response.choices[0].message.content
self.messages.append({
"role": "assistant",
"content": reply
})
return reply
def run_interactive(self):
"""运行交互式对话"""
print("开始对话(输入 '退出' 结束)")
while True:
user_input = input("你:")
if user_input.lower() == "退出":
print("对话结束。")
break
self.add_user_input(user_input)
reply = self.get_response()
print(f"melon:{reply}")
if __name__ == "__main__":
instruction = "你是一个名叫 melon 的 AI 助手,你可以帮助用户解决各种问题,包括写代码、查资料、日常建议等。"
session = PromptSession(instruction)
session.run_interactive()
代码中的提示词组成部分对应关系

结语
提示词工程是与大型语言模型有效交互的关键技能。通过精心设计提示词的各个组成部分,我们可以引导AI模型产生更加准确、有用的回答,从而更好地满足特定任务需求。相比微调,提示词工程更加灵活,不需要额外的模型训练过程,是快速适应各种AI应用场景的有效方法。
随着人工智能技术的发展,掌握提示词工程的技巧将成为每个与AI打交道的开发者、研究者和普通用户的必备技能。
心有猛虎,细嗅蔷薇

浙公网安备 33010602011771号