1. LangChain与LangGraph提示工程入门指南
在当今AI技术快速发展的时代,构建智能应用已经从简单的问答系统进化到需要复杂推理和多步骤决策的智能代理。作为开发者,掌握LangChain和LangGraph的提示工程(Prompt Engineering)技术,能够让你在构建AI应用时如虎添翼。
提示工程的核心在于设计有效的输入提示,引导大模型产生符合预期的输出。与传统的一次性问答不同,现代AI应用需要处理更复杂的场景:多步骤推理、动态决策、上下文记忆、工具集成以及错误处理等。这正是LangChain和LangGraph框架大显身手的地方。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. LangChain基础提示模板详解
2.1 字符串模板:简单场景的首选
字符串模板是LangChain中最基础的提示构建方式,适合单一输入、输出结构固定的场景。它的工作原理类似于Python的字符串格式化,但提供了更强大的功能。
python复制from langchain_core.prompts import PromptTemplate
# 客服邮件生成器模板
email_template = PromptTemplate.from_template(
"""
为以下情况撰写一封专业的客服邮件:
客户问题:{issue}
客户姓名:{customer_name}
紧急程度:{urgency}
语气要求:共情且以解决方案为导向
必须包含:问题确认、解决方案步骤、后续跟进提议
"""
)
# 使用模板生成具体提示
prompt = email_template.invoke({
"issue": "支付后无法访问高级功能",
"customer_name": "Sarah",
"urgency": "High"
})
print(prompt.to_string())
提示:设计字符串模板时,使用描述性强的变量名和清晰的指令格式。模板中的空白和换行会影响最终输出的格式,建议保持一致的缩进风格。
在实际应用中,字符串模板特别适合生成格式固定的文本,如邮件、报告、文档摘要等。它的优势在于结构简单、执行高效,但对于需要多轮交互的复杂场景就显得力不从心了。
2.2 聊天模板:构建对话式AI的核心
聊天模板是构建对话系统的关键组件,它能够处理多轮对话的上下文,模拟真实的人类对话流程。与字符串模板不同,聊天模板明确区分了系统指令和用户输入。
python复制from langchain_core.prompts import ChatPromptTemplate
# AI编程导师聊天模板
coding_mentor_template = ChatPromptTemplate.from_messages([
("system", """你是Python编程专家,你的教学风格是:
• 耐心且鼓励
• 提供清晰的解释和示例
• 提出引导性问题帮助学生思考
• 庆祝学生的进步和学习时刻
"""),
("user", "我在{topic}上有困难,能帮我理解{specific_question}吗?")
])
# 创建具体的学习会话
chat_prompt = coding_mentor_template.invoke({
"topic": "列表推导式",
"specific_question": "什么时候用它,什么时候用普通循环"
})
聊天模板的强大之处在于可以定义不同的消息角色:
- system:设定AI的行为和角色
- user:代表用户的输入
- assistant:AI之前的回复
- function:工具调用的结果
这种角色区分让对话管理更加清晰,也更容易构建复杂的对话逻辑。在实际开发中,聊天模板是构建客服机器人、教学助手、咨询系统等对话应用的首选方案。
2.3 MessagesPlaceholder:动态对话历史管理
对于需要长期记忆的对话应用,MessagesPlaceholder提供了灵活管理对话历史的能力。它允许你将对话历史作为变量动态注入到提示中。
python复制from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import HumanMessage, AIMessage
# 带记忆的项目管理助手模板
project_template = ChatPromptTemplate.from_messages([
("system", "你是项目管理助手,跟踪任务、截止日期和团队进展。"),
MessagesPl
