LangChain
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型,构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型(LLM)和聊天模型提供支持的应用程序的过程。LangChain可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如API和数据库
价值:
数据感知:将语言模型连接到其他数据源
自主性:允许语言模型与环境进行交互
组件化:为使用语言模型提供抽象层,以及每个抽象层的一组实现。组件时模块化且易于使用的
现成的链:结构化的组件集合,用于完成特定的高级任务
LLM技术栈
数据预处理流程
把来自复杂数据源的原始数据,提取关键信息(例如标题、正文、页眉/页脚、列表),最终向外部以API的方式提供JSON数据,以便嵌入终端和存储在向量数据库中
嵌入端点和向量存储
使用嵌入端点(用于生成和返回诸如词向量、文档向量等嵌入向量的API端点)和向量存储(用于存储和检索向量的数据库或数据存储系统)代表了数据存储和访问方式的重大演变。以前,嵌入主要用于诸如文档聚类之类的特定任务。在新的架构中,将文档以及其嵌入存储在向量数据库中,可以通过LLM端点实现关键的交互模式,直接存储原始嵌入,意味着数据可以以其自然格式存储,从而实现更快的处理时间和更高效的数据检索。此外,这种方法可以更容易地处理大型数据集,因为它能减少训练和推理过程中需要处理的数据量
LLM终端
接受输入数据,并生成LLM输出的终端。负责管理模型的资源,包括内存和计算资源,并提供可扩展和容错的接口,用于向下游应用程序提供LLM输出
LLM编程框架
提供了一套工具和抽象,用于使用语言模型构建应用程序。在现代技术栈中出现了各种类型的组件,包括:LLM提供商、嵌入模型、向量存储、文档加载器、其他外部工具(z谷歌搜索等),这些框架的一个重要功能是协调各种组件
关键组件解释
Prompts
Prompts是用来管理LLM输入的工具,在从LLM获得所需的输出之前,需要对提示进行相当多的调整(也不一定),最终的Prompts可以是单个句子或多个句子的组合,它们可以包含变量和条件语句
Chains
一种把LLM和其他多个组件连接在一起的工具,以实现复杂的任务
Agents
一种使用LLM做出决策的工具,它们可以执行特定的任务,并生成文本输出。Agents通常由三部分组成:Action,Observation和Decision。Action是代理执行的操作,Obsrevation是代理接收到的信息,Decision是代理基于Action和Observation做出的决策
Memory
一种存储数据的工具,由于LLM米有任何长期记忆,它有助于在多次调用之间保持状态