LangChain 快速构建你的第一个 LLM 应用

大家好!我是 [数擎 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 是必备技能。
相关推荐
子林super5 分钟前
Selection ES集群6月28日压测报告(7.10与7.6.2压测对比)
前端
码哥DFS7 分钟前
JS进阶-day1 作用域&解构&箭头函数
前端·javascript
月光番茄15 分钟前
基于AI的智能自动化测试系统:从Excel到双平台测试的完整解决方案
前端
凌览18 分钟前
因 GitHub 这个 31k Star 的宝藏仓库,我的开发效率 ×10
前端·javascript·后端
喝西瓜汁的兔叽Yan19 分钟前
小效果--多行文本溢出出现省略号
前端·css
子林super19 分钟前
doris用户连接数被打满问题
前端
GISer_Jing26 分钟前
LLM对话框项目总结II
前端·javascript·node.js
恰薯条的屑海鸥27 分钟前
前端进阶之路-从传统前端到VUE-JS(第五期-路由应用)
前端·javascript·vue.js·学习·前端框架
子林super29 分钟前
TIDB常用命令手册
前端
好青崧30 分钟前
单页面和多页面的区别和优缺点
前端·vue