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

LangChain —— Prompt Templates

文章目录

  • 一、什么是 Prompt Templates
    • 1、String PromptTemplates
    • 2、ChatPromptTemplates
    • 3、MessagesPlaceholder 留言占位符
  • 二、如何使用 Prompt Templates
    • 1、使用几个简短示例
    • 2、在 chat model 中使用几个简短示例
    • 3、部分格式化提示模板
    • 4、一起编写提示


一、什么是 Prompt Templates

 提示模板有助于将用户输入和参数转换为语言模型的指令。这可用于指导模型的响应,帮助它理解上下文并生成相关和连贯的基于语言的输出。
 提示模板将字典作为输入,其中 每个键 表示提示模板中要填写的 变量

 提示模板输出提示 PromptValue 值。此 PromptValue 可以传递给 LLM 或 ChatModel,也可以转换为 字符串消息列表。此 PromptValue 存在的原因是便于在字符串和消息之间切换。

 有几种不同类型的提示模板:

1、String PromptTemplates

 这种提示模板用于 格式化单个字符串,通常用于更简单的输入。例如,构造和使用PromptTemplate的常见方法如下:

from langchain_core.prompts import PromptTemplateprompt_template = PromptTemplate.from_template("Tell me a joke about {topic}")prompt_template.invoke({"topic": "cats"})

2、ChatPromptTemplates

 这些提示模板用于格式化消息列表。这些“模板”由模板本身的列表组成。例如,构造和使用ChatPromptTemplate的常见方法如下:

from langchain_core.prompts import ChatPromptTemplateprompt_template = ChatPromptTemplate.from_messages([("system", "You are a helpful assistant"),("user", "Tell me a joke about {topic}")
])prompt_template.invoke({"topic": "cats"})

 在上面的示例中,此 ChatPromptTemplate 在调用时将构造两条消息。第一个是 SystemMessage,它没有要格式化的变量。第二个是 HumanMessage,将由用户传入的 topic 变量进行格式化。

3、MessagesPlaceholder 留言占位符

 此提示模板负责在特定位置添加消息列表。
 在上面的 ChatPromptTemplate 中,我们看到了如何格式化两条消息,每条消息都是字符串。但是,如果我们想让用户传入一个消息列表,并且要把它们放在一个特定的位置呢?这就需要使用 MessagesPlaceholder 的方法。

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import HumanMessageprompt_template = ChatPromptTemplate.from_messages([("system", "You are a helpful assistant"),MessagesPlaceholder("msgs")
])prompt_template.invoke({"msgs": [HumanMessage(content="hi!")]})

 这将生成一个包含两条消息的列表,第一条是 SystemMessage,第二条是我们传入的 HumanMessage。如果我们传入了5条消息,那么它总共会产生6条消息 (系统消息加上传入的5条消息)。这对于将消息列表放入特定位置非常有用。

 在不显式使用 MessagesPalaceholder 类的情况下,完成相同任务的另一种方法是:

prompt_template = ChatPromptTemplate.from_messages([("system", "You are a helpful assistant"),("placeholder", "{msgs}") # <-- This is the changed part
])

二、如何使用 Prompt Templates

 Prompt Templates (提示模板),负责将用户输入格式化为可以传递给语言模型的格式。

1、使用几个简短示例

 跳转到另一篇文章 How to use few shot examples

2、在 chat model 中使用几个简短示例

 跳转到另一篇文章 How to use few shot examples in chat models

3、部分格式化提示模板

 跳转到另一篇文章 How to partially format prompt templates

4、一起编写提示

 跳转到另一篇文章 How to compose prompts together

http://www.lryc.cn/news/399136.html

相关文章:

  • Python库 - Scrapy
  • 函数(实参以及形参)
  • ArcGIS Pro SDK (八)地理数据库 8 拓扑
  • uniapp如何发送websocket请求
  • RabbitMQ的工作模式
  • 自建搜索引擎-基于美丽云
  • 2024辽宁省大学数学建模竞赛试题思路
  • 循环结构(一)——for语句【互三互三】
  • 【深度学习基础】MacOS PyCharm连接远程服务器
  • 微调Qwen2大语言模型加入领域知识
  • 【Linux】内核文件系统系统调用流程摸索
  • 【HZHY-AI300G智能盒试用连载体验】文档资料
  • Linux--深入理与解linux文件系统与日志文件分析
  • Postman 中的 API 安全性测试:最佳实践与技巧
  • PTC可复位保险丝 vs 传统型保险丝:全面对比分析
  • 深入了解Rokid UXR2.0 SDK内置的Unity AR Glass开发组件
  • Lottery 分布式抽奖(个人向记录总结)
  • 我的AI音乐梦:ChatGPT帮我做专辑
  • 新手-前端生态
  • C#中的类
  • 探索数据库编程:基础与进阶之存储函数
  • Count数据转换为TPM数据方法整理-常规方法、DGEobj.utils和IOBR包
  • 简易限流实现
  • 用Qwt进行图表和数据可视化开发
  • sqlalchemy使用with_entities返回指定数据列
  • express
  • HTML网页大设计-家乡普宁德安里
  • 深度学习:从数据采集到模型测试的全面指南
  • Excel第29享:基于sum嵌套sumifs的多条件求和
  • Elasticsearch:Node.js ECS 日志记录 - Morgan