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

自然语言处理从入门到应用——LangChain:提示(Prompts)-[基础知识]

分类目录:《自然语言处理从入门到应用》总目录


模型编程的新方法是使用提示(Prompts)。提示指的是模型的输入。这个输入通常由多个组件构成。PromptTemplate负责构建这个输入,LangChain提供了多个类和函数,使得构建和处理提示变得简单。《自然语言处理从入门到应用——LangChain:提示(Prompts)》系列文章包含一下几个部分:

  • LLM Prompt模板 :揭示如何使用PromptTemplate来提示语言模型
  • Chat Prompt模板 :揭示如何使用PromptTemplate来提示对话模型
  • 示例选择器 :在提示中包含示例往往很有用,这些示例可以根据需要进行动态选择
  • 输出解析器 :析语言模型和对话模型的输出文本。在很多时候,我们可能希望获得更结构化的信息,这就是输出解析器发挥作用的地方。
  • 输出解析器:指示模型应如何格式化输出, 将输出解析为所需的格式,也包括必要时进行重试。

提示是传递给语言模型的值,这个值可以是字符串(用于语言模型)或消息列表(用于对话模型)。这些提示的数据类型相当简单,但它们的构造却并非如此。LangChain的价值在于:

  • 用于字符串提示和消息提示的标准接口
  • 用于字符串提示模板和消息提示模板的标准接口
  • 示例选择器:用于将示例插入提示中,以便语言模型进行遵循
  • 输出解析器:用于将指令插入到提示中,作为语言模型输出信息的格式,以及将字符串输出解析为所需格式的方法。

《自然语言处理从入门到应用——LangChain:提示(Prompts)》系列文章为特定类型的字符串提示、特定类型的聊天提示、示例选择器和输出解析器提供了深入的文档。在本文中,我们先介绍了一个用于简单提示的标准接口的快速入门指南。

PromptTemplates

PromptTemplates负责构建提示值。这些PromptTemplates可以执行格式化、示例选择等操作。从高层次上讲,这些基本上是公开了format_prompt方法以构建提示的对象。在内部,可以发生任何事情。

from langchain.prompts import PromptTemplate, ChatPromptTemplate
string_prompt = PromptTemplate.from_template("tell me a joke about {subject}")
chat_prompt = ChatPromptTemplate.from_template("tell me a joke about {subject}")
string_prompt_value = string_prompt.format_prompt(subject="soccer")
chat_prompt_value = chat_prompt.format_prompt(subject="soccer")
to_string

当传递给LLM(预期为原始文本)时调用的方法:

  • string_prompt_value.to_string()
  • chat_prompt_value.to_string()
to_messages

当传递给ChatModel(预期为消息列表)时调用的方法。

  • string_prompt_value.to_messages()
  • chat_prompt_value.to_messages()

示例:

[HumanMessage(content='tell me a joke about soccer', additional_kwargs={}, example=False)]

参考文献:
[1] LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发:https://www.langchain.com.cn/
[2] LangChain中文网 - LangChain 是一个用于开发由语言模型驱动的应用程序的框架:http://www.cnlangchain.com/

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

相关文章:

  • Elasticsearch-增删改查数据工作原理
  • IO进、线程——守护进程
  • 通过v-for生成的input无法连续输入
  • Ventoy 使用教程图文详细版
  • 脚手架 --- command框架<一>
  • SpringBoot整合Zookeeper
  • Java和C#选哪个?
  • 首批!棱镜七彩通过汽车云-汽车软件研发效能成熟度模型能力评估
  • 【Docker】容器的数据卷
  • CentOS7安装jenkins
  • Hadoop的伪分布式安装方法
  • iOS 应用上架的步骤和工具简介
  • 【信号去噪】基于马氏距离和EDF统计(IEE-TSP)的基于小波的多元信号去噪方法研究(Matlab代码实现)
  • 智驾SOC shell编程应用实战笔记
  • C#实现计算题验证码
  • 【lesson6】Linux下:第一个小程序,进度条代码
  • PostgreSQL实战-pg13主从复制切换测试
  • 如何使用OpenCV库进行图像检测
  • Mybatis中where 1=1 浅析
  • element中el-input组件限制输入条件(数字、特殊字符)
  • 会议OA项目之会议发布(一)
  • 【Android】对象为null的一个原因:在方法内部,重新创建了一个新的对象并将其赋值给原对象,但这并不会改变原始的原对象的引用
  • macbook 软件iMovie for Mac(专业视频剪辑工具)中文版
  • web APIs-练习一
  • AX88179A千兆网卡芯片,支持switch联网
  • Pytorch个人学习记录总结 05
  • windows部署安装redis安装教程
  • Jmeter post请求传参问题
  • 对Windows应用程序进行代码签名
  • 2022 China Open Source Report