赞
踩
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。我们相信,最强大和差异化的应用程序不仅会通过 API 调用语言模型,而且还会:
因此,LangChain 框架的设计目标是支持这些类型的应用程序。
LangChain 框架提供了两个主要的价值支柱:
因此,我们将以下文档分为这两个价值支柱。在本文档中,我们以与语言无关的方式在高层次上讨论组件和用例。有关使用这些组件和处理这些用例的特定语言方式,请参阅页面顶部链接的特定语言部分。
在本节中,我们首先介绍一些底层模式抽象,然后再深入介绍 LangChain 的六个主要组件。
Schema模式、Models模型、Prompts提示、Indexes索引、Memory记忆、Chains链条和Agents代理。
本节介绍了整个代码库中使用的基本数据类型和模式。
1、文本
使用语言模型时,与它们交互的主要界面是文本。作为过度简化,许多模型都是“文本输入,文本输出”。因此,LangChain 中的很多界面都是以文本为中心的。
2、聊天信息
最终用户与之交互的主要界面是聊天界面。出于这个原因,一些模型提供者甚至开始以期望聊天消息的方式提供对底层 API 的访问。这些消息有一个内容字段(通常是文本)并与用户相关联。目前支持的用户是系统、人类和人工智能。
SystemChatMessage代表信息的聊天消息应该是对 AI 系统的指令。
HumanChatMessage代表来自与 AI 系统交互的人的信息的聊天消息。
AIChatMessage代表来自 AI 系统的信息的聊天消息。
3、示例
示例是输入/输出对,表示函数的输入和预期的输出。它们可用于模型的训练和评估。
这些可以是模型或链的输入/输出。两种类型的示例都有不同的目的。模型示例可用于微调模型。链的示例可用于评估端到端链,甚至可以训练模型来替换整个链。
4、文档
一段非结构化数据。由page_content
(数据的内容)和metadata
(描述数据属性的辅助信息)组成。
文档的这一部分涉及 LangChain 中使用的不同类型的模型。在此页面上,我们将在较高层次上介绍模型类型,但我们为每种模型类型提供了单独的页面。
LLMs
大型语言模型 (LLM) 是我们涵盖的第一类模型。这些模型将文本字符串作为输入,并返回文本字符串作为输出。
Chat Models聊天模型
聊天模型是我们涵盖的第二种类型的模型。这些模型通常由语言模型支持,但它们的 API 更加结构化。具体来说,这些模型将聊天消息列表作为输入,并返回聊天消息。
Text Embedding Models文本嵌入模型
我们涵盖的第三种模型是文本嵌入模型。这些模型将文本作为输入并返回一个浮点数列表。
编程模型的新方法是通过提示。“提示”指的是模型的输入。此输入很少被硬编码,而是通常由多个组件构成。PromptTemplate 负责构建此输入。LangChain 提供了几个类和函数来简化提示的构建和使用。
这部分文档分为四个部分:
提示值
表示模型输入的类。
“提示”是指传递给基础模型的内容。主要抽象在 LangChain 中有提示,因此所有处理文本数据。对于其他数据类型(图像、音频),我们正在努力添加抽象,但目前还没有。
不同的模型可能需要不同的数据格式。在可能的情况下,我们希望允许在不同的模型类型中使用相同的提示。出于这个原因,我们有一个 PromptValue 的概念。这是一个类,它公开要转换为每个模型类型期望的确切输入类型的方法(目前是文本或 ChatMessages)
提示模板
负责构造 PromptValue 的类。
PromptValue 是最终传递给模型的内容。大多数时候,这个值不是硬编码的,而是根据用户输入、其他非静态信息(通常来自多个来源)和固定模板字符串的组合动态创建的。我们将负责创建 PromptValue 的对象称为 PromptTemplate。该对象公开了一种用于获取输入变量并返回 PromptValue
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。