LangChain大模型应用开发指南-AI大模型衍生的新能力
上节课,我以传统应用编程设计模式和思维为入口和对比对象,介绍了LangcChain中的Chain、Agent、Callback三大核心概念,并整理了LangcChain为众多开发者内置的能力与工具。没有看过的小伙伴可以点击链接查看:
今天我将为大家介绍LangChain基于AI大模型衍生的新能力,Model I/O、Retrieval、和Memory。
组件总览
大家看完今天的文章后,可以回头再来看下LangChain的组件与架构图,就能从全局的角度基本理清LangChain的组件与抽象层以及它们之间的相关联系。
本篇文章主要从传统编程出发,LangChain基于AI大模型衍生的新能力,本次课程整体提纲如下:
Model I/O
Model I/O是LangChain中最基本的组件,它负责与语言模型进行输入输出。你可以把它想象成语言模型的耳朵和嘴巴,它可以听取用户或其他组件的请求,并根据请求生成相应的回答。Model I/O有三种类型:
类型 | 作用 |
---|---|
Prompts | 用于向语言模型提供输入的模板,它们可以定义输入变量,输出格式,部分变量等,以便生成符合用户需求的文本 |
Language models | 用于人工智能模型的参数自定义,它们可以根据不同的参数(如温度,最大长度,前缀等)产生不同风格和内容的文本 |
Output parsers | 用于将语言模型的输出解析为更结构化的信息的类如JSON、XML |
Model I/O是我们通过LangChain与大模型交互的最基础但也是最为核心的组件,基于Model I/O,我们就能很轻松的构建出一个基础人机对话的工具界面。现在各行各业让人眼花缭乱的AI工具,可能拆解到最后,你会发现其实只是由一个个预定义好的Prompts组合形成的。
Retrieval
Retrieval是LangChain中用于从外部来源获取上下文的组件,它可以帮助语言模型获得更多的信息和知识。
你可以把它想象成语言模型使用搜索引擎来查找相关内容。如上图所示,我们可以将Retrieval的能力划分为以下几个部分:
能力 | 作用 |
---|---|
Document loaders | 从不同的来源加载文档,支持多种文档类型和位置 |
Document transformers | 对文档进行变换,提取相关的部分,分割成小块 |
Text embedding models | 为文档创建语义嵌入,实现快速有效的相似度搜索 |
Vector stores | 存储和检索嵌入向量,支持多种数据库类型和接口 |
Retrievers | 从数据库中检索数据,支持多种检索算法和优化方法 |
Retrieval是LangChain中最重要的组件之一,它可以让语言模型拥有更丰富和更准确的上下文。你可以使用不同类型的Retrieval来适应不同类型的外部来源,也可以自定义Retrieval来实现特定的功能。
Memory
Memory是LangChain中用于存储和更新上下文的组件,它可以让语言模型记住之前的信息和状态。你可以把它想象成语言模型的大脑,它可以存储短期记忆和长期记忆。根据不同的使用场景,LangChain内部定义的Memory有以下类型:
类型 | 作用 |
---|---|
Conversation Buffer | 用于存储对话中的所有消息和元数据的内存,它可以返回一个列表,包含对话中的每个消息和其相关的信息,如发送者,接收者,时间戳等 |
Conversation Buffer Window Entity | 用于从对话缓冲区中提取特定窗口大小内的实体的内存,它可以返回一个字典,包含窗口内出现的实体及其频率,类型和位置 |
Conversation Knowledge Graph | 用于构建和更新对话中涉及的实体和关系的知识图谱的内存,它可以返回一个图结构,包含节点(实体)和边(关系),以及一些统计信息,如图的大小,密度,聚类系数等 |
Conversation Summary | 用于生成对话的摘要的内存,它可以返回一个字符串,包含对话的主要内容和目标 |
Conversation Summary Buffer | 用于存储对话摘要的内存,它可以返回一个列表,包含对话摘要的每个句子和其相关的信息,如生成时间,置信度等 |
Conversation Token Buffer | 用于存储对话中的所有单词和标点符号的内存,它可以返回一个列表,包含对话中的每个单词或标点符号及其相关的信息,如词性,命名实体类型等 |
Vector Store | 用于将对话中的文本或实体转换为向量表示,并进行相似度计算或聚类分析的内存,它可以返回一个矩阵,包含对话中每个文本或实体的向量表示,以及一些度量值,如余弦相似度,欧氏距离等 |
Memory是LangChain中最有用的组件之一,它可以让语言模型具有持久性和一致性。你可以使用不同类型的Memory来适应不同类型的上下文,也可以自定义Memory来实现特定的功能。
总结
本文以传统应用编程设计模式和思维为入口和对比对象,介绍了LangcChain中的Chain、Agent、Callback三大核心概念,并整理了LangcChain为众多开发者内置的能力与工具。
通过本文的指导,读者可以迁移在传统应用编程中累积的思维方式和经验,快速入门掌握AI应用编程。
下一节课我们将着重讲解,LangChain架构在传统应用开发基础上通过AI大模型衍生出的新能力,请大家持续关注。
标签:AI,模型,LangChain,对话,组件,可以 From: https://blog.51cto.com/u_13279124/7692603