当前位置: 首页 > news >正文

LangChain中的Prompt模板如何使用?

LangChain中的Prompt模板如何使用?

  • 1 关于Prompt Template
  • 2 主要用法思路
  • 3 一个示例
  • 4 如何生成带默认值的模版?
  • 5 如何从文件加载模型
  • 6 如何应用到聊天模版
  • 7 使用总结

今天在做测试用例设计的时候,代码中用到了LangChain中的Prompt模板;
所以把这个功能的使用简单整理下,便于后续的使用。

1 关于Prompt Template

  • 在 LangChain 中,Prompt 模板(Prompt Template)是管理提示词的重要工具;
  • 可以动态生成提示词,避免重复编写相似的提示文本。

2 主要用法思路

  • 导入必要的类:从langchain.prompts导入PromptTemplate;
  • 定义模板字符串:包含需要动态替换的变量(用{变量名}表示);
  • 创建 PromptTemplate 实例:指定模板和变量列表
  • 使用模板生成提示词:通过format()方法传入变量值。

3 一个示例

  • 示例代码如下:
# 1. 导入PromptTemplate
from langchain.prompts import PromptTemplate# 2. 定义模板字符串,包含变量{product}
template = "你是一名{product}工程师,请帮我设计{feature}的单元测试用例"# 3. 创建PromptTemplate实例,指定模板和变量列表
prompt = PromptTemplate(input_variables=["product", "feature"],  # 变量名列表template=template  # 模板字符串
)# 4. 格式化模板,传入具体值生成提示词
formatted_prompt = prompt.format(product="资深测试", feature="条件覆盖")print(formatted_prompt)
  • 输出如下:
你是一名资深测试工程师,请帮我设计条件覆盖的单元测试用例

在这里插入图片描述

4 如何生成带默认值的模版?

  • 如果某些变量有默认值,可以使用PartialPromptTemplate;
  • 但是PartialPromptTemplate已经被移除或重构了;
  • LangChain 的 API 在不断迭代,一些早期版本的类会被调整;
  • 目前最新的使用方法是使用prompt.partial()方法来实现部分变量填充的功能:

from langchain.prompts import PromptTemplatetemplate = "你是一名{role}工程师,请帮我设计{feature}用例,重点突出{style}的设计"# 创建完整PromptTemplate
prompt = PromptTemplate(input_variables=["role", "feature", "style"],template=template
)# 使用partial()方法设置默认值,生成部分填充的模板
partial_prompt = prompt.partial(style="条件覆盖")# 后续只需传入剩余变量
full_prompt = partial_prompt.format(role="资深测试", feature="单元测试")
print(full_prompt)
  • 输出如下:
你是一名资深测试工程师,请帮我设计单元测试用例,重点突出条件覆盖的设计

在这里插入图片描述

5 如何从文件加载模型

  • 对于复杂的提示词,可以将模板内容保存到文件中:
# 假设template.txt文件内容为:"分析{test}的主要优势和劣势。"
with open("template.txt", "r") as f:template = f.read()prompt = PromptTemplate(input_variables=["test"],template=template
)print(prompt.format(topic="软件测试"))

6 如何应用到聊天模版

  • 可以使用ChatPromptTemplate:
from langchain.prompts import ChatPromptTemplate
from langchain.schema import HumanMessage, SystemMessage# 定义系统消息和人类消息模板
system_template = "你是一个{role},擅长{skill}。"
human_template = "请帮我{task}。"chat_prompt = ChatPromptTemplate.from_messages([("system", system_template),("human", human_template)
])# 格式化生成消息列表
messages = chat_prompt.format_messages(role="资深软件测试专家",skill="软件测试架构设计",task="设计一个高并发场景的用例设计"
)# 输出的messages可直接传入聊天模型
for msg in messages:print(f"{msg.type}: {msg.content}")
  • 输出:
system: 你是一个资深软件测试专家,擅长软件测试架构设计。
human: 请帮我设计一个高并发场景的用例设计。

在这里插入图片描述

7 使用总结

  • Prompt 模板通过变量替换实现提示词的动态生成,提高复用性;
  • PromptTemplate适用于普通文本提示,ChatPromptTemplate适用于聊天模型;
  • 可以通过partial_variables设置默认值,或从文件加载复杂模板;
  • 使用模板可以让提示词管理更清晰,尤其在需要多次生成相似提示时非常有用。

文章转载自:

http://EF8KMZhG.yccnj.cn
http://gF5CBSHi.yccnj.cn
http://LvYP5zfU.yccnj.cn
http://Zy73vRXv.yccnj.cn
http://1ujbgy1r.yccnj.cn
http://2TaWvVZ4.yccnj.cn
http://woPTzURk.yccnj.cn
http://4eo9Riyf.yccnj.cn
http://hXhZvLTh.yccnj.cn
http://4VkrUDLO.yccnj.cn
http://vsnCfSKt.yccnj.cn
http://Ls9LvxQe.yccnj.cn
http://wytTlazm.yccnj.cn
http://R37jY107.yccnj.cn
http://zSpTjIdv.yccnj.cn
http://OCuTLrQ4.yccnj.cn
http://UdZyDv7I.yccnj.cn
http://uY7qXM0H.yccnj.cn
http://b6iymjYc.yccnj.cn
http://GasKrOqI.yccnj.cn
http://Bdk4X1zK.yccnj.cn
http://sTq1RAgN.yccnj.cn
http://wf8hoIoO.yccnj.cn
http://KAjGd9HA.yccnj.cn
http://dq8w2jIk.yccnj.cn
http://jYJwg5ax.yccnj.cn
http://JRs57E3l.yccnj.cn
http://uTXTUmXh.yccnj.cn
http://5KkilpXf.yccnj.cn
http://v7hLTNuh.yccnj.cn
http://www.dtcms.com/a/377575.html

相关文章:

  • 防逆流·易安装·高兼容——安科瑞ADL200N-CT/D16-WF阳台光伏电表
  • 性能优化零成本:只加3行代码,FCP从1.8s砍到1.2s
  • 深入 Spring MVC 底层:控制器方法执行流程与参数绑定原理解析
  • UniApp微信小程序-实现蓝牙功能
  • Java集成SmartJavaAI实现旋转框检测、定向边界框目标检测(YOLO-OBB)
  • FreeBSD系统使用freebsd-update命令从14.2升级到14.3
  • 【Java】Hibernate查询性能优化
  • Spring DI/IOC核心原理详解
  • 基于多时间尺度的电动汽车光伏充电站联合分层优化调度(Matlab代码实现)
  • 【论文阅读】TrojVLM: Backdoor Attack Against Vision Language Models
  • 快速查看文件的MD5码
  • 多模态大模型研究每日简报【2025-09-10】
  • 股指期货合约的代码如何理解?
  • 基于Python的商品爬取与可视化系统
  • SEGGER_RTT相关的操作
  • vmware虚拟机 ubuntu固定usb转rndis网卡
  • Java管理事务方式
  • Spring Boot + Vue 项目中使用 Redis 分布式锁案例
  • Unity(①基础)
  • 【测量】知识点
  • 开始 ComfyUI 的 AI 绘图之旅-ControlNet(六)
  • 楼宇自控系统监控建筑变配电系统:功效体现在安全与节能层面
  • 分布式存储:RustFS与MinIO全面对比
  • 【第24话:定位建图】 SLAM回环检测方法及原理详细介绍
  • Electron 核心模块速查表
  • SafeEar:浙大和清华联合推出的AI音频伪造检测框架,错误率低至2.02%
  • vue2+jessibuca播放h265视频
  • 智普科技推出 Claude 用户平滑迁移方案,GLM-4.5 模型全面开放
  • IIS 部署 asp.net core 项目时,出现500.19、500.31问题的解决方案
  • ASP.NET Core 中的简单授权