LangChain 提示词工程核心组件详解
前言
在构建基于大语言模型(LLM)的应用时,提示词(Prompt)工程是连接用户意图与模型能力的桥梁。尽管 AutoGen、LlamaIndex 等框架提供了丰富的编排能力,但 Prompt Engineering 依然是决定应用效果的核心要素。本文将深入探讨 LangChain 框架中用于管理提示词的核心组件,帮助开发者更系统地设计和复用提示词。
提示词模板类型概览
LangChain 提供了多种提示词模板类,旨在方便复用、接收参数及定制不同场景下的输入。根据用途,主要分为 String 和 Chat 两类:
- PromptTemplate: 最常用的字符串提示词模板,接受
input_variables和partial_variables。 - ChatPromptTemplate: 针对聊天场景设计的模板,包含特定的角色结构(如 System, Human, AI)。
- FewShotPromptTemplate: 在提示词中加入少量样本(Few-Shot),教模型如何回答问题。
- PipelinePrompt: 允许将多个提示组合在一起,形成复杂的处理流程。
- 自定义模板: 支持继承模板类,开发符合特定业务需求的自定义模板。
Prompts 是 LangChain 的核心模块,我们可以从 Prompts 模块导入以上各种类型的模块。
from langchain.prompts.prompt import PromptTemplate
from langchain.prompts import FewShotPromptTemplate
from langchain.prompts.pipeline import PipelinePromptTemplate
from langchain.prompts import ChatPromptTemplate
from langchain.prompts import (
ChatMessagePromptTemplate,
SystemMessagePromptTemplate,
AIMessagePromptTemplate,
HumanMessagePromptTemplate,
)
# 当然直接从 langchain 引入也可以
from langchain import PromptTemplate
PromptTemplate 详解
PromptTemplate 适用于非聊天的文本生成任务。它允许定义一个模板字符串,其中包含占位符(如 {variable}),并在运行时填充具体值。
基础用法
可以通过 from_template 方法快速创建模板对象,也可以直接调用构造函数。
from langchain import PromptTemplate
template = """\
你是一位资深咨询顾问。
你给一个在线销售{product}的电商公司,取个好的名字?
"""
prompt = PromptTemplate.from_template(template)
print(prompt.format(product=))


