大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步!
开发领域:前端开发 | AI 应用 | Web3D | 元宇宙
技术栈:JavaScript、React、ThreeJs、WebGL、Go
经验经验:6 年+ 前端开发经验,专注于图形渲染和 AI 技术
开源项目:智简未来、晓智科技、数擎科技
1. LangChain 是什么?
LangChain 是一个开源框架,专为 大语言模型(LLM) 应用程序构建而设计,它简化了与 LLM 的集成流程,提供了强大的链式调用机制、工具集成能力、记忆与上下文管理等。
一句话总结:
LangChain = LLM 的应用层框架,让你更快、更模块化地搭建 AI 应用。
2. 安装依赖
pip install langchain openai
还需要配置 OpenAI API Key:
export OPENAI_API_KEY=sk-xxxxx
或写在 .env 文件中。
3. 构建第一个 LLM 应用
from langchain.chat_models import ChatOpenAIfrom langchain.schema import HumanMessagellm = ChatOpenAI(temperature=0.7)response = llm([ HumanMessage(content="你好,介绍一下LangChain。")])print(response.content)
输出示例:
LangChain 是一个用于构建语言模型驱动应用程序的框架……
4. 、LangChain 的核心架构
LangChain 主要由以下五个模块组成:
模块 | 说明 |
---|---|
LLMs / ChatModels | 接入语言模型(如 OpenAI、Anthropic) |
Prompts | 提示词模板化与输入输出结构化 |
Chains | 将多个步骤按逻辑组合起来(类似工作流) |
Agents | 拥有自主决策能力的执行体(可调用工具) |
Memory | 对话记忆系统,可用于多轮上下文保持 |
这些模块高度解耦,可按需组合,构建你的 LLM 应用。
5 、LangChain Chain 模型详解
Chain 是 LangChain 最核心的能力,它定义了“从用户输入到最终输出”的处理逻辑。
示例:Prompt + LLM = Chain
from langchain.prompts import PromptTemplatefrom langchain.chat_models import ChatOpenAIfrom langchain.chains import LLMChainprompt = PromptTemplate( input_variables=["product"], template="为一个{product}写一个创意广告文案。")llm = ChatOpenAI(temperature=0.7)chain = LLMChain(llm=llm, prompt=prompt)result = chain.run("AI 眼镜")print(result)
输出示例:
戴上我们的 AI 眼镜,你不仅能看清世界,还能预见未来!
6.、Memory:对话记忆机制
- LangChain 的 Memory 模块支持不同的上下文保存方式,如:ConversationBufferMemory:原始对话串ConversationSummaryMemory:对话摘要记忆ConversationBufferWindowMemory:窗口型上下文
示例:添加对话记忆
from langchain.memory import ConversationBufferMemoryfrom langchain.chains import ConversationChainmemory = 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 + 文档问答
from langchain.vectorstores import FAISSfrom langchain.document_loaders import TextLoaderfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.chains import RetrievalQA# 1. 加载文档并向量化loader = TextLoader("mydoc.txt")docs = loader.load()vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())retriever = vectorstore.as_retriever()# 2. 构建 QA Chainqa_chain = RetrievalQA.from_chain_type( llm=ChatOpenAI(), retriever=retriever)qa_chain.run("文档中提到了 LangChain 是做什么的?")
你可以替换向量库为 Pinecone、Weaviate、Chroma 等,支持亿级数据检索
8. Agents:智能体的工作方式
- LangChain Agent 是“具备思考 + 工具调用能力”的智能体。你只需告诉它目标,它会自动选择工具(搜索、计算器、数据库等)执行任务。
示例:使用 ReAct Agent
from langchain.agents import load_tools, initialize_agentfrom langchain.agents import AgentTypefrom langchain.chat_models import ChatOpenAIllm = 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 是必备技能。