初识Prompt工程与LangChain
大模型开发/技术交流
- LLM
2024.11.19312看过
初识Prompt工程与LangChain
Prompt,也就是我们所说的“指令”,是我们与大模型交互的基础。
大模型通过理解我们的prompt来生成对应的回答,一个好的prompt能够更好的教会大模型往哪些方面思考、如何思考。简而言之,Prompt是沟通人类意图与机器智能的桥梁,它决定了模型输出的质量和相关性。因此,学会prompt工程是至关重要。
1. Prompt模板的分类
在LangChain框架中,存在两种核心的提示模板类型:
StringPromptTemplate
用于构建字符串形式的提示,而BaseChatPromptTemplate
则用于构建聊天场景中的提示。
基于这两种基础模板,LangChain进一步发展出了多种定制化的提示模板,以适应各种特定的应用场景。
为了更好的说明每种模板,并进行对比,在结合小册的例子基础上,我给每类模板总结了详细的示例——
第一类 PromptTemplate 示例
用途:构建简单的提示,用于直接询问或命令。
示例:
"今天的天气如何?"
在这个例子中,
PromptTemplate
用于生成一个简单的查询,模型需要根据这个直接的问题提供答案。
第二类 ChatPromptTemplate 示例
用途:模拟聊天场景中的对话,可以包含不同角色的互动。
示例:
[{"role": "user", "content": "你好,我需要帮助选择一款笔记本电脑。"},{"role": "assistant", "content": "当然可以,你打算用笔记本电脑做什么呢?"}]
在这个例子中,
ChatPromptTemplate
用于创建一个用户和助手之间的对话,模拟了一个真实的问答场景。
第三类 FewShotPromptTemplate 示例
用途:通过提供少量示例来引导模型理解并完成类似的任务。
示例:
{"examples": [{"input": "上海", "output": "上海是中国的一个城市"},{"input": "自由女神像", "output": "自由女神像是美国的一个雕像"}],"prompt": "埃菲尔铁塔"}
在这个例子中,
FewShotPromptTemplate
提供了几个示例输入和输出对,模型通过这些示例学习如何回答关于“埃菲尔铁塔”的问题。
2. Prompt模板的构建:以豆包为例
大多数情况下,在经过专业人员的调试后,我们的模板是保持不变的。改变的仅仅是少部分模板的参数。
以豆包大模型提供的上述“写文章”例子为例,我们只需要改变文章的
主题
、发布平台
,这两个主要关键参数。豆包就能帮我们生成最匹配的文章内容。
整个prompt可以理解为——
帮我写一篇关于{theme}的{platform}文章
实际在编码过程中,编码为——
prompt = PromptTemplate(input_variables=["theme", "platform"],template="帮我写一篇关于{theme}的{platform}文章",)print(prompt.format(theme="大模型", platform="掘金"))
那么,最终生成的模板即为(见控制台)
这样的模板工程,极大的简化了用户的输入工作量,同时,也不会让模型回答跑偏。
总结
通过学习Prompt工程和LangChain,我更加理解了在提示词上,如何有效地与大模型进行交互。
在实际应用中,我们需要不断探索和实践,以找到最适合特定任务的Prompt构建方法和示例选择策略。这不仅是技术的提升,也是对人工智能应用深度理解的过程。
————————————————
版权声明:本文为稀土掘金博主「谨慎谦虚」的原创文章
原文链接:https://juejin.cn/post/7431141245211082752
如有侵权,请联系千帆社区进行删除
评论