LangChain 提示词 + 大语言模型应用

简介

在前文中提到,提示词是一种经常需要使用的元素,其中大部分内容通常是固定的,不需要变动。因此,为了提高效率和便捷性,通常会将这些提示词提炼成模板,以便用户反复使用。

提示词模板化的优点

模板化的提示词可以帮助用户更高效地进行对话或生成文本,节省时间和精力。通过使用模板,用户可以快速构建对话或生成文本,而无需每次都重新编写或设计提示词,从而提高了工作效率。
此外,将提示词制作成模板还有助于保持内容的一致性和规范性。通过使用统一的模板,可以确保生成的对话或文本风格统一,增强了用户体验和信息传达的效果。

提示词模板 + LLM 的应用

基于模板化的好处,LangChain 提供了预制的模板类,用户可以借助这些模板类来设计提示词,生成自己所需的提示词模板。
这样,用户不需要从零开始设计和编写提示词,而是可以直接使用 LangChain 提供的模板类,简化操作流程。
LangChain 提供提示词加 LLM 的应用形式,最常见的组合形式如下所示:
PromptTemplate / ChatPromptTemplate -> LLM / ChatModel / OutputParser
在前面的章节已经有很多关于大语言模型的介绍,在这个章节,将重点介绍 Prompt 的使用。

Prompt

Prompt 是一个基础的提示模板,它接受包含模板变量的字典,并生成一个 PromptValue,PromptValue 是一个完整提示的封装器,可以传递给大型语言模型(LLM)或聊天模型。
Prompt 可以与任何类型的语言模型一起使用,因为它定义了生成基础消息和字符串的逻辑。
LangChain 提供了三种组合形式,分别为:
  • PromptTemplateTemplate + LLM:提示模板和 LLM 组合。
  • PromptTemplateTemplate + LLM + OutputParser:提示模板、LLM 和输出解析组合。
  • Simplifying input:简化输入信息。

应用实践

最简单的组合是将“提示”与“模型”组合起来创建一个链,接受用户输入,将其添加到提示,并传递给模型,然后返回原始的模型输出。

环境准备

需要提前安装 langchainlangchain-openai
  • 安装命令:pip install --upgrade --quiet langchain langchain-openai

基础示例

附加停止序列

还可以在上述基础上,加上一个字符,代表当模板生成的数据到该字符时便停止生成。
代码示例如下:

附加函数调用信息

如果需要限制 LLM 返回的信息,并且根据需求返回特定的字段,可以设置对应的函数调用,附加在创建模型链当中。
代码示例如下:
根据附带的函数,最终生成的结果如下所示,可以看到最终有额外的参数信息输出:

提示词模板、模型调用和输出解析器

上述几种的组合形式最终都是输出了一个 class 类型的内容,如果想要更为直观的格式输出,还可以加上 OutputParser 的格式要求,此时只会输出具体内容的答案,不会输出类的完整信息。代码示例如下所示:
输出的内容为:

函数输出解析器

当附带函数调用时,如果只想指定返回的函数,可以使用 JsonKeyOutputFunctionsParser 进行对输出内容的过滤。代码示例如下:

简化输入

为了让调用更加简单,可以添加一个 RunnableParallel 创建提示输入字典,隐藏输入的 key,直接输入关键词。示例代码如下:

总结

  1. 了解 prompt 的重要性。
  1. 了解 LangChain 提示词语模板的应用。
Loading...