Langchain实战小结 | 青训营X豆包MarsCode 技术训练营

36 阅读3分钟

1. LangChain 的核心概念

LangChain 是一个强大的框架,旨在帮助开发者通过组合语言模型(LLMs)来构建智能应用程序。它不仅仅支持单一任务的调用,还可以将多个任务连接起来,形成更为复杂和灵活的工作流。以下是 LangChain 的核心概念:

  • 链(Chains):
    链是指将多个语言模型任务组合成一个连续的工作流。例如,假设你需要从一篇长文档中提取关键信息,并基于提取的信息生成一个简要摘要。在这种情况下,你可以将文本提取和摘要生成两个任务组合成一个链。这样,链就像是一个执行顺序的流水线,前一个任务的输出会作为后一个任务的输入。

  • 代理(Agents):
    代理是 LangChain 中的动态决策机制。它允许模型根据当前情况选择不同的工具和执行策略。代理可以根据外部的输入或模型的输出,智能地决定应该使用哪个工具(比如搜索引擎、API 调用、数据库查询等)来处理问题。代理不仅可以调用工具,还可以根据上下文管理状态并作出合适的决策。

  • 工具(Tools):
    工具是 LangChain 中执行外部操作的核心组件。这些外部操作可以是 API、数据库查询、计算任务、文件操作等。代理通过动态调用这些工具来完成任务。工具为代理提供了多种可用的功能,能够帮助解决更复杂的问题。

  • 提示模板(Prompt Templates):
    提示模板是 LangChain 中的一个重要功能,它通过动态生成文本输入来规范化提示信息,确保语言模型输入的一致性和高效性。提示模板支持动态插值,可以在模板中嵌入变量,从而根据不同的输入数据生成不同的提示内容。通过统一模板,可以有效地减少硬编码和重复代码。

  • 记忆(Memory):
    记忆是 LangChain 中用于保存和管理上下文的机制。它允许代理或链在执行过程中保持上下文信息,从而实现更自然的对话或任务处理。在多轮对话中,记忆能够帮助系统记住之前的对话内容和用户意图,使得系统能够基于历史信息做出更智能的回应。

  • 数据检索(Indexes)

    数据检索模块允许你构建一个高效的文档索引,并能够根据用户的查询返回最相关的文档。这个过程通常通过建立索引来加速文本搜索。LangChain 提供了多种文档检索方法,支持创建本地知识库,并进行语义匹配。


2. 构建 LangChain 的基本模块

  • 文本分块器(Text Splitters):
    用于将大文本分块处理,便于向量化和嵌入。
  • 嵌入(Embeddings):
    将文本转换为向量形式,用于语义搜索和匹配。常用的嵌入模型包括 OpenAI、Hugging Face 等。
  • 向量数据库(Vector Stores):
    用于存储和检索嵌入向量,如 Pinecone、Qdrant、Weaviate。
  • 语言模型(LLMs):
    与 OpenAI、Hugging Face 等模型集成,支持生成式和完成式任务。

项目框架思想

image.png