LangChain 是一个功能强大的 AI 框架,专门用于构建基于大语言模型(LLM)的智能应用。它不仅提供了基础的 LLM 调用接口,还通过Prompt 模板、记忆(Memory)、智能代理(Agents)、知识检索(Retrieval等模块,让 AI 具备更强的推理、搜索、执行任务的能力。
Prompt Engineering(提示词工程)是大语言模型(LLM)的核心技术之一。模型的输出完全取决于输入的 Prompt,而 LangChain 通过PromptTemplate 模块提供了动态占位符、变量填充、格式化控制等功能,让提示词更加灵活。
LLM 本质上是一个基于概率的文本生成模型,它会根据输入的文本计算下一个单词的概率。例如,给定输入:
“Python 是一种用于” 模型可能会预测:
1.“数据分析的编程语言。” (概率 80%)
2.“机器学习的强大工具。” (概率 70%)
3.“自动化脚本开发的利器。” (概率 65%)
通过优化 Prompt,我们可以引导 LLM 输出更精准的结果。LangChain 提供的 PromptTemplate 允许开发者将动态变量填充到提示词中,从而适配不同场景。
from langchain.prompts import PromptTemplate
template = PromptTemplate(
input_variables=["product"],
template="请写一篇关于 {product} 的产品介绍,包括功能、特点和适用场景。"
)
formatted_prompt = template.format(product="智能手表")
print(formatted_prompt)
##输出:请写一篇关于智能手表的产品介绍,包括功能、特点和适用场景。
通过 format(product=“智能手表”),LangChain 自动填充变量 {product},生成完整的 Prompt。
LLM(如 GPT-4、Claude、LLaMA)是基于深度学习 Transformer 结构的文本生成模型。LangChain 通过 langchain.llms 模块封装了多个主流 LLM,提供统一的 API 调用接口。
Transformer 模型的工作原理:
from langchain.llms import OpenAI
llm = OpenAI(model_name="gpt-4", temperature=0.7)
response = llm("如何用 Python 进行数据清洗?")
print(response)
默认情况下,LLM 无法记住上下文。Memory 组件让 AI 具备长时记忆能力,适用于多轮对话、客户交互、个性化推荐等。
Memory 通过:
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.save_context({"input": "你好"}, {"output": "你好!有什么我可以帮助的吗?"})
memory.save_context({"input": "你是谁?"}, {"output": "我是一个 AI 助手。"})
print(memory.load_memory_variables({}))
Agent 允许 AI 自主决策、动态调用工具(API、数据库、搜索引擎等),使其具备更强的智能行为。
Agent 采用 ReAct 框架(Reasoning + Acting):
from langchain.agents import initialize_agent
from langchain.tools import Tool
from langchain.llms import OpenAI
llm = OpenAI(model_name="gpt-4")
search_tool = Tool(
name="Search",
func=lambda x: f"搜索 {x} 结果:...",
description="用于查询实时信息。"
)
agent = initialize_agent(
tools=[search_tool],
llm=llm,
agent="zero-shot-react-description",
verbose=True
)
response = agent.run("2024 年 AI 发展趋势")
print(response)
应用背景
传统客服系统基于关键词匹配和规则引擎,难以处理复杂问答。而 LangChain 结合 LLM 和 Memory 组件,使智能客服具备长期记忆、上下文理解和动态决策能力,从而提供更自然的交互体验。
应用方式
假设某电商平台希望通过 AI 提供产品咨询、订单查询和售后服务,LangChain 可通过以下方式实现:
from langchain.memory import ConversationBufferMemory
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
# 初始化记忆组件
memory = ConversationBufferMemory()
# 定义 Prompt 模板
prompt = PromptTemplate(
input_variables=["query"],
template="客户问题:{query}\n请基于产品知识库回答,确保信息准确。"
)
# LLM 调用
llm = OpenAI(model_name="gpt-4")
chain = LLMChain(llm=llm, prompt=prompt, memory=memory)
# 模拟客户对话
query1 = "我想买一台 iPhone 15,能介绍一下吗?"
query2 = "iPhone 15 和 iPhone 14 有什么区别?"
response1 = chain.run(query1)
response2 = chain.run(query2)
print(response1)
print(response2)
输出:iPhone 15 采用 A16 仿生芯片,搭载 48MP 主摄,支持 Dynamic Island 交互,比 iPhone 14 更省电。
优化点:
在医疗咨询场景中,LangChain 可以:
实例对话:
用户:我最近持续咳嗽,还有点发烧,可能是什么问题?
AI:根据你的症状,你可能感染了呼吸道疾病,例如流感或肺炎。建议尽快就医,避免症状加重。
优化点:
某律所希望用 AI 搜索相关法律条款和判例,LangChain 可帮助:
from langchain.document_loaders import PyPDFLoader
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
# 加载 PDF 法律文件
loader = PyPDFLoader("civil_law.pdf")
docs = loader.load()
# 生成向量索引
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
# 创建检索增强问答系统
qa_chain = RetrievalQA.from_chain_type(
llm=OpenAI(model_name="gpt-4"), retriever=vectorstore.as_retriever()
)
query = "劳动合同法对公司解雇员工的要求是什么?"
response = qa_chain.run(query)
print(response)
输出:根据《劳动合同法》第 41 条,公司裁员需提前 30 天通知员工,并提供相应补偿。
优化点:
应用背景
开发者经常需要搜索代码示例、优化代码结构、自动补全代码,LangChain 可结合 LLM 提供智能编码建议,提高开发效率。
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
template = PromptTemplate(
input_variables=["task"],
template="请用 Python 实现:{task}"
)
llm = OpenAI(model_name="gpt-4")
response = llm(template.format(task="一个快排算法"))
print(response)
##输出
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
LangChain 通过记忆、检索、智能代理、知识增强等能力,让 AI 在智能客服、文档检索、任务自动化、代码助手等场景得到广泛应用。未来,LangChain 还可以结合语音识别、强化学习、情感分析等技术,构建更强大的 AI 解决方案。