第四章:大模型(LLM)】06.langchain原理-(3)LangChain Prompt 用法

第四章:大模型(LLM)

第六部分:LangChain 原理

第三节:LangChain Prompt 用法

Prompt 在 LangChain 中处于核心地位。它决定了模型接收的上下文和指令,从而直接影响输出质量。LangChain 针对 Prompt 做了高度抽象和封装,主要包含以下几个方面:


1. Prompt 的基本概念

  • Prompt:输入给 LLM 的文本(可能包含占位符、上下文、指令等)。

  • PromptTemplate :LangChain 对 Prompt 的抽象,用来支持动态插值可复用模板

  • MessagePromptTemplate:用于多轮对话,支持 System / Human / AI 多角色消息。

  • ChatPromptTemplate:封装一组消息模板,便于和聊天模型结合。


2. PromptTemplate 使用

python 复制代码
from langchain.prompts import PromptTemplate

template = "请用一句话总结以下内容:{text}"
prompt = PromptTemplate(
    input_variables=["text"],
    template=template,
)

# 渲染
final_prompt = prompt.format(text="LangChain 是一个用于构建大模型应用的框架。")
print(final_prompt)
# 输出: 请用一句话总结以下内容:LangChain 是一个用于构建大模型应用的框架。

特点:

  • 模板中使用 {变量名} 作为占位符。

  • input_variables 定义可替换的变量。


3. ChatPromptTemplate(对话型提示)

python 复制代码
from langchain.prompts import ChatPromptTemplate

chat_prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个乐于助人的助手。"),
    ("human", "请将以下内容翻译成英文:{text}")
])

final_prompt = chat_prompt.format_messages(text="你好,世界!")
print(final_prompt)

输出是多条消息,适配聊天模型(如 OpenAI ChatCompletion)。


4. Few-shot Prompt(小样本提示)

python 复制代码
from langchain.prompts import FewShotPromptTemplate

examples = [
    {"question": "2+2等于几?", "answer": "4"},
    {"question": "3+5等于几?", "answer": "8"},
]

example_prompt = PromptTemplate(
    input_variables=["question", "answer"],
    template="Q: {question}\nA: {answer}"
)

few_shot_prompt = FewShotPromptTemplate(
    examples=examples,
    example_prompt=example_prompt,
    suffix="Q: {input}\nA:",
    input_variables=["input"],
)

print(few_shot_prompt.format(input="10+15等于几?"))

通过示例引导模型学习回答模式。


5. Prompt 的链式组合

Prompt 可以和 ChainMemory 结合:

  • Chain + Prompt:先动态生成 Prompt,再传给 LLM。

  • Memory + Prompt:记忆组件自动填充 Prompt 的历史对话部分。


6. 实战技巧

  1. 少即是多:Prompt 过长可能导致 LLM 迷失重点。

  2. 角色扮演:在 Prompt 中设置 AI 的身份,可改善回答风格。

  3. 输出约束:通过 JSON Schema、格式提示,提高结果可解析性。

  4. 动态拼接:结合外部数据源动态注入 Prompt。


7. 小结

  • LangChain 的 Prompt 系统提供了 灵活可重用的模板机制

  • PromptTemplateChatPromptTemplate,再到 FewShotPromptTemplate,逐步增强了 Prompt 的表达能力。

  • 配合 Chain / Memory,可以实现高度自动化的 Prompt 生成。

相关推荐
xerthwis12 小时前
HDFS:那座正在云化与解构的“古老高墙”
大数据·数据仓库·人工智能·hdfs·数据库开发·数据库架构
Robot侠12 小时前
ROS1从入门到精通 20:性能优化与最佳实践
图像处理·人工智能·计算机视觉·性能优化·机器人·ros
GISer_Jing12 小时前
ByteDance AI战略:前端生态的颠覆者
前端·人工智能·aigc
愚公搬代码12 小时前
【愚公系列】《扣子开发 AI Agent 智能体应用》008-扣子插件和卡片(开发自定义插件案例:查询股票价格)
人工智能
北京耐用通信12 小时前
告别布线烦恼:耐达讯自动化Profibus六路中继器如何让您的网络“无限续航”
人工智能·物联网·网络协议·自动化·信息与通信
程序猿零零漆12 小时前
Spring之旅 - 记录学习 Spring 框架的过程和经验(一)BeanFactory和ApplicationContext入门和关系
java·学习·spring
LDG_AGI12 小时前
【推荐系统】深度学习训练框架(二十):Meta Device — 延迟初始化,零显存定义超大规模模型
人工智能·pytorch·分布式·深度学习·机器学习·语言模型
AndrewHZ12 小时前
【python与生活】从手机定位到车辆导航:GPS定位算法原理与Python实现
python·智能手机·生活·gps·定位算法·北斗卫星·车辆导航
热爱专研AI的学妹12 小时前
Coze-AI 智能体平台:工作流如何成为智能体的 “自动化引擎”?解锁零代码落地新范式
运维·数据结构·人工智能·自动化
凌冰_12 小时前
Thymeleaf 访问域对象
java·开发语言