LangChain

LangChain 的提供了以下 6 种标准化、可扩展的接口并且可以外部集成的核心模块:模型输 入/输出(Model I/O)与语言模型交互的接口;数据连接(Data connection)与特定应用程序的数 据进行交互的接口;链(Chains)用于复杂的应用的调用序列;智能体(Agents)语言模型作为推 理器决定要执行的动作序列;记忆(Memory)用于链的多次运行之间持久化应用程序状态;回调

(Callbacks)记录和流式传输任何链式组装的中间步骤。

1. 模型输入/输出(Model I/O)

主要包含以下部分:Prompts、Language Models 以 及 Output Parsers。

Prompts 部分主要功能是提示词模板、提示词动态选择和输入管理。LangChain 中的 PromptTemplate 类可以根据模板生成提示词,它包含了一个 文本字符串("模板"),可以根据从用户获取的一组参数生成提示词。

Language Models 部分提供了与大语言模型的接口,LangChain 提供了两种类型模型的接口和 集成:LLMs,接受文本字符串作为输入并返回文本字符串;Chat Model,由大语言模型支持,但 接受 Chat Messages 列表作为输入并返回 Chat Message。在 LangChain 中,LLMs 指纯文本完成模 型。接受字符串提示词作为输入,并输出字符串完成。OpenAI 的 GPT-3 是 LLM 实现的一个实例。 其中的"Chat Model"专为会话交互设计。与传统的纯文本补全模型相比,这一模型的 API 采用了 不同的接口方式:它需要一个标有说话者身份的聊天消息列表作为输入,如"系统"、"AI"或"人 类"。作为响应,Chat Model 会返回一个标为"AI"的聊天消息输出。GPT-4 和 Anthropic 的 Claude

都可以通过 Chat Model 调用。

Output Parsers 部分的目标是辅助开发者从大语言模型输出中获取比仅文本更结构化的信息。比如 PydanticOutputParser 允许用户指定任 意的 JSON 模式,并通过构建指令的方式与用户输入结合,使得大语言模型输出符合指定模式的JSON。

2. 数据连接(Data connection)

加载、转 换、存储和查询数据:Document loaders、Document transformers、Text embedding models、Vector stores 以及 Retrievers。

Document loaders(文档加载)旨在从源中加载数据构建 Document。

Document transformers(文档转换)旨在处理文档拆分、合并、过滤等。

Text embedding model(s 文本嵌入模型)旨在将非结构化文本转换为嵌入表示。

Vector Stores(向量存储)是存储和检索非结构化数据的主要方式之一。它首先将数据转化为 嵌入表示,然后存储这些生成的嵌入向量。在查询阶段,系统会利用这些嵌入向量来检索与查询内 容"最相似"的文档。向量存储的主要任务是保存这些嵌入数据并执行基于向量的搜索。

Retrievers(检索器)是一个接口,其功能是基于非结构化查询返回相应的文档。

3. 链(Chain)

将多个 大语言模型进行链式组合

4. 记忆(Memory)

5. 智能体(Agents)

智能体通过将大语言模型与动作列表结合,自动地选择最佳的动作序列,从而实现自动化决策和行动。

Agent:是负责决定下一步该采取什么步骤的类。由大语言模型和提示驱动。

Toolkits:是一组旨在一起使用以完成特定任务的工具集合,并具有方便的加载方法。

Tools:是智能体调用的函数。这里有两个重要的考虑因素:1)为智能体提供正确的工具访 问权限;2)用对智能体最有帮助的方式描述工具。

AgentExecutor:是智能体的运行空间,这是实际调用智能体并执行其选择的操作的部分。

6. 回调(Callbacks)

LangChain 提供了回调系统,允许连接到大语言模型应用程序的各个阶段。这对于日志记录、 监控、流式处理和其他任务非常有用。可以通过使用 API 中提供的 callbacks 参数订阅这些事件。

相关推荐
ZHOU_WUYI19 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
AI_小站1 天前
RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答
人工智能·程序人生·langchain·kubernetes·llama·知识库·rag
ZHOU_WUYI2 天前
5.tree of thought 源码 (prompts 类)
langchain
waiting不是违停3 天前
MetaGPT实现多动作Agent
langchain·llm
ZHOU_WUYI6 天前
2. langgraph中的react agent使用 (在react agent添加历史消息)
人工智能·langchain
ZHOU_WUYI6 天前
4. langgraph中的react agent使用 (在react agent添加人机交互)
人工智能·langchain
ZHOU_WUYI6 天前
5. langgraph中的react agent使用 (从零构建一个react agent)
人工智能·langchain
ZHOU_WUYI6 天前
3. langgraph中的react agent使用 (在react agent添加系统提示)
人工智能·langchain
三月七(爱看动漫的程序员)7 天前
LM2 : A Simple Society of Language Models Solves Complex Reasoning
人工智能·gpt·语言模型·自然语言处理·chatgpt·langchain·1024程序员节
DbWong_09187 天前
langchain_chatchat+ollama部署本地知识库,联网查询以及对数据库(Oracle)数据进行查询
python·oracle·langchain·ollama