🔗
开发者 免费 English

LangChain 构建 LLM 应用实战

LangChain for LLM Application Development

DeepLearning.AI · 吴恩达 × LangChain · 约 3 小时

🎬 课程视频

用 LangChain 框架构建真实 LLM 应用,包括 RAG 知识库问答、Agent 自主任务、记忆管理等。有 Python 基础即可上手。

📖 你将学到

  • LangChain 核心组件:Chain、Agent、Memory
  • 构建文档问答系统(RAG)
  • 让 AI 自主调用工具完成任务
  • 对话记忆管理

01 LangChain 核心概念:Chain、Memory、Agent

LangChain 是构建 LLM 应用的主流框架,理解这三个核心概念就掌握了 80%。

安装
pip install langchain langchain-openai python-dotenv

Chain(链):把多个步骤串起来
Chain 就是把多个 LLM 调用或操作串联成一个流程。

from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate

llm = ChatOpenAI(
model="deepseek-chat",
openai_api_key="你的Key",
openai_api_base="https://api.deepseek.com"
)

# 创建一个翻译链
prompt = ChatPromptTemplate.from_template("把以下中文翻译成英文:{text}")
chain = prompt | llm

result = chain.invoke({"text": "人工智能改变世界"})
print(result.content)


Memory(记忆):让 AI 记住对话历史
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

memory = ConversationBufferMemory()
conversation = ConversationChain(llm=llm, memory=memory)

conversation.predict(input="我叫小明")
response = conversation.predict(input="我叫什么名字?")
print(response) # AI 会记得你叫小明


Agent(智能体):让 AI 自主决策和调用工具
Agent 能根据用户需求,自主决定调用哪些工具、按什么顺序执行。

02 RAG:让 AI 回答你的私有文档

RAG(检索增强生成)是目前最实用的 LLM 应用模式,让 AI 能回答你上传的文档内容。

RAG 的工作原理
1)把文档切成小块,转成向量存储
2)用户提问时,找出最相关的文档块
3)把相关内容 + 问题一起发给 LLM
4)LLM 基于文档内容回答

安装依赖
pip install langchain-community faiss-cpu pypdf

完整 RAG 示例
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.chains import RetrievalQA

# 1. 加载文档
loader = PyPDFLoader("你的文档.pdf")
docs = loader.load()

# 2. 切分文档
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)

# 3. 创建向量数据库
embeddings = OpenAIEmbeddings(
openai_api_key="你的Key",
openai_api_base="https://api.deepseek.com"
)
vectorstore = FAISS.from_documents(chunks, embeddings)

# 4. 创建问答链
llm = ChatOpenAI(openai_api_key="你的Key", openai_api_base="https://api.deepseek.com")
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())

# 5. 提问
answer = qa_chain.invoke("文档里说了什么?")
print(answer['result'])


实际应用场景
• 公司内部文档问答系统
• 产品手册智能客服
• 个人知识库助手

03 Agent:让 AI 自主完成复杂任务

Agent 是 LangChain 最强大的功能,让 AI 能自主规划步骤、调用工具、完成复杂任务。

Agent 的工作方式
用户说「帮我查一下今天北京天气,然后根据天气推荐穿什么」
Agent 会:
1)决定先调用天气 API
2)拿到天气数据
3)根据数据生成穿衣建议
4)返回最终答案

创建一个带工具的 Agent
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import tool
from langchain import hub

# 定义工具
@tool
def calculate(expression: str) -> str:
"""计算数学表达式,输入数学表达式字符串"""
try:
return str(eval(expression))
except:
return "计算错误"

@tool
def get_weather(city: str) -> str:
"""获取城市天气,输入城市名称"""
# 实际使用时接入真实天气 API
return f"{city}今天晴天,25°C"

# 创建 Agent
tools = [calculate, get_weather]
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 运行
result = agent_executor.invoke({
"input": "北京今天天气怎么样?如果温度超过 20 度,计算一下 25 × 3 是多少"
})
print(result['output'])


verbose=True 的作用
开启后能看到 Agent 的思考过程,方便调试。

04 实战项目:企业知识库问答机器人

把前面学的组合起来,做一个完整的企业知识库问答系统。

项目功能
• 上传多个 PDF 文档(产品手册、FAQ、政策文件)
• 用户用自然语言提问
• AI 基于文档内容回答,并标注来源
• 支持多轮对话(记住上下文)

架构设计
前端(Gradio)→ LangChain RAG → DeepSeek API → 返回答案

用 Gradio 快速做界面
pip install gradio

import gradio as gr

def chat(message, history, api_key):
# 这里接入你的 RAG 链
response = qa_chain.invoke(message)
return response['result']

demo = gr.ChatInterface(
fn=chat,
title="企业知识库助手",
description="上传文档后,用自然语言提问",
additional_inputs=[
gr.Textbox(label="API Key", type="password")
]
)

demo.launch(share=True) # share=True 生成公网链接


部署选项
• 本地运行:python app.py,局域网内可访问
• Hugging Face Spaces:免费部署,全球可访问
• Cloudflare Workers:需要改成纯 JS 实现

这个项目能卖多少钱?
帮企业搭建类似系统:5000-30000 元,取决于复杂度和企业规模。

💡 想要更系统的 AI 学习路线?

去 ganhuo.ai 看完整路线图 →
🐑 小羊助手