上一篇我们聊透了智能体框架的核心价值,它就是串起“大脑(LLM)”和“工具”的关键,而LangChain+LangGraph是我们落地实战的首选体系。
但实战的第一步,从来不是急着堆组件,而是先把“地基”打牢:环境搭好、跑通第一个简单Demo,先搞懂LangChain到底能做什么、怎么用,再逐步加东西。毕竟对咱们工程狮来说,能跑起来的代码,才是最实在的入门。
Langchain入门系列1目标
该系列以 Ubuntu 为基础环境,DeepSeek API 为核心 LLM通过 6 篇循序渐进的文章用 LangChain 搭建一个能处理图片 + 语言指令、调用 PS API 修图改图的智能体,我们将按「初始demo-LLM→协调器→知识→工具→记忆→自主决策」的合理顺序逐步迭代,逐步了解各个部件。
这一篇,我们全程实战,不聊玄学,只讲能直接上手的步骤,目标只有一个:从零搭建LangChain基础环境,跑通第一个“文本交互Demo”,为后续添加LLM、工具等组件铺路。
|
第 1 篇 |
构建环境文本交互 Demo |
环境搭建 + 基础文本交互 |
|
第 2 篇 |
集成 LLM 与基础提示工程 |
打通 DeepSeek API 调用 优化 LLM 调用方式,增加提示模板、参数调优 |
|
第 3 篇 |
引入记忆模块(对话上下文) |
实现会话记忆,支持多轮对话上下文理解 |
|
第 4 篇 |
接入工具系统(PS API) |
构建工具调用框架,实现 PS API 基础调用 |
|
第 5 篇 |
知识管理与图片解析 |
接入图片处理能力,构建图片知识索引,关联文本指令与图片内容 |
|
第 6 篇 |
协调器与多工具调度 |
实现协调器(Agent),智能判断何时调用 PS API、何时交互 |
|
第 7 篇 |
自主决策与迭代优化 |
增加自主决策逻辑,支持多次修图确认、迭代修改 |
❗先明确:这一篇我们不做什么?
先划重点,避免大家期待过高或走偏:
1. 不添加LLM(大模型):这一篇只搭LangChain基础环境,不用对接任何大模型,先跑通框架本身的基础逻辑;
2. 不涉及复杂组件:协调器、工具、记忆等,全部先放一放,聚焦“环境搭建+LangChain基础用法”;
3. 不搞理论堆砌:全程围绕Python实操,每一步都给代码、给注释,复制粘贴就能跑(前提是你有基础Python环境)。
✅实战步骤1:搭建LangChain基础环境
咱们用Ubuntu自带的Python3虚拟环境搭建,避免污染本地环境,步骤简单,跟着终端命令敲就行:
# 1. 安装Python3虚拟环境工具(Ubuntu自带pip3,无需额外装pip)
sudo apt update
sudo apt install python3.8-venv python3-pip -y
# 2. 在SLAM工作空间创建虚拟环境(建议放在catkin_ws/src下,便于后续对接ROS)
cd ~/catkin_ws/src
python3 -m venv langchain-slam-env # 命名好记,贴合SLAM场景
# 3. 激活虚拟环境(Ubuntu专属命令,无Windows的Scripts目录)
source langchain-slam-env/bin/activate
# 4. 安装LangChain核心依赖(最新稳定版,适配Ubuntu)
pip3 install langchain==0.1.10
# 安装辅助包(后续会用到,提前装省得麻烦)
pip3 install python-dotenv pyyaml
#### python-dotenv ####
#python-dotenv 是用来从 .env 文件中读取环境变量并加载到 Python 程序中的库。
#环境变量:可以理解为程序的 "配置参数"(比如数据库密码、API 密钥、服务器地址),
#把这些敏感信息写在代码里不安全,单独放在 .env 文件里更规范。
#举个场景:你写的公众号爬虫需要用到公众号的 AppID 和 AppSecret,
#直接写在代码里如果不小心上传到 GitHub 就会泄露,用 python-dotenv 读取 .env 文件里的配置就安全多了。
#### pyyaml ###
#pyyaml 是 Python 操作 YAML 格式文件 的库,
#能实现 YAML 字符串 / 文件和 Python 字典 / 列表的相互转换。
#YAML 是一种简洁的配置文件格式(比 JSON 更易读,比 ini 更灵活),
#常用来写程序的配置文件(比如公众号自动回复的规则、爬虫的参数配置)。
✅实战步骤2:验证环境是否搭建成功
打开Python编辑器(PyCharm、VS Code都行),新建test_langchain.py文件,输入以下代码(适配ubuntu)
# 导入LangChain基础模块
# 该模块用于创建和管理提示词模板的核心组件
from langchain.prompts import PromptTemplate
# 定义一个简单的模板(相当于固定话术框架,贴合SLAM工程师身份)
template = "我是SLAM工程师,正在学习LangChain,\\
我的第一个问题是:{question}"
# 在PromptTemplate中,{}是占位符(变量插值),用于标记动态内容的位置
# 用LangChain的PromptTemplate封装模板
# =左边的template和input_varialbe是固定变量名,不用改;
# []中存放的是template中对应的变量插值名,构成字符列表;
prompt = PromptTemplate(template=template, input_variables=["question"])
# 传入问题,生成最终的提示词
# 给对应变量插值赋值
final_prompt = prompt.format(question="LangChain基础环境搭建成功了吗?")
# 打印结果
print(final_prompt)
运行代码(终端执行:python3 test_langchain.py),如果输出以下内容,说明环境搭建成功:我是SLAM工程师,正在学习LangChain,我的第一个问题是:LangChain基础环境搭建成功了吗?
📖核心知识点:LangChain基础概念
环境跑通了,简单聊两个核心概念,不用记太多,知道是什么就行,后续会反复用:
1. PromptTemplate(提示词模板):就是刚才用到的“固定话术框架”,把重复的内容(比如“我是SLAM工程师”)固定下来,只传入变量(比如不同的问题),减少重复代码——对咱们写工程代码来说,就是提高复用性,省事儿。
补充1:
PromptTemplate 是 LangChain 库中用于标准化、复用提示词(Prompt)的核心类,可以把它理解为「提示词模板生成器」。它的核心作用是:
定义一个包含「固定文本 + 可变参数」的提示词模板;
通过参数填充,快速生成不同的具体提示词,避免重复写相同的提示词框架。
PromptTemplate 的构造函数核心参数有两个(最常用),其他参数可按需使用:
| template |
str |
是 |
提示词模板字符串,用 {变量名} 标记可变参数 |
| input_variables |
list[str] |
是 |
模板中所有可变参数的名称列表,需和 template 中的变量一一对应 |
补充2:
format 方法的核心作用是:给模板中的可变参数填充具体值,生成最终的提示词字符串。
2. Chain(链):LangChain的核心,简单说就是“把多个步骤串起来”。比如后续我们会把“提示词→LLM思考→工具执行”串起来,形成一个完整的流程,这个流程就是Chain。这一篇我们先不用复杂的Chain,只了解概念即可。
🔍本篇小结+下一篇预告
本篇核心:在Ubuntu环境下完成了LangChain基础环境搭建,跑通了第一个无LLM的简单Demo,搞懂了PromptTemplate和Chain的基础用法。
下一篇预告:接入LLM(大模型),给我们的LangChain Demo装上“大脑”!让Demo能真正“思考”并生成回答,逐步靠近完整的智能体。
关注 + 星标,后续从 0 到 1 落地实战。
如果感兴趣,可查看关注并查看合集《AI Agent系列》;
👉本文首发于公众号 【SLAM与AI智能体】。后续我会持续输出 SLAM、AI Agent 相关实战干货,感兴趣的朋友可以关注,一起进步。




