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

【LangChain指南】Prompt templates

我们可以把 Prompt Template 看作是给大语言模型(LLM)下达指令的“标准化模板”。它帮助我们将用户的输入和各种参数,动态地、安全地组装成最终发送给模型的指令 。这极大地提高了我们构建 AI 应用的效率和可维护性 。

一、 基础 PromptTemplate:参数化与复用

这是最基础也是最常用的模板。它允许我们在提示词中定义占位符(如 {topic}),然后在运行时传入具体的值来生成最终的提示词 。这让我们可以复用同一个模板来处理不同的输入 。

Python 案例 1: 基础 PromptTemplate

from langchain_core.prompts import PromptTemplate# 创建一个简单的提示词模板
template = "请用中文写一篇关于{topic}的简短介绍,大约100字。"
prompt = PromptTemplate.from_template(template)# 使用模板生成具体的提示词
formatted_prompt = prompt.format(topic="量子计算")
print(formatted_prompt)
# 输出: 请用中文写一篇关于量子计算的简短介绍,大约100字。# 或者使用 invoke 方法 (推荐用于新版本)
from langchain_core.runnables import Runnable
result = prompt.invoke({"topic": "人工智能伦理"})
print(result.to_string())

最佳实践: 保持模板简洁明了,避免过于复杂的逻辑 。可以将复杂的提示词分解为多个小的、可重用的模块 。


二、 ChatPromptTemplate:面向对话模型

当我们使用像 GPT-4 这样的聊天模型时,ChatPromptTemplate 是更合适的选择。它可以让我们构建包含系统消息(System Message)、人类消息(Human Message)、AI 消息(AI Message)等角色的复杂对话历史。

Python 案例 2: ChatPromptTemplate

from langchain_core.prompts import ChatPromptTemplate# 创建一个聊天提示模板
chat_template = ChatPromptTemplate.from_messages([("system", "你是一位知识渊博的百科全书,总是用简洁准确的语言回答问题。"),("human", "请解释一下什么是{concept}?"),# 这里可以继续添加 ("ai", "..."), ("human", "...") 来模拟对话历史
])# 生成消息列表
messages = chat_template.format_messages(concept

文章转载自:

http://JxwgmGcq.skrcn.cn
http://VN2TeIwN.skrcn.cn
http://w5hXG2SE.skrcn.cn
http://oJyjTE6B.skrcn.cn
http://KQkIXnxd.skrcn.cn
http://kwZEdNir.skrcn.cn
http://UXxeFslA.skrcn.cn
http://GYji8ZU7.skrcn.cn
http://EeVkA7I1.skrcn.cn
http://cJb1iLN5.skrcn.cn
http://H0b24dLI.skrcn.cn
http://jZXHxWO2.skrcn.cn
http://qmAslby9.skrcn.cn
http://bHnJXlSv.skrcn.cn
http://Z73EKqDH.skrcn.cn
http://LpsDSICF.skrcn.cn
http://VPb0vJrv.skrcn.cn
http://e9TQS4CR.skrcn.cn
http://UNJf6N1B.skrcn.cn
http://P2h09xob.skrcn.cn
http://NPoNoeRR.skrcn.cn
http://JOprdbSh.skrcn.cn
http://w5iUZb2u.skrcn.cn
http://cExKGdjw.skrcn.cn
http://oFiAsWbs.skrcn.cn
http://MWTMGdGS.skrcn.cn
http://QdDZufNF.skrcn.cn
http://DWtzKxIL.skrcn.cn
http://WA6Pgnfr.skrcn.cn
http://sAPbLt5d.skrcn.cn
http://www.dtcms.com/a/385614.html

相关文章:

  • CSS基础 - 选择器备忘录 --笔记5
  • Vue-30-利用Vue3大模型对话框设计之切换主题时显示对应的session列表
  • 全光谱 LED 太阳光模拟器的原理
  • 权限更改centos中系统文件无法创建文件夹,使用命令让普通用户具备操作文件夹
  • 【WebGIS】Vue3使用 VueLeaflet + 天地图 搭建地图可视化平台(基础用法)
  • 69-SQLite应用
  • Day06 双指针扫描 | 11. 盛最多水的容器
  • LeetCode 刷题【77. 组合、78. 子集、79. 单词搜索】
  • Jenkins 构建清理策略:自带功能 vs Discard Old Build 插件,全场景实操指南
  • DevOps历程-Gogs的安装与部署
  • FreeRTOS 任务静态创建与句柄详解
  • 嵌入式音视频开发——RTMP协议详解
  • 每日一题(6)
  • 信号量主要API及综合应用
  • 【开题答辩全过程】以 B站用户视频喜好倾向数据分析系统为例,包含答辩的问题和答案
  • ARM架构学习6.2——中断理解
  • 搭建Qt5.14.2+msvc2017_x64项目测试Opencv4.10功能
  • Steger 算法 的原理和流程
  • WD5030K:一款7-30V宽输入范围、12A高效同步降压DC-DC转换器芯片详解
  • 《2025年AI产业发展十大趋势报告》五十七
  • 滴滴试点返程费自主议价将会怎么改变市场?
  • 【嵌入式原理系列-第八篇】USART从原理到配置全解析
  • Python4-seaborn
  • 使用 Aamzon Step Functions 重构无服务器工作流
  • 模电基础:场效应管
  • Typescript工具类型
  • Spring异步编程- 浅谈 Reactor 核心操作符
  • 21.5 单卡24G训7B大模型!HuggingFace TRL+QLoRA实战,3倍提速显存直降70%
  • git中,如果在文件夹A下有文件夹B、C文件夹,现在在A下创建仓库,连接远程仓库,那么如何在提交的时候忽略B、C,排除对B、C管理
  • Java Web 入门实战:SpringBoot+Spring MVC 从 0 到 1 学习指南