LangChain 框架核心模块与功能调用实战指南
1. 框架介绍
LangChain 是一个用于构建大语言模型(LLM)应用的开源框架,于 2022 年 10 月作为开源项目推出。目前该框架已在开发社区颇具名气,构建起了自己的一片开发生态。LangChain 在 2023 年 3 月获得了 Benchmark Capital 的 1000 万美元种子轮融资,近期又完成了新一轮融资,估值已提升至较高水平。
它提供了一系列模块,这些模块可以组合在一起,用于创建复杂的应用程序,也可以单独用于简单的应用程序。逻辑上主要有六大核心模块:Models、Prompts、Chains、Agents、Memory、Indexes。
一个完整的 LangChain 应用通常是通过多个组件协同实现的,主要支持以下六种组件类型:
- Models:模型层,支持各种类型的模型和模型集成,如 ChatGPT、ChatGLM、T5 等大语言模型接口。
- Prompts:提示词管理,包括提示模板管理、动态提示词生成及自定义提示词优化。
- Agents:代理机制,决定模型采取哪些行动并执行,授予大模型对外部工具的使用权限,观察流程直到完成。
- Memory:记忆模块,用来保存和模型交互时的上下文状态,支持短期或长期记忆。
- Indexes:索引模块,用来结构化文档,以便和模型进行高效交互和检索。
- Chains:链式处理,一系列对各种组件的调用,将多个步骤串联起来完成任务。
2. 环境准备
在使用 LangChain 之前,需要确保 Python 环境已配置好,并安装必要的依赖包。推荐使用虚拟环境管理依赖。
pip install langchain openai tiktoken
对于向量数据库支持,可根据需求安装对应的库,例如 chromadb 或 faiss-cpu。
3. 核心模块详解
(1) Agents(智能代理)
Agent 使用 LLM 来确定采取哪些行动以及顺序。一个动作可以是使用工具并观察其输出,或直接返回给用户。代理的灵活使用,可以显著增强大模型的能力。
例如,通过 Agent,我们可以赋予大模型访问网络、访问数据库以及其他工具的能力,使其具备自主决策和执行的能力。
代码示例
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.tools import BaseTool
import langchain
# 开启调试模式
langchain.debug = True
from langchain.chat_models import ChatOpenAI
# 初始化模型
llm = ChatOpenAI(temperature=0, model_name="gpt-35-turbo-16k")
# 定义自定义工具
brand_search = BrandInfoSearchWrapper(top_k=1, domain="zhihu.com")
tools = [
Tool(
name=,
func=brand_search.run,
description=
)
]
agent = initialize_agent(
tools, llm, agent=, verbose=
)
()
( + agent.run())


