LangChain 学习笔记 · Day 2 PromptTemplate
LangChain PromptTemplate 使用指南,包括基本语法、多变量模板、实战练习和 API Key 管理最佳实践
12 分钟阅读
LangChainPythonPromptTemplate邮件生成器API管理
🎯 学习目标
- 理解 PromptTemplate 的作用和语法
- 学会通过参数化模板来复用 Prompt
- 编写一个小应用 —— 邮件生成器 / 摘要器
- 学习如何安全地管理 API Key(环境变量 & 配置文件)
🔹 1. 什么是 PromptTemplate?
- 定义:带变量的 Prompt 模板
- 作用:
- 把 Prompt 和业务逻辑分开
- 通过占位符插入动态变量
- 避免每次都写完整的 prompt
👉 类似 Python 的 f-string,但专门用于 LLM。
🔹 2. 基本用法
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["product"],
template="请为这个产品写一句广告词:{product}"
)
print(prompt.format(product="LangChain 学习计划"))
输出:
请为这个产品写一句广告词:LangChain 学习计划
🔹 3. 和模型结合
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(
model="kimi-k2-0711-preview",
temperature=0.7,
# 如果已配置环境变量,则无需传 api_key / base_url
)
prompt = PromptTemplate(
input_variables=["product"],
template="请为这个产品写一句广告词:{product}"
)
chain = prompt | llm | StrOutputParser()
print(chain.invoke({"product": "智能写作助手"}))
输出示例:
智能写作助手,让灵感随时涌现!
🔹 4. 多变量模板
prompt = PromptTemplate(
input_variables=["job", "skill"],
template="请写一段简历介绍,职位是{job},突出技能是{skill}"
)
print(prompt.format(job="前端工程师", skill="Vue3 + Nuxt3"))
🔹 5. 实战练习:邮件生成器
prompt = PromptTemplate(
input_variables=["recipient", "subject", "content"],
template=(
"写一封邮件给 {recipient},主题是「{subject}」。"
"邮件内容要包含:{content}。"
"请用正式礼貌的语气。"
)
)
print(prompt.format(
recipient="客户王先生",
subject="项目进度汇报",
content="项目已完成 80%,预计下周交付"
))
🔹 6. API Key 管理最佳实践
方法一:系统环境变量(推荐)
export OPENAI_API_KEY="你的_KIMI_API_KEY"
export OPENAI_BASE_URL="https://api.moonshot.cn/v1"
代码中直接使用:
llm = ChatOpenAI(model="kimi-k2-0711-preview")
方法二:.env 文件 + python-dotenv
.env 文件:
OPENAI_API_KEY=你的_KIMI_API_KEY
OPENAI_BASE_URL=https://api.moonshot.cn/v1
Python 代码:
from dotenv import load_dotenv
load_dotenv()
llm = ChatOpenAI(model="kimi-k2-0711-preview")
方法三:集中配置
在 config.py 里统一管理,再导入使用。
⚠️ 今日收获 & 注意事项
- PromptTemplate 提升了 Prompt 的复用性和可维护性
- LCEL 写法 (
prompt | llm | parser) 是未来推荐的写法 - API Key 不要写死在代码里,推荐
.env+ 环境变量 - 实战练习:邮件生成器 / 简历助手 / 摘要器
⏭️ Day 3 展望
- 学习 Chains 的使用方法
- 串联多个 Prompt & 模型调用
- 实现一个多步骤应用(如翻译 → 总结)