理解LangChain LLM输出解析器

Understanding LangChain LLM Output Parser

图片来自 nikitabuida 在 Freepik

大型语言模型(LLM)彻底改变了人们的工作方式。通过帮助用户根据文本提示生成答案,LLM 可以做很多事情,例如回答问题、总结、规划事件等等。

然而,有时 LLM 的输出可能不符合我们的标准。例如,生成的文本可能完全错误,需要进一步的指导。这时 LLM 输出解析器就能派上用场。

通过使用 LangChain 输出解析器标准化输出结果,我们可以对输出进行一定的控制。那么,它是如何工作的呢?让我们开始吧。

准备

在本文中,我们将依赖 LangChain 包,因此我们需要在环境中安装它们。要做到这一点,您可以使用以下代码。

此外,我们将使用 OpenAI GPT 模型进行文本生成,因此请确保您拥有它们的 API 访问权限。您可以从 OpenAI 平台获取 API 密钥。

我将在 Visual Studio Code IDE 中工作,但您也可以在任何喜欢的 IDE 中工作。在项目文件夹中创建一个名为 .env 的文件,并将 OpenAI API 密钥放在其中。它应该看起来像这样。

一切准备就绪后,我们将进入文章的核心部分。

输出解析器

我们可以使用 LangChain 中的多种输出解析器来标准化我们的 LLM 输出。我们将尝试其中的几种来更好地理解输出解析器。

首先,我们将尝试 Pydantic 解析器。它是一个输出解析器,我们可以用它来控制和验证生成文本的输出。让我们通过一个例子更好地使用它们。在您的 IDE 中创建一个 Python 脚本,然后将下面的代码复制到您的脚本中。

我们首先在上面的代码中导入了所需的包,并使用 load_dotenv 加载了 OpenAI 密钥。之后,我们创建了一个名为 MovieReview 的类,其中包含我们想要的所有信息输出。输出将提供标题、年份、类型、评分、摘要和评论。在每个输出中,我们都定义了我们想要的输出描述。

从输出中,我们为年份和评分创建了一个验证器,以确保结果是我们想要的。如果需要,您还可以添加更多验证机制。

然后我们创建了提示模板,它将接受我们的查询输入和所需的格式。

最后一步是创建模型链并将查询传递以获取结果。请注意,上面变量 chain 使用“|”接受结构,这是 LangChain 中的一种独特方法。

总体而言,结果与下图类似。

输出

如您所见,输出遵循了我们想要的格式,并且结果通过了我们的验证方法。

Pydantic 解析器是我们标准使用的输出解析器。如果我们已经有了特定的格式,可以使用其他的输出解析器。例如,如果我们希望结果仅以逗号分隔的项目形式出现,可以使用 CSV 解析器。

输出

结果是一个由逗号分隔值的列表。如果结果是逗号分隔的,您可以根据需要扩展模板。

还可以获取 datetime 格式的输出。通过更改代码和提示,我们可以获得想要的结果。

输出

您可以看到结果是 datetime 格式。

以上就是关于 LangChain LLM 输出解析器的全部内容。您可以访问他们的文档查找所需的输出解析器,或者使用 Pydantic 自己进行结构化。

结论

在本文中,我们学习了 LangChain 输出解析器,它能标准化 LLM 生成的文本。我们可以使用 Pydantic 解析器来结构化 LLM 输出,并提供您想要的结果。LangChain 还有许多其他输出解析器可能适合您的情况,例如 CSV 解析器和 Datetime 解析器。

暂无评论。

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。