LangChain实战(三):深入理解Model I/O - Prompts模板

发布于:2025-08-30 ⋅ 阅读:(13) ⋅ 点赞:(0)

本文是《LangChain实战课》系列的第三篇,将深入探讨LangChain中Prompt模板的核心概念、使用方法和高级技巧,帮助你掌握提示工程的艺术。

前言
在前两篇文章中,我们完成了环境搭建并创建了第一个LangChain应用。今天,我们将深入探讨LangChain Model I/O模块的核心组成部分——Prompt模板。理解并熟练使用Prompt模板是构建高效、可靠大模型应用的关键。

什么是Prompt模板?
Prompt模板是预定义的提示结构,允许我们动态插入变量,创建针对特定任务的提示。它们就像是给大模型的"指令模板",确保每次交互都遵循一致的格式和结构。

为什么需要Prompt模板?
1、一致性:确保相同类型的请求使用相同的格式

2、可维护性:集中管理提示逻辑,便于更新和优化

3、可复用性:可以在不同场景中复用相同的模板结构

4、变量化:动态插入上下文相关信息,提高灵活性

基础Prompt模板使用

  1. 创建简单模板
    让我们从最基本的PromptTemplate开始:

python
from langchain.prompts import PromptTemplate
from langchain.llms import ChatGLM # 使用之前定义的自定义ChatGLM类

初始化模型

llm = ChatGLM()

创建简单模板

template = “请解释以下技术概念: {concept}”
prompt_template = PromptTemplate(
input_variables=[“concept”],
template=template
)

使用模板

filled_prompt = prompt_template.format(concept=“机器学习”)
response = llm(filled_prompt)
print(response)
2. 多变量模板
Prompt模板支持多个变量:

python

多变量模板

template = “作为一名{role},请用{style}风格解释{concept}”
prompt_template = PromptTemplate(
input_variables=[“role”, “style”, “concept”],
template=template
)

使用模板

filled_prompt = prompt_template.format(
role=“AI专家”,
style=“通俗易懂”,
concept=“神经网络”
)
response = llm(filled_prompt)
print(response)
3. 带默认值的模板
有时我们希望某些变量有默认值:

python

带默认值的模板

template = “请用{style}风格解释{concept}”
prompt_template = PromptTemplate(
input_variables=[“concept”],
partial_variables={“style”: “简洁明了”},
template=template
)

使用模板

filled_prompt = prompt_template.format(concept=“深度学习”)
response = llm(filled_prompt)
print(response)
高级Prompt模板技巧

  1. 模板组合
    我们可以将多个模板组合起来创建更复杂的提示:

python
from langchain.prompts import PipelinePromptTemplate

创建基础模板

introduction_template = PromptTemplate(
input_variables=[“concept”],
templ