1. LangChain提示词模板深度解析
作为一名长期使用LangChain进行大模型应用开发的工程师,我深刻体会到提示词模板在构建稳定、高效AI应用中的重要性。LangChain提供的各类模板不仅能大幅提升开发效率,更能确保与大模型交互的一致性和可控性。下面我将结合实战经验,详细解析三种最常用的提示词模板。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础环境准备与模型初始化
2.1 大模型对象创建
在开始使用提示词模板前,我们需要先初始化大模型对象。以下是使用通义千问模型的典型配置:
python复制import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
# 加载环境变量
load_dotenv()
# 创建大模型对象
llm = ChatOpenAI(
model="qwen-max-latest",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY"),
streaming=True,
)
# 测试模型连接
result = llm.stream("介绍一下你自己")
for chunk in result:
print(chunk.content, end="")
关键配置说明:
streaming=True启用流式输出,适合长文本生成场景base_url指定了阿里云DashScope的兼容模式端点- 建议将API密钥存储在环境变量中,避免硬编码
2.2 模型响应优化技巧
在实际使用中,我发现通过以下参数调整可以显著改善模型表现:
python复制llm = ChatOpenAI(
temperature=0.7, # 控制创造性(0-1)
max_tokens=1024, # 限制响应长度
top_p=0.9, # 核采样参数
frequency_penalty=0.5 # 减少重复内容
)
3. PromptTemplate:基础字符串模板
3.1 基本使用方式
PromptTemplate是最基础的模板类型,适用于单轮问答场景。以下是三种创建方式对比:
python复制from langchain.prompts import PromptTemplate
# 方法1:显式声明变量
template1 = "请将以下文本翻译成{target_language}: {text}"
prompt1 = PromptTemplate(
input_variables=["target_language", "text"],
template=template1
)
# 方法2:从模板字符串自动提取变量
prompt2 = PromptTemplate.from_template(
"作为{role},请{action}: {content}"
)
# 方法3:部分变量预设
partial_prompt = PromptTemplate(
template="{product}的主要功能包括:{features}",
input_variables=["features"]
).partial(product="智能手表")
