LangChain 怎么用?大模型应用开发框架入门

🤖 本文由 AI 辅助生成,编辑团队审核发布 · 内容仅供参考,纠错反馈
AI教程 2026-10-10 0

LangChain 怎么用?大模型应用开发框架入门

能解决什么问题?

如果你直接调用大模型 API,会发现几个痛点:每次都要自己拼接提示词、多轮对话要手动管理历史记录、想让模型查天气或搜资料得自己写一堆逻辑。LangChain 就是把这些重复工作打包成标准组件,让你像搭积木一样组合出聊天机器人、文档问答、智能体等应用。它支持国产大模型如通义千问、智谱 GLM、百度文心等,国内可直连,不用折腾网络。

准备工作

首先,你需要一个国产大模型的 API Key。以智谱 AI 为例,访问其开放平台官网,注册账号并完成实名认证,然后在控制台创建一个 API Key,复制保存。通义千问和百度千帆类似,注册后都能免费领取一定额度。

接着安装 Python 环境(建议 3.8 以上),打开命令行,输入以下命令安装 LangChain 和对应模型库:

pip install langchain langchain-community zhipuai

如果使用通义千问,则安装 dashscope 库。安装完成后,在代码中设置环境变量或直接传入 API Key。注意:不要把 Key 硬编码到代码里,建议用 .env 文件管理。

分步骤实操

步骤 1:跑通第一个对话

新建一个 Python 文件,输入以下代码:

from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import HumanMessage
chat = ChatZhipuAI(model="glm-4", api_key="你的Key")
response = chat.invoke([HumanMessage(content="你好,请介绍一下 LangChain")])
print(response.content)

运行后,你会看到模型返回的介绍。这一步验证了环境配置正确。

步骤 2:使用提示词模板

硬编码提示词不灵活。LangChain 提供 PromptTemplate,让你把变量动态填入。例如:

from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "你是一位{role},用简洁的语言回答。"),
("human", "{question}")
])
chain = prompt | chat
result = chain.invoke({"role": "历史老师", "question": "唐朝有哪些重要发明?"})
print(result.content)

这里用了管道符“|”把提示词和模型串联起来,这就是 LangChain 的核心思想——链(Chain)。

步骤 3:加入记忆功能

多轮对话需要记住上下文。使用 ConversationBufferMemory 或新版 RunnableWithMessageHistory。简单示例:

from langchain_core.runnables.history import RunnableWithMessageHistory
from langchain_community.chat_message_histories import ChatMessageHistory
store = {}
def get_session_history(session_id):
if session_id not in store:
store[session_id] = ChatMessageHistory()
return store[session_id]
with_history = RunnableWithMessageHistory(chain, get_session_history)
config = {"configurable": {"session_id": "user1"}}
print(with_history.invoke({"role":"助手","question":"我叫小明"}, config).content)
print(with_history.invoke({"role":"助手","question":"我叫什么?"}, config).content)

第二次提问时,模型会回答“你叫小明”,说明记忆生效了。

步骤 4:集成工具让模型查天气

LangChain 支持工具调用。定义一个获取天气的函数,用 @tool 装饰器注册:

from langchain_core.tools import tool
@tool
def get_weather(city: str) -> str:
"""查询城市天气"""
return f"{city}今天晴,25度"
tools = [get_weather]
llm_with_tools = chat.bind_tools(tools)
response = llm_with_tools.invoke("北京天气怎么样?")
print(response.tool_calls)

模型会返回一个工具调用请求,你再执行函数并把结果传回模型,就能得到最终答案。

进阶技巧

技巧说明适用场景
输出解析器用 PydanticOutputParser 让模型返回结构化 JSON需要提取字段时
文档加载与分割用 TextLoader 和 RecursiveCharacterTextSplitter 处理长文本构建知识库问答
向量存储接入 Chroma 或 FAISS,实现语义检索RAG 应用
智能体用 create_react_agent 自动选择工具复杂任务自动化
流式输出用 stream 方法逐字返回提升用户体验

常见问题

Q1:一定要用 OpenAI 吗?

不用。LangChain 支持几十种模型,国内推荐智谱 GLM、通义千问、百度文心、讯飞星火等,注册后都能直连,价格也便宜。

Q2:报错“API Key 无效”怎么办?

检查 Key 是否复制完整,是否在环境变量中设置正确。有些平台需要开通对应模型权限,去控制台确认一下。

Q3:LangChain 版本更新快,代码不兼容怎么办?

建议固定版本,如 pip install langchain==0.2.0。关注官方文档的迁移指南,新项目优先使用 LangChain Expression Language(LCEL)写法。

用AI上智库 · 每日精选 AI 工具与实战教程
收藏 AI智库,每天 3 分钟掌握最新 AI 动态;5000+ 人在用的工具库持续更新。
逛逛工具库 →
©️版权声明:若无特殊声明,本站所有文章版权均归AI智库原创和所有,未经许可,任何个人、媒体、网站、团体不得转载、抄袭或以其他方式复制发表本站内容,或在非我站所属的服务器上建立镜像。否则,我站将依法保留追究相关法律责任的权利。

相关文章

发表评论