随着AI的快速发展,Agent已经成为我们学习与工作中不可或缺的存在,为紧跟时代发展,本系列博客我们将来探讨如何快速上手LangChain并快速创建你的第一个简单Agent注意:我们不会过多赘述关于python库的内容,请大家自行下载pip以及相关的AI库
介绍
在正式开始之前,我们需要回答一些问题:什么是LangChain?它可以做什么?
什么是LangChain?它可以做什么?
用一句人话来说就是:LangChain 是一个帮你「把大模型和外部工具/数据串起来」的编排框架。
以询问天气为例:
在引入LangChain之前,我们写了一个llm之后,它没有工具,因此它无法直接去帮你搜索天气,因为llm的训练数据是有截止日期的,它无法给你实时数据,你如果想调用查询天气的工具则需要自己手写一个if-else来判断是否来调用查询天气的工具
而有了LangChain之后,你可以给它定义一个搜索天气的工具,它自己就会去判断需不需要调用这个工具来给你实时答复
LangChain相关概念
那么在知道我们要学习的是什么之后,我们还得了解一下和它相关的概念
Runnable接口
一句人话:Runnable 是 LangChain 里最核心的统一接口,就像一个"通用电源插头"。
只要继承了这个接口就可以调用它的方法:
| 方法 | 作用 | 使用场景 |
|---|---|---|
.invoke(input) |
输入 → 输出 | 普通单次调用 |
.stream(input) |
逐块产出 | 打字机效果 |
.batch([inputs]) |
批量并行 | 多条数据一起处理 |
.astream()/.abatch() |
异步版本 | 异步服务 |
我们举个例子来看一下:
python
from langchain_core.output_parsers import StrOutputParser
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(model="deepseek-v4-flash")
messages = "你是谁?"
print(llm.invoke(messages)) #大模型是Runnable实例,成功调用invoke方法
parser = StrOutputParser()
print(parser.invoke(messages)) #parser是Runnable实例,成功调用invoke方法
运行后我们就可以发现,大模型调用invoke方法后就输出了deepseek关于"你是谁?"这个问题的回答,完成了**输入你是谁 -> 输出deepseek回答**的变化
LCEL
LCEL = LangChain Expression Language(LangChain 表达式语言)
说白了就是:用 | 管道符把不同的 Runnable 组件串起来的一种写法。
python
chain = prompt | model | output_parser
上述就是一个LCEL,表示提示词 -> 调用大模型 -> 输出 这样一个过程,你可以把它理解为大模型编程里的「管道」------左边输出啥,右边就接收啥,一路串下去。
我们可以举个例子:
python
from langchain.chains.question_answering.map_reduce_prompt import messages
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(model="deepseek-v4-flash")
messages = [
HumanMessage("你是谁?")
]
parser = StrOutputParser()
# 没有LCEL的写法
result = llm.invoke(messages)
print(parser.invoke(result))
# 有LCEL的写法
chain = llm | parser
print(chain.invoke(messages))
我们可以发现有了LCEL之后,我们不用再每一步都自己调用一下,只需要把它写成管道,最后再统一调用,非常方便
快速上手
在前面的博客中我们有讲到代码的部分,可能有比较喜欢动手的友友们已经开始尝试过了复刻这些代码,或许或多或少在运行的时候都遇到了一些问题,接下来我们就讲讲如何快速上手成功运行这些代码
申请API KEY
在本篇博客中我们采用的llm是**deepseek-v4-flash** ,在这里我们需要知道的是,无论我们选择使用任何一个llm都必须要先申请它的api,此处我们都是选择使用远程调用的方式,不涉及本地部署,所以我们需要申请API KEY

来到deepseek api官网

创建一个API,自己妥善保存内容,这就是后面我们会用到的API
配置环境变量
申请完API之后我们还要把它配置在环境变量中它才会生效,或者你也可以明文放置在项目文件中,此处我们采用配置环境变量的方式

打开终端zsh版
python
nano ~/.zshrc
输入上述代码,进入环境变量编辑文件

python
export DEEPSEEK_API_KEY="sk-你的实际API密钥"
在这个文件里添加上述语句,将引号中内容替换成刚刚保存的API内容,control + x 退出,按y,再按enter,即配置完成
python
source ~/.zshrc
输入上述代码让配置生效
python
echo $DEEPSEEK_API_KEY
再输入上述代码,看配置是否成功,若输出你申请的API,则表示配置成功
导入所需的库
完成前置工作后,我们就正式进入了代码环节,打开我们的PyCharm,创建好项目后导入我们需要的库
python
pip install langchain langchain-core langchain-community
pip install langchain-openai langchain-deepseek
pip install 'urllib3<2.0'
定义LLM
接下来就可以定义我们的LLM了
python
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(model="deepseek-v4-flash")
定义消息列表
python
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(model="deepseek-v4-flash")
messages = [
SystemMessage("translate the words into Chinese"), # 定义大模型作用定位
HumanMessage("Hello World") # 模拟用户消息
]
定义输出解析器
python
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(model="deepseek-v4-flash")
messages = [
SystemMessage("translate the words into Chinese"), # 定义大模型作用定位
HumanMessage("Hello World") # 模拟用户消息
]
parser = StrOutputParser()
定义管道 | 直接调用
在前面的文章我们讲过,有两种方式,使用LCEL或者不使用,大家可以根据自己的需求来选择如何调用,这里我们选择不使用管道
python
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(model="deepseek-v4-flash")
messages = [
SystemMessage("translate the words into Chinese"), # 定义大模型作用定位
HumanMessage("Hello World") # 模拟用户消息
]
parser = StrOutputParser()
print(parser.invoke(llm.invoke(messages)))
查看结果

我们可以看到,此时我们的大模型就将它翻译成了中文,符合我们给它的定位
-------------------------------------------❤️❤️❤️------------------------------------------
📌 下一篇预告:有了这个大模型基础后,我们会给它装上「工具」,让它可以自己查天气、算数学、搜资料------这就是真正的 Agent。敬请期待!