大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步!
开发领域 :前端开发 | AI 应用 | Web3D | 元宇宙
技术栈 :JavaScript、React、ThreeJs、WebGL、Go
经验经验 :6 年+ 前端开发经验,专注于图形渲染和 AI 技术
开源项目 :智简未来、晓智科技、数擎科技
1. LangChain 是什么?
LangChain 是一个开源框架,专为 大语言模型(LLM) 应用程序构建而设计,它简化了与 LLM 的集成流程,提供了强大的链式调用机制、工具集成能力、记忆与上下文管理等。
一句话总结:
LangChain = LLM 的应用层框架,让你更快、更模块化地搭建 AI 应用。
2. 安装依赖
bash
pip install langchain openai
还需要配置 OpenAI API Key:
bash
export OPENAI_API_KEY=sk-xxxxx
或写在 .env 文件中。
3. 构建第一个 LLM 应用
python
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
llm = ChatOpenAI(temperature=0.7)
response = llm([
HumanMessage(content="你好,介绍一下LangChain。")
])
print(response.content)
输出示例:
bash
LangChain 是一个用于构建语言模型驱动应用程序的框架......
4. 、LangChain 的核心架构
LangChain 主要由以下五个模块组成:
模块 | 说明 |
---|---|
LLMs / ChatModels | 接入语言模型(如 OpenAI、Anthropic) |
Prompts | 提示词模板化与输入输出结构化 |
Chains | 将多个步骤按逻辑组合起来(类似工作流) |
Agents | 拥有自主决策能力的执行体(可调用工具) |
Memory | 对话记忆系统,可用于多轮上下文保持 |
这些模块高度解耦,可按需组合,构建你的 LLM 应用。
5 、LangChain Chain 模型详解
Chain 是 LangChain 最核心的能力,它定义了"从用户输入到最终输出"的处理逻辑。
示例:Prompt + LLM = Chain
python
from langchain.prompts import PromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
prompt = PromptTemplate(
input_variables=["product"],
template="为一个{product}写一个创意广告文案。"
)
llm = ChatOpenAI(temperature=0.7)
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.run("AI 眼镜")
print(result)
输出示例:
bash
戴上我们的 AI 眼镜,你不仅能看清世界,还能预见未来!
6.、Memory:对话记忆机制
- LangChain 的 Memory 模块支持不同的上下文保存方式,如:
- ConversationBufferMemory:原始对话串
- ConversationSummaryMemory:对话摘要记忆
- ConversationBufferWindowMemory:窗口型上下文
示例:添加对话记忆
python
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
memory = ConversationBufferMemory()
llm = ChatOpenAI()
conversation = ConversationChain(llm=llm, memory=memory)
conversation.predict(input="你好,我叫tom。")
conversation.predict(input="我今年18岁了。")
conversation.predict(input="我住在上海,你还记得我是谁吗?")
模型会自动带入上下文回答:"你是 tom,18 岁,住在上海。"
7、RAG:检索增强生成(Retrieval-Augmented Generation)
- RAG 是 LangChain 的杀手级特性,允许 LLM 从外部知识库检索内容,并结合生成回答,突破 GPT 无法访问私有数据的问题。
LangChain + FAISS + 文档问答
python
from langchain.vectorstores import FAISS
from langchain.document_loaders import TextLoader
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
# 1. 加载文档并向量化
loader = TextLoader("mydoc.txt")
docs = loader.load()
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
retriever = vectorstore.as_retriever()
# 2. 构建 QA Chain
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(), retriever=retriever
)
qa_chain.run("文档中提到了 LangChain 是做什么的?")
你可以替换向量库为 Pinecone、Weaviate、Chroma 等,支持亿级数据检索
8. Agents:智能体的工作方式
- LangChain Agent 是"具备思考 + 工具调用能力"的智能体。你只需告诉它目标,它会自动选择工具(搜索、计算器、数据库等)执行任务。
示例:使用 ReAct Agent
python
from langchain.agents import load_tools, initialize_agent
from langchain.agents import AgentType
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI()
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
agent.run("北京明天的天气是多少摄氏度,加上今天的日期总和是多少?")
它将自动调用搜索工具查询天气,再调用计算工具完成计算。
9. 总结
- LangChain 的出现标志着从"调用 LLM 接口"进入"构建 LLM 应用框架"的新阶段。
- 它就像 TensorFlow 之于 AI,Spring 之于 Java,提供了 模块化、组合式、可拓展的 AI 应用开发能力。
- 如果你有意向进入 AI 工程、AI 产品开发领域,LangChain 是必备技能。