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

langchain 提示模版 PromptTemplate

1. 引入

from langchain.prompts import PromptTemplate

2. 定义模版

1. PromptTemplate 直接实例化

PromptTemplate(# 字符串类型。使用{}作为占位符template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。", # 数组。值必须是占位符中的字符串,表示在format时为必填# 经过测试,该属性可以不写,只要不在partial_variables中出现的值都会自动在这里input_variables=["input_language"],# 字典类型。可选。作用:预先固定模版的值,相当于一个默认值,不需要format时输入,如果format中有输入则覆盖此值partial_variables={"output_language":"德语"}
)
# 结果
# PromptTemplate(input_variables=['input_language'], input_types={}, partial_variables={'output_language': '德语'}, template='你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。')
  • 不使用input_variablespartial_variables的示例1
PromptTemplate(template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。")
# 结果,可以看到自动将模版加入了input_variables,并且partial_variables没有值
'''
PromptTemplate(input_variables=['input_language', 'output_language'], input_types={}, partial_variables={}, template='你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。')
'''
  • 不使用input_variables的示例2
PromptTemplate(template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。",partial_variables={"output_language":"德语"}
)
# 结果:input_variables的值是排除了partial_variables的值
'''
PromptTemplate(input_variables=['input_language'], input_types={}, partial_variables={'output_language': '德语'}, template='你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。')
'''

2. from_template

和上面的PromptTemplate没有区别

# 定义模板和输入变量
template_str = ("你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。""请翻译以下内容:'{text}'"
)
prompt_template = PromptTemplate.from_template(# 无需手动写 input_variables,方法会自动提取模板中所有 {} 包裹的变量名template=template_str, 	
)
# 上面的方法等同于
prompt_template = PromptTemplate(template=template_str,input_variables=["input_language","output_language","text"]
)

2. 模版赋值

prompt1 = PromptTemplate(template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。",partial_variables={"output_language":"德语"})# 使用partial_variables固定值
prompt1.format(input_language="日语")
# 结果:'你是一个专业的翻译助手,擅长将日语文本准确翻译成德语。'# 不使用partial_variables固定值
prompt1.format(input_language="英语",output_language="法语")
# 结果:'你是一个专业的翻译助手,擅长将英语文本准确翻译成法语。'
# from_template构建的模版和上面的结果一样
prompt2 = PromptTemplate.from_template(template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。",partial_variables={"output_language":"德语"})prompt2.format(input_language="英语",output_language="法语")
# '你是一个专业的翻译助手,擅长将英语文本准确翻译成法语。'
prompt2.format(input_language="日语")
# '你是一个专业的翻译助手,擅长将日语文本准确翻译成德语。'

3. invoke赋值

  • 注意参数为字典类型
prompt1 = PromptTemplate(template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。",partial_variables={"output_language":"德语"})# 使用partial_variables固定值
prompt1.invoke({"input_language":"英语"})
# 结果:StringPromptValue(text='你是一个专业的翻译助手,擅长将英语文本准确翻译成德语。')# 不使用partial_variables固定值
prompt1.invoke({"input_language":"英语","output_language":"法语"})
# 结果:StringPromptValue(text='你是一个专业的翻译助手,擅长将英语文本准确翻译成法语。')

4. 部分赋值PromptTemplate.partial

不用一次性将模版所有的值赋值,从结果可以看出相当于给了partial_variables的值

prompt3 = PromptTemplate.from_template(template="你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。")
prompt3.partial(output_language="德语")
# 结果 
'''
PromptTemplate(input_variables=['input_language'], input_types={}, partial_variables={'output_language': '德语'}, template='你是一个专业的翻译助手,擅长将{input_language}文本准确翻译成{output_language}。')
'''

文章转载自:

http://TvIySlQe.zddbz.cn
http://wJfFqCO4.zddbz.cn
http://MnNH0Qed.zddbz.cn
http://9a8G3nWR.zddbz.cn
http://fURvrPBf.zddbz.cn
http://92ptOjjj.zddbz.cn
http://iLGoKUMu.zddbz.cn
http://SIO56lC5.zddbz.cn
http://WSPXfRbo.zddbz.cn
http://OnUYBtn7.zddbz.cn
http://dDfbUUZA.zddbz.cn
http://3xhCEkWn.zddbz.cn
http://0USDMXX3.zddbz.cn
http://W0jC3C53.zddbz.cn
http://vAL68u0f.zddbz.cn
http://mW8iYwVy.zddbz.cn
http://r8qeat3m.zddbz.cn
http://ttZuGEU8.zddbz.cn
http://1oC4Oom2.zddbz.cn
http://Ykk05CDn.zddbz.cn
http://IhYjJFhE.zddbz.cn
http://xVLx5FJy.zddbz.cn
http://GEMnqADS.zddbz.cn
http://3QP0HbhC.zddbz.cn
http://zGoayJ2x.zddbz.cn
http://QnniU1Cp.zddbz.cn
http://PNiporyu.zddbz.cn
http://ipfLWrM8.zddbz.cn
http://ZsKIMWoi.zddbz.cn
http://bmhVwSqi.zddbz.cn
http://www.dtcms.com/a/367876.html

相关文章:

  • Ubuntu开发笔记:1.常见操作指令
  • DDD+WebAPI实战
  • 狗都能看懂的HunYuan3D 1.0详解
  • CodeQL(Mac)安装与测试(Visual Studio)简明指南
  • Next.js 介绍:为什么选择它来构建你的下一个 Web 应用?
  • $attrs学习
  • 无定位更安全:5G 高清视频终端的保密场景适配之道
  • GitHub 热榜项目 - 日榜(2025-09-05)
  • 一文看懂什么是GaN HEMT以及其工艺流程(氮化镓高电子迁移率晶体管)
  • 【AI编程工具】快速搭建图书管理系统
  • 安卓学习 之 EditText 控件
  • 2025职教技能大赛汽车制造与维修赛道速递-产教融合实战亮剑​
  • java面试中经常会问到的zookeeper问题有哪些(基础版)
  • 光伏项目无人机踏勘--如何使用无人机自动航线规划APP
  • jenkins加docker 部署项目
  • linux离线安装elasticsearch8.19.3
  • Jenkins环境搭建与使⽤
  • Jenkins 监控方案:Prometheus + Grafana 实践
  • 【论文阅读】Security of Language Models for Code: A Systematic Literature Review
  • 神经网络算法各种层的原理(基于Keras)--输入层,全连接层,卷积层,池化层,嵌入层,长短期记忆网络层等
  • Github | MoneyPrinterTurbo:自动化视频内容生成系统
  • JUnit入门:Java单元测试全解析
  • 如何下载B站视频,去水印,翻译字幕
  • 脚本语言的大浪淘沙或百花争艳
  • Redis中的hash数据类型
  • 如何安全地删除与重建 Elasticsearch 的 .watches 索引
  • HDFS存储农业大数据的秘密是什么?高级大豆数据分析与可视化系统架构设计思路
  • uni-app iOS 文件调试常见问题与解决方案:结合 itools、克魔、iMazing 的实战经验
  • 解析豆科系统发育冲突原因
  • 五分钟XML速成