LangChain模块介绍
Model I/O
- Prompts 提示词
- Template 模板 复用
- Selector 提示词选择器
- 根据不同的条件选择不同的提示词
- Language Models 语言模型
- LLM
- 指代续写模型
- Chat
- 对话形态的大语言模型
- 区分不同的语言模型
- LLM
- Output Parsers
- JSON
- Structured
Data Connection
构建私域知识库时所用到的Data,更多是强调怎么把外部的数据获取进过来,并存储到一个地方,然后基于这个地方再进行相关的搜索或数据提取,因此在这个步骤有不同的参与方,再把各个参与方进行不同的串联或组合。
- Vector Stores – 向量数据库
- Emdedding
- 文本嵌入语言模型
- 存储归根结底是存储向量,需要向量化,所以目前是由语言模型来进行向量嵌入
- 特定的一些支持Embedding的语言模型,不是所有的语言模型都支持向量化
- Memory、Self-Hosted、BaaS
- 存储的向量数据库不同的形态
- 可以直接存在内存里,也可以存在自建的一些向量数据库里,更方便的可以直接存放在云上的服务中
- 由存储的介质和可以向量化的大语言模型构成
- Emdedding
- Document Loaders
- Folder
- File
- Web
- Document Transformers/Splitters
- Text
- Code
- Token
- Document Retrievers
- 把一个问题给它,可以根据这个问题获得想要的信息
- Vector DB
- 通过向量数据库的能力进行向量的匹配、近似度的匹配,获取相关文档的内容
- Web API
- 直接通过Web API返回
- BaaS
Memory
用来给对话形式的model存储对话的历史记录,还可以将历史记录重新的灌入到对话中
- Buffer
- 即存即用
- Vector DB
- 持久化
- KV DB
- SQL DB
Chains
串联Model I/O、Data Connections、Memory
- Foundational LLM
- 基础的LLM
- 将model用到的Memory串联起来
- Conversational QA
- 三个都串联起来
- Retrieval QA
- 将数据库和model串联起来
- 也就是,model问一个问题,然后它从数据库中搜出一个内容
- Document
- 针对文档进行一些信息的获取
- Sequential
- 把各种串序列化的再串起来
Agents
-
不仅会把计划列出来,还会去执行这些计划
-
Executors(Chains)
- ReAct(Reason-Act)
- Plan-Execte
- OpenAI
- 用了一些特有的具有Agent功能的大语言模型供应商做的Agent
-
Tools
Agent的灵魂,可以实时搜索并做总结
外部搜索
- Standalone
- 单独函数
- Collection
- 函数集
- Standalone
Callbacks
顾名思义,LangChain提供了回调能力,做日志记录、调用链路的追踪
- LangSmith
- 日志以及链路的追踪平台
- 花费时间、执行了多少token
- Console
- 把关键节点的内容选择性的输出到Console进行调试
- Custom
- 其他接入方式