LangChain 入门指南:从零开始构建大语言模型应用

1. 什么是 LangChain?

LangChain 是一个强大的开源框架,旨在帮助开发者快速构建基于大语言模型(LLM,如 GPT-4、Claude、Llama 等)的应用程序。它提供了丰富的工具和模块,让开发者可以轻松实现:
智能问答(RAG)
自动化工作流
聊天机器人
代码分析与生成
数据增强检索

LangChain 的核心优势在于 模块化设计,开发者可以像搭积木一样组合不同功能,而无需从头编写复杂逻辑。


2. 核心概念

(1)Models(模型)

LangChain 支持多种 LLM,包括:

  • OpenAI(GPT-3.5/4)
  • Anthropic(Claude)
  • HuggingFace(Llama 2)
  • 本地部署模型

示例:调用 OpenAI 模型

from langchain.llms import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.7)
response = llm("请用一句话解释量子计算")
print(response)

(2)Prompts(提示词)

通过模板动态生成提示词,提高可控性:

from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=["topic"],
    template="请用通俗语言解释:{topic}"
)
result = prompt.format(topic="区块链")
print(result)  # 输出:请用通俗语言解释:区块链

(3)Chains(链)

将多个步骤组合成工作流:

from langchain.chains import LLMChain

chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run("人工智能"))  # 输出解释

(4)Memory(记忆)

让 LLM 记住对话历史(适合聊天机器人):

from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory()
memory.save_context({"input": "你好"}, {"output": "你好!我是AI助手"})
print(memory.load_memory_variables({}))  # 查看记忆

(5)Agents(智能代理)

让 LLM 自动调用工具(如搜索、计算、API):

from langchain.agents import load_tools, initialize_agent

tools = load_tools(["serpapi"])  # 加载Google搜索工具
agent = initialize_agent(tools, llm, agent="zero-shot-react-description")
agent.run("2025年世界杯在哪里举办?")  # 自动搜索并返回答案

3. 实战案例:搭建知识库问答系统

步骤 1:加载文档

from langchain.document_loaders import WebBaseLoader

loader = WebBaseLoader("https://example.com/article")
documents = loader.load()

步骤 2:文本分块

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(documents)

步骤 3:向量存储与检索

from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS

embeddings = OpenAIEmbeddings()
db = FAISS.from_documents(chunks, embeddings)
retriever = db.as_retriever()

步骤 4:问答链

from langchain.chains import RetrievalQA

qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever
)
result = qa_chain.run("文章主要讲了什么?")
print(result)

4. 为什么选择 LangChain?

场景传统方法痛点LangChain 解决方案
文档问答手动处理文本、低效自动分块、语义检索
多工具协作代码臃肿难维护Agent 自动调度工具
长期对话无法记忆历史Memory 模块持久化上下文

5. 学习资源


6. 结语

LangChain 极大地降低了 LLM 应用开发门槛。无论是构建智能客服、数据分析工具,还是自动化流程,它都能提供高效灵活的解决方案。

下一步建议

  1. 尝试用 LLMChain 实现一个天气预报查询机器人
  2. 探索 LangSmith 监控模型调用
  3. 加入社区讨论(Discord/Slack)

如果有具体问题,欢迎留言交流! 🚀


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐