Appearance
01-prompt-template.ts
使用模板和变量动态生成提示词,避免重复写相同的提示。
功能介绍
这个示例演示了如何使用 PromptTemplate 创建可重用的提示模板。通过在模板中定义变量,可以动态生成不同的提示,避免重复编写相似的内容。
使用场景
- 同一类问题批量提问(如翻译、摘要等)
- 需要动态替换某些内容的场景
- 标准化提示格式
学习要点
- 使用
PromptTemplate.fromTemplate()创建模板 - 使用
{变量名}定义占位变量 - 使用
format()方法传入实际值生成完整提示 - 模板可以反复使用,只需替换不同的变量值
- 进行环境变量检查和错误处理
源码
typescript
import "dotenv/config";
import { ChatOpenAI } from "@langchain/openai";
import { PromptTemplate } from "@langchain/core/prompts";
if (!process.env.ZHIPUAI_API_KEY) {
throw new Error("ZHIPUAI_API_KEY is not set in environment variables");
}
const model = new ChatOpenAI({
model: "Doubao-Seed-2.0-Code",
temperature: 0.7,
});
async function main() {
try {
console.log("=== PromptTemplate 示例 ===\n");
const promptTemplate = PromptTemplate.fromTemplate(
"你是一个专业的 {profession}。请用通俗易懂的方式解释 {topic}。"
);
const prompt = await promptTemplate.format({
profession: "程序员",
topic: "什么是递归",
});
console.log("生成的 Prompt:", prompt);
console.log("\n---\n");
const response = await model.invoke(prompt);
console.log("AI 回复:", response.content);
} catch (error) {
console.error("Error during prompt template example:", error);
process.exit(1);
}
}
main().catch(console.error);运行方式
bash
npm run dev src/02-prompts/01-prompt-template.ts