LangChain经典例子

如果你想学习 LangChain,最经典的例子通常都是围绕 LLM + Prompt + Memory + RAG + Agent + Tools 这几个核心概念展开。下面按照入门到进阶列出一些最经典的示例(Python)。


1. Hello World(Prompt + LLM)

最简单的 LangChain 程序。

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

llm = ChatOpenAI(model="gpt-4.1")

response = llm.invoke([
    HumanMessage(content="介绍一下 LangChain")
])

print(response.content)

这是最基础的:

User
   ↓
LLM
   ↓
Answer

2. PromptTemplate

Prompt 不写死,而是模板化。

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(
    "请用一句话介绍 {topic}"
)

chain = prompt | llm

print(chain.invoke({"topic": "机器学习"}).content)

LangChain 最经典的设计就是:

Prompt
   │
   ▼
Model

利用 | 运算符组成 LCEL(LangChain Expression Language)。


3. Output Parser

让模型返回固定格式。

from langchain_core.output_parsers import StrOutputParser

chain = (
    prompt
    | llm
    | StrOutputParser()
)

result = chain.invoke({"topic": "Python"})
print(result)

Parser 可以解析:

  • 字符串

  • JSON

  • Pydantic

  • List

例如:

Prompt
   ↓
LLM
   ↓
Parser

4. Sequential Chain(流水线)

多个步骤连接。

from langchain_core.prompts import ChatPromptTemplate

summary_prompt = ChatPromptTemplate.from_template(
    "总结下面内容:{text}"
)

translate_prompt = ChatPromptTemplate.from_template(
    "把下面内容翻译成中文:{text}"
)

summary_chain = summary_prompt | llm | StrOutputParser()
translate_chain = translate_prompt | llm | StrOutputParser()

summary = summary_chain.invoke({"text": article})
result = translate_chain.invoke({"text": summary})

print(result)

流程:

Article
   ↓
Summary
   ↓
Translate

5. RAG(最经典)

这是目前 LangChain 使用最多的例子。

步骤:

PDF
 ↓
Split
 ↓
Embedding
 ↓
Vector Store
 ↓
Retriever
 ↓
LLM

代码示例:

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

vectorstore = Chroma(
    persist_directory="./db",
    embedding_function=OpenAIEmbeddings()
)

retriever = vectorstore.as_retriever()

docs = retriever.invoke("LangChain 是什么?")

再接入 LLM:

from langchain.chains import RetrievalQA

qa = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=retriever
)

qa.invoke("LangChain 是什么?")

这是所有 AI ChatPDF 的基本原理。


6. Memory(聊天机器人)

from langchain.memory import ConversationBufferMemory

例如:

User:
我叫Tom

↓

Memory 保存

↓

User:
我叫什么?

↓

LLM 可以回答:
你叫 Tom。

Memory 的作用就是:

历史聊天
      │
      ▼
Prompt
      │
      ▼
LLM

7. Tool Calling

给模型调用工具。

例如:

from langchain_core.tools import tool

@tool
def multiply(a: int, b: int):
    """Multiply two numbers."""
    return a * b

然后绑定:

llm_with_tools = llm.bind_tools([multiply])

模型会输出:

Call Tool:
multiply(3,5)

工具执行:

15

再返回模型。


8. Agent(最经典)

Agent 可以自己决定什么时候调用工具。

User
   │
   ▼
 Agent
   │
 ┌─┴────────────┐
 │              │
Google      Calculator
 │              │
 └──────┬───────┘
        ▼
      LLM

例如:

agent.invoke({
    "input": "北京现在天气怎么样?"
})

Agent 会:

  1. 判断需要天气

  2. 调用天气 API

  3. 获取结果

  4. 总结回答


9. SQL Agent

连接数据库。

User
 ↓
Agent
 ↓
SQL
 ↓
Database
 ↓
Answer

例如:

数据库有:

users

orders

products

用户:

销量最高的商品是什么?

Agent 自动生成:

SELECT ...

执行 SQL 后返回结果。


10. 多 Agent

例如:

             Boss Agent
                 │
     ┌───────────┼────────────┐
     ▼           ▼            ▼
 Search      Coding      Writing
 Agent        Agent       Agent

每个 Agent 擅长不同任务。


LangChain 最经典的整体架构

                User
                  │
                  ▼
              PromptTemplate
                  │
                  ▼
                ChatModel
                  │
        ┌─────────┴─────────┐
        ▼                   ▼
     OutputParser        Tool Calling
                              │
                              ▼
                         Search / DB / API
                              │
                              ▼
                             LLM
                              │
                              ▼
                           Response

如果加入 RAG:

             Documents
                 │
             Text Splitter
                 │
             Embedding
                 │
             Vector Store
                 │
             Retriever
                 │
                 ▼
PromptTemplate → LLM → Output

学习路线建议

如果你是第一次接触 LangChain,建议按下面顺序练习:

  1. LLM 调用:学会 ChatOpenAIinvoke()

  2. PromptTemplate:掌握模板化提示词

  3. LCEL:使用 | 将 Prompt、模型、解析器组合成链

  4. OutputParser:解析字符串、JSON、结构化输出

  5. RAG:文档加载、切分、Embedding、向量检索、问答

  6. Tool Calling:让模型调用自定义函数或外部 API

  7. Agent:构建能自主选择工具完成复杂任务的智能体

  8. LangGraph:当流程需要状态管理、分支、循环或多智能体协作时,进一步学习基于图的编排框架。

其中,RAG + Tool Calling + Agent(或更现代的 LangGraph) 是目前生产环境中最常见、也是最值得深入掌握的能力。

posted @ 2026-07-01 18:47  jerry-mengjie  阅读(10)  评论(0)    收藏  举报