本文分享 LangChain 框架中一个引人入胜的概念 Prompt Templates
。如果热衷于语言模型并且热爱 Python,那么将会大饱口福。
深入了解 LangChain 的世界,这个框架在我作为开发者的旅程中改变了游戏规则。
LangChain 是一个框架,它一直是我作为开发者旅途中的规则改变者。 LangChain 是一个独特的工具,它利用大语言模型(LLMs)的力量为各种使用案例构建应用程序。Harrison Chase 的这个创意于 2022 年 10 月作为开源项目首次亮相。从那时起,它就成为 GitHub 宇宙中一颗闪亮的明星,拥有高达 42,000
颗星,并有超过 800
名开发者的贡献。
LangChain 就像一位大师,指挥着 OpenAI 和 HuggingFace Hub 等 LLM 模型以及 Google、Wikipedia、Notion 和 Wolfram 等外部资源的管弦乐队。它提供了一组抽象(链和代理)和工具(提示模板、内存、文档加载器、输出解析器),充当文本输入和输出之间的桥梁。这些模型和组件链接到管道链
中,这让开发人员能够轻而易举地快速构建健壮的应用程序原型。本质上,LangChain 是 LLM 交响乐的指挥家。
LangChain 的真正优势在于它的七个关键模块:
- 模型:这些是构成应用程序主干的封闭或开源 LLM
- 提示:这些是接受用户输入和输出解析器的模板,这些解析器格式化 LLM 模型的输出。
- 索引:该模块准备和构建数据,以便 LLM 模型可以有效地与它们交互。
- 记忆:这为链或代理提供了短期和长期记忆的能力,使它们能够记住以前与用户的交互。
- 链:这是一种在单个管道(或“链”)中组合多个组件或其他链的方法。
- 代理人:根据输入决定使用可用工具/数据采取的行动方案。
- 回调:这些是在 LLM 运行期间的特定点触发以执行的函数。
GitHub:python.langchain.com/
什么是提示模板?
在语言模型的世界中,提示是一段文本,指示模型生成特定类型的响应。顾名思义,提示模板是生成此类提示的可重复方法。它本质上是一个文本字符串,可以接收来自最终用户的一组参数并相应地生成提示。
提示模板可以包含语言模型的说明、一组用于指导模型响应的少量示例以及模型的问题。下面是一个简单的例子:
from langchain import PromptTemplate template = """ I want you to act as a naming consultant for new companies. What is a good name for a company that makes {product}? """ prompt = PromptTemplate( input_variables=["product"], template=template, ) prompt.format(product="colorful socks")
在此示例中,提示模板要求语言模型为生产特定产品的公司建议名称。product
是一个变量,可以替换为任何产品名称。
创建提示模板
在 LangChain 中创建提示模板非常简单。可以使用该类创建简单的硬编码提示 PromptTemplate
。这些模板可以采用任意数量的输入变量,并且可以格式化以生成提示。以下是如何创建一个没有输入变量、一个输入变量和多个输入变量的提示模板:
from langchain import PromptTemplate # No Input Variable 无输入变量 no_input_prompt = PromptTemplate(input_variables=[], template="Tell me a joke.") print(no_input_prompt.format()) # One Input Variable 一个输入变量 one_input_prompt = PromptTemplate(input_variables=["adjective"], template="Tell me a {adjective} joke.") print(one_input_prompt.format(adjective="funny")) # Multiple Input Variables 多个输入变量 multiple_input_prompt = PromptTemplate( input_variables=["adjective", "content"], template="Tell me a {adjective} joke about {content}." ) print(multiple_input_prompt.format(adjective="funny", content="chickens"))
总结
总之,LangChain 中的提示模板是为语言模型生成动态提示的强大工具。它们提供了对提示的灵活性和控制,能够有效地指导模型的响应。无论是为特定任务创建语言模型还是探索语言模型的功能,提示模板都可以改变游戏规则。