第01章:LangChain 1.2 概述(下)

4.2 相关环境安装

4.2.1 代码管理方案

相较于 全局环境(系统环境) ,各个 虚拟环境 都有自己独立的一套:Python 解释器、pip 命令、第 三方依赖包,不和其它项目产生干扰。

虚拟环境的设置方案:

方案1-使用conda:适合"Python + 非 Python 依赖"的复杂环境

conda 不只是 Python 包管理工具,它还可以管理 Python 解释器、Python 包,以及很多非 Python 依 赖,比如: CUDA、编译器、系统库、数据库驱动、科学计算底层库 等非 Python 依赖。

因此在数据科学、深度学习、AI 工程、科学计算等场景中,conda 更稳妥、优先推荐。 注意:conda 环境中可以使用 pip,但建议先用 conda 装底层依赖,再用 pip 补充 Python 包,不要 随意反复交替使用。

方案2-使用uv:适合"纯 Python 项目"的现代包管理

uv 是一个现代 Python 包管理工具,主要 管理 Python 生态依赖 ,不能像 conda 那样管理 CUDA、系 统级数据库驱动、编译器这类通用非 Python 依赖。 如果项目主要是普通 Python 开发,这类项目通常可以优先考虑 uv。例如:

复制代码
FastAPI 项目
LangChain 项目
脚本工具
Web 后端
普通 AI Agent 应用
RAG 应用层代码

方案3-使用venv:Python 自带的轻量级虚拟环境工具

venv 是 Python 官方自带的虚拟环境工具,不需要额外安装。 它的特点是简单、轻量:

复制代码
1 python -m venv .venv

注意: venv 不负责安装新的 Python 解释器,只能基于当前已经安装好的 Python 解释器创建虚拟环 境。同时,venv 也不负责管理 CUDA、系统库等非 Python 依赖。

三者对比:

普通 Python 项目:可以用 uv,速度快,体验好。

4.2.2 安装虚拟环境与Python解释器

LangChain基于Python开发,因此需确保系统中安装了Python解释器,我们在创建虚拟环境过程中安装 Python解释器。

LangChain 1.2版本要求Python版本为 3.10+以上 ,这里我们使用 python3.13.12 版本。 注意:如下包的安装,必须显式指明版本,否则可能会出现不兼容情况。

1、创建conda环境:

复制代码
#创建一个名为langchain1.2的环境,指定Python版本是3.13.12
conda create --name langchain1.2 python=3.13.12
#查看anconda安装好的python环境
conda env list
#初始化虚拟环境 (执行完此指令,重新启动命令行窗口)
conda init
#在命令行窗口切换到某python环境
conda activate langchain1.2
#验证python版本
(langchain1.2) C:\Users\shkstart>python -V
#或 调用:python --version
#输出:Python 3.12.13

2. 退出/删除conda环境:

复制代码
#在命令行退出当前python环境
(langchain1.2) C:\Users\shkst>conda deactivate
#删除一个已有的anconda管理的python环境
conda remove --name langchain1.2 --all

4.2.3 下载langchain安装包

方式1:使用conda指令 (推荐)

复制代码
# 安装指定版本。比如1.2.2
conda install langchain==1.2.12
# 或者安装最新版(默认仓库)
conda install langchain
# 指定频道(如 conda-forge)
conda install -c conda-forge langchain==1.2.12
# 更新包
conda update langchain
# 卸载包
conda uninstall langchain
# 查看已安装包
conda list

conda 包通常来自 defaults 或 conda-forge。

-c :是 --channel 的缩写,conda用于指定包的安装来源渠道。

conda-forge :该源比官方默认渠道更新更快、包更全

方式2:使用pip指令

复制代码
# 安装指定版本
pip install langchain==1.2.12
#安装最新版(不推荐):pip install langchain
# 使用指定源:国内镜像加速 (解决下载慢) -i:指定镜像源
pip install langchain==1.2.12 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 从旧版本升级到新版本
pip install --upgrade langchain
#或者 pip install -U langchain==1.2.12
# 卸载包
pip uninstall langchain
# 查看已安装包
pip list

建议:优先 conda install,conda没有,再用pip install。

二者区别:

conda依赖检查严格,pip相对宽松;

conda 管环境 + 依赖 + 稳定性,pip 只管Python 包;

conda:支持Python 包 + 非 Python 包;pip:只支持 Python 包。

复制代码
# 检查包来源
conda list # Conda 安装的包显示频道,pip 安装的显示 `pypi`

4.2.4 PyCharm开发环境

PyCharm作为专业的Python IDE,具有强大的代码编辑、调试和版本控制功能。

Other Versions - PyCharm

创建新的工程,并设置Python解释器(选择Anaconda环境)。

复制代码
import langchain
print(langchain.__version__)

5、大模型应用场景介绍

大模型应用技术特点:门槛低,天花板高

5.1 RAG开发

1)背景

大模型的知识冻结 :随着 LLM 规模扩大,训练成本与周期相应增加,模型 无法实时学习 到最新的信 息或动态变化。导致 LLM 难以应对诸如"请推荐现在的热门影片"等时间敏感的问题。

大模型幻觉 :涉及到大模型从未在训练过程中学习过的信息时,大模型无法给出准确的答复,转而开 始臆想和编造答案。

2)举例

LLM在考试的时候面对陌生的领域,答复能力有限,然后就准备放飞自我了,而此时RAG给了一些提示 和思路,让LLM懂了开始往这个提示的方向做,最终考试的正确率从60%到了90%!

3)何为RAG?

Retrieval-Augmented Generation(检索增强生成)

检索-增强-生成过程:检索可以理解为第10步,增强理解为第13步(这里的提示词包含检索到的数 据),生成理解为第15步。

这些过程中的难点:1、文件解析 2、文件切割 3、知识检索 4、知识重排序

1、文件解析:如果是pdf,内部包含文件、图片、表格,图片上还有文字,需要处理。

2、文件切割:没有固定的格式

3、在 RAG 应用中,随着文档数量增加,召回准确率会下降,引入reranker(重排器)可对初步 召回的较多 chunk(如 top 20 或 top 50)进行精排,提高召回准确率,防止LLM 处理无关信 息,减少时间和成本。

此外,与基于基本矢量搜索的 RAG 相比,reranker增强型 RAG 的成本更高,但与仅依靠LLM 生 成答案相比,它的成本低些。

Reranker的使用场景:

适合:追求 回答高精度 和 高相关性 的场景中特别适合使用 Reranker,例如专业知识库或者客服 系统等应用。

不适合:引入reranker会增加召回时间,增加检索延迟。服务对 响应时间要求高 时,使用 reranker可能不合适。

5.2 Agent开发

充分利用 LLM 的推理决策能力,通过增加规划、记忆和工具调用的能力,构造一个能够独立思考、逐步 完成给定目标的 Agent(智能体)。

类比举例:

OpenAI的元老翁丽莲(Lilian Weng)于2023年6月在个人博客(https://lilianweng.github.io/posts/2023 -06-23-agent/)首次提出了现代AI Agent架构。

一个数学公式来表示:

Agent = LLM + Planning + Tools + Memory + Action

比如,打车到西藏玩。

大脑中枢:规划行程的你

规划:步骤1:规划打车路线,步骤2:订饭店、酒店,。。。

调用工具:调用MCP或FunctionCalling等API,滴滴打车、携程、美团订酒店饭店

记忆能力:沟通时,要知道上下文。比如订酒店得知道是西藏路上的酒店,不能聊着聊着忘了最初 的目的。

能够执行上述操作。说走就走,不能纸上谈兵。

智能体核心要素被细化为以下模块:

1、大模型(LLM)作为"大脑":

提供推理、规划和知识理解能力,是AI Agent的决策中枢。

大脑主要由一个大型语言模型 LLM 组成,承担着信息处理和决策等功能, 并可以呈现推理和规划 的过程,能很好地应对未知任务。

2、规划决策(Planning):

通过任务分解、反思与自省框架实现复杂任务处理。例如,利用思维链 (Chain of Thought)将目标拆解为子任务,并通过反馈优化策略

3、工具使用(Tool Use):

调用外部工具(如API、数据库)扩展能力边界。

4、记忆(Memory)

智能体像人类一样,能留存学到的知识以及交互习惯等,这样的机制能让智能体在处理重复工作时 调用以前的经验,从而避免用户进行大量重复交互。

短期记忆:存储单次对话周期的上下文信息,属于临时信息存储机制。受限于模型的上下文窗口长 度。

ChatGPT:支持约8k token的上下文

GPT4:支持约32k token的上下文

最新的很多大模型:OpenAI GPT‐5.5 / GPT‐5.4 Pro支持100 万 Token(1M)、Anthropic Claude Opus 4.7支持200 万 Token、DeepSeek‐V4‐Pro支持100 万 Token、甚至有模型支 持1000万 token的上下文 (相当于2000万字文本或20小时视频)

5. 长期记忆:

可以 横跨多个会话或时间周期 ,可存储并调用核心知识,非即时任务。 比如,关于用户的偏好,过去执行过的指令等。 长期记忆,可以通过 模型参数微调(固化知识) 、 知识图谱(结构化语义网络) 或 向量数 据库(相似性检索) 方式实现。

5、行动(Action):

实际执行决策的模块,涵盖软件接口操作(如自动订票)和物理交互(如机器人 执行搬运)。比如:检索、推理、编程等。

5.3 大模型应用开发的4个场景

场景1:纯 Prompt Prompt

是操作大模型的唯一接口

当人看:你说一句,ta回一句,你再说一句,ta再回一句...

场景2:Agent + Function Calling

Agent:AI 主动提要求

Function Calling:需要对接外部系统时,AI 要求执行某个函数

当人看:你问 ta「我明天去杭州出差,要带伞吗?」,ta 让你先看天气预报,你看了告诉ta,ta 再告诉你要不要带伞

场景3:RAG (Retrieval-Augmented Generation)

RAG:需要补充领域知识时使用

  • Embeddings:把文字转换为更易于相似度计算的编码。这种编码叫向量
  • 向量数据库:把向量存起来,方便查找
  • 向量搜索:根据输入向量,找到最相似的向量

举例:考试答题时,到书上找相关内容,再结合题目组成答案

这个在智能客服上用的最广泛。

场景4:Fine-tuning(精调/微调)

举例:努力学习考试内容,长期记住,活学活用。

特点:成本最高;在前面的方式解决不了问题的情况下,再使用

如何选择相关技术

面对一个需求,如何开始,如何选择技术方案?下面是个常用思路: