Langchain环境搭建和RAG简介
LangChain是一个围绕大语言模型(LLMs)构建的框架,旨在简化LLMs应用的开发。它提供通用接口,将LLMs相关组件“链接”在一起,降低开发难度。主要功能包括优化提示词、调用模型、管理会话历史、文档索引和智能体构建。文章还介绍了如何部署LangChain,包括安装命令和环境配置。此外,文章深入探讨了RAG(检索增强生成)技术,这是一种利用外部文档提升生成结果质量的方法,通过索引、检索和生成三个阶段实现。向量嵌入和余弦相似度等技术在RAG中发挥关键作用,帮助提高语义匹配的效率和精度。
Langchain简介
LangChain由Harrison Chase创建于2022年10月,它是围绕LLMs(大语言模型)建立的一个框架。
LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLms相关的组件“链接”在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用。
Langchain是一个开发LLM相关业务功能的集大成者,是一个Python的第三方库,提供了各种功能的API。
主要功能
- Prompts:优化提示词(提示词工程)
- Model:调用各类模型
- History:管理会话历史记录
- Indexes:管理和分析各类文档
- Chains:构建功能的执行链条
- Agent:构建智能体
环境部署
安装命令
pip install langchain langchain-community langchain-ollama dashscope chromadb -i https://pypi.tuna.tsinghua.edu.cn/simple- langchain:核心包
- langchain-community:社区支持包,提供了更多的第三方模型调用
- langchain-ollama:Ollama支持包,支持调用Ollama托管部署的本地模型
- dashscope:阿里云通义千问的Python SDK
- chromadb:轻量向量数据库
云服务器安装完有个警告,ai说建议用虚拟环境
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv跟着ai回答解决一下,先删除装过的
pip uninstall -y langchain langchain-community langchain-ollama dashscope chromadb创建虚拟环境
python3 -m venv myenv提示有个python3-venv包没有
The virtual environment was not created successfully because ensurepip is notavailable. On Debian/Ubuntu systems, you need to install the python3-venvpackage using the following command.装上python3-venv
apt install -y python3-venv进入虚拟环境
python3 -m venv myenvsource myenv/bin/activate前面有个myenv就表示是虚拟环境了
(myenv) root@VM-0-11-ubuntu:~#重新安装
pip install langchain langchain-community langchain-ollama dashscope chromadb -i https://pypi.tuna.tsinghua.edu.cn/simple好了,没告警了,验证是否成功。
(myenv) root@VM-0-11-ubuntu:~# python3Python 3.10.12 (main, Mar 3 2026, 11:56:32) [GCC 11.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import langchain>>>RAG介绍
通用的大模型存在一些问题:
- LLM的知识不是实时的,模型训练好后不具备自动更新知识的能力,会导致部分信息滞后
- LLM领域知识是缺乏的,大模型的知识来源于训练数据,这些数据主要来自公开的互联网与开源数据集,无法覆盖特定领域或高度专业化的内部知识
- 幻觉问题,LLM有时会在回答中生成看似合理但实际上是错误的信息
- 数据安全性
RAG全称Retrieval Augmented Generation,简称检索增强生成技术,利用检索外部文档提升生成结果质量。为大模型提供了从特定数据源检索到的信息,一次来修正和补充生成的答案。可以总结为一个公式:
RAG工作原理
RAG工作分为两条线,离线工作线和在线工作线,离线流程加载私有文档、分隔、向量化后存入向量库。在线流程用户提问时检索向量库,生成优化的提示词再向大模型提问。
RAG标准流程
RAG标准流程由索引(Indexing)、检索(Retriever)和生成(Generation)三个核心阶段组成:
索引阶段,通过处理多种来源、多种格式的文档提取其中文本,将其切分为标准长度的文本块(Chunk),并进行嵌入向量化(embedding),向量存储在向量数据库中(vector database)中
- 加载文件
- 内容提取
- 文本切割,形成chunk
- 文本向量化
- 存向量数据库
检索阶段,用户输入的查询(query)被转化为向量表示,通过相似度匹配从向量数据库中检索出最相关的文档
- query向量化
- 在文本向量中匹配出与问句向量相似的向量
生成阶段,检索到的相关文本与原始查询共同构成提示词(Prompt),输入大语言模型(LLM),生成精确且具备上下文关联的回答
- 匹配出的文本作为上下文和问题一起添加到prompt中
- 提交给LLM生成答案
关于向量
文本嵌入模型(如text-embedding-v1)通过深度学习技术,从文本提取语义特征并映射为固定长度的数字序列。
向量嵌入的过程,一般选择合适的文本嵌入模型来完成。
在向量匹配的过程中,如何识别2段文本是否表示相似的含义,主要可以通过如余弦相似度等算法来完成。由此可通过精确的数学计算,去匹配两段文本是否是同一个意思,提高语义匹配的效率和精度。
如何更为精准的完成语义匹配,生成向量的维度是一个很重要的特征。如text-embedding-v1模型,可以生成1536维的向量(一段固定文本得到1536个数字序列),比较实用。
- 1536个数字表示,这段文本在1536个主题(抽象的语义特征)上的得分
- 生成的向量的维度越多,就更好的记录文本的语义特征,做语义匹配会更加精准
- 更多的向量会在计算、存储和匹配过程中,带来更大的压力。
选择合适的向量维度需要在精确和性能之间做平衡。
余弦相似度
向量的数字序列,共同决定了向量在高维空间中的方向和长度。而余弦相似度主要就是撇除长度的影响,得到方向的夹角。夹角越小越相似,即方向相同。
余弦相似度=两个向量的点积➗️两个向量模长的乘积
点积公式推导
假设向量a的坐标是(x1, y1),向量b的坐标是(x2, y2),那么有
代入就有
已知点积的计算公式是
a的模长和b的模长的计算公式是
整理有
和差角公式使用余弦定理推的,余弦定理是根据勾股定理:a^2 + b^2 = c^2和c*sinθ = a推导的。画个三角形,从一个点作垂线,把三角形划分成两个直角三角形,把其中一个直角三角形的两边用a、b、c以及sinθ或者cosθ表示,再用勾股定理就能推出来。
常用的三角函数公式
一、基本定义
二、同角基本关系
平方关系
三、诱导公式(常用)
四、和差角公式
五、二倍角公式
六、降幂公式
七、辅助角公式
八、正弦定理 & 余弦定理
正弦定理
余弦定理
九、向量夹角(余弦公式)
高纬点积公式推导
欧几里得空间
下
两个角度的“点积”
在几何中,两个向量的点积原始定义是:
其中:
- \mathbf{a},\mathbf{b} 为 n 维向量
- |\mathbf{a}|,|\mathbf{b}| 为模长
- \theta 为两向量夹角
而坐标下的计算公式是:
下面推导:为什么这两个式子等价。
从余弦定理出发
对由
构成的三角形,由余弦定理:
移项得到几何点积:
展开模长(坐标定义)
设
模长定义:
差向量:
模长平方:
代入余弦定理变形公式
最终结论
几何定义与坐标定义完全一致:
因此高维夹角公式自然成立:
整条逻辑链
- 勾股定理
- → 余弦定理
- → 二维点积几何定义
- → 推广到 n 维坐标展开
- → 高维点积公式
- → 向量余弦相似度
高纬点积严谨推导
柯西-施瓦茨不等式与高维点积公式推导,这俺就看不懂了,先贴出来以后看吧
柯西-施瓦茨不等式(Cauchy–Schwarz)
对任意 n 维实向量
有
写成向量形式:
开方:
为什么需要它
因为我们在高维空间看不见角度,不能画图,所以:
- 先代数定义点积:
- 再由柯西-施瓦茨得:
这个范围正好是
的值域,所以我们才能合法定义:
柯西-施瓦茨最简证明(配方法)
构造关于实数 t 的二次函数:
展开:
二次函数恒非负 → 判别式 ≤ 0
约掉 4:
就是柯西-施瓦茨不等式。
完整逻辑链(严谨版)
- 定义 n 维向量点积:
- 用配方法证明 柯西-施瓦茨:
- 得到比值落在 [-1,1]:
- 定义该比值为夹角余弦:
两个证明区分
- 几何版:从余弦定理推,直观好懂,但只适合低维。
- 柯西版:纯代数证明,高维严格成立,是现代线性代数的标准做法。
最后唠两句
为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选
很简单,这些岗位缺人且高薪
智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。
AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。
那0基础普通人如何学习大模型 ?
深耕科技一线十二载,亲历技术浪潮变迁。我见证那些率先拥抱AI的同行,如何建立起效率与薪资的代际优势。如今,我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理,分享于此,为你扫清学习困惑,共赴AI时代新程。
我整理出这套 AI 大模型突围资料包【允许白嫖】:
- ✅从入门到精通的全套视频教程
- ✅AI大模型学习路线图(0基础到项目实战仅需90天)
- ✅大模型书籍与技术文档PDF
- ✅各大厂大模型面试题目详解
- ✅640套AI大模型报告合集
- ✅大模型入门实战训练
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
①从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(0基础到项目实战仅需90天)
全过程AI大模型学习路线
③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的
④各大厂大模型面试题目详解
⑤640套AI大模型报告合集
⑥大模型入门实战训练
如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
