当前位置: 首页 > news >正文

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 维实向量



写成向量形式:

开方:

为什么需要它

因为我们在高维空间看不见角度,不能画图,所以:

  1. 先代数定义点积:

  1. 再由柯西-施瓦茨得:

这个范围正好是

的值域,所以我们才能合法定义:

柯西-施瓦茨最简证明(配方法)

构造关于实数 t 的二次函数:

展开:

二次函数恒非负 → 判别式 ≤ 0

约掉 4:

就是柯西-施瓦茨不等式。

完整逻辑链(严谨版)
  1. 定义 n 维向量点积:

  1. 用配方法证明 柯西-施瓦茨:

  1. 得到比值落在 [-1,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%免费】🆓

http://www.cnnetsun.cn/news/2513710.html

相关文章:

  • CANN/asc-devkit:half转int32向量计算API
  • Centurion容器部署终极指南:如何配置网络模式与资源限制实现高效Docker集群管理
  • Octopress部署完全攻略:从GitHub Pages到AWS S3的详细步骤
  • 从论文到代码:MemNN项目中EntNet实体网络的实现原理与实践
  • CANN asc-devkit Zn布局创建函数
  • 从零到百万:阿里云OSS SDK如何支撑海量文件存储实战
  • 探索终极德州扑克GTO求解器:实战精通博弈论最优策略
  • iND87501使用指南(随缘更新)
  • Prosopite最佳实践:避免误报的允许列表和忽略查询配置
  • Android-examples 项目路线图:未来发展方向与社区贡献指南
  • 终极3步DLSS版本管理:彻底解决游戏兼容性与性能瓶颈
  • 为什么你的Gemini搜索准确率骤降47%?——基于17万次Query日志的多模态意图理解偏差分析
  • WinUtil:3分钟搞定Windows系统优化和软件安装的终极神器
  • GoogleTranslate_IPFinder高级功能详解:自定义IP段扫描与在线同步服务
  • 后端架构:事件驱动架构设计与实现
  • YOLO_Object_Detection性能优化:10个技巧提升检测速度和准确率
  • 中小团队如何利用taotoken管理多成员api key与用量配额
  • Inno Setup中文翻译深度实战:打造本土化安装体验的技术架构解析
  • Windows 11性能突破:用智能自动化工具Win11Debloat实现系统精简革命
  • 如何在Mac上快速创建Windows启动盘:WinDiskWriter完全指南
  • 项目会议 - 2024年Q2规划
  • Jooby DevOps集成:CI/CD流水线、自动化测试与部署方案
  • 数据库技能大全:Awesome Agent Skills中的MySQL/PostgreSQL/Redis/MongoDB技能详解 [特殊字符]
  • react-tween-state vs 其他React动画库:为什么选择这个轻量级解决方案?
  • ChocolateyGUI 高级用法:自定义源、批量操作与自动化管理终极指南
  • 图解强化学习 |手算DDPG
  • CANN asc-devkit SIMT-API协作组函数
  • 化学工程论文降AI工具免费推荐:2026年化学工程毕业论文AIGC超标免费4.8元达标完整方案
  • 如何用嘎嘎降AI处理机械工程论文:机械工程研究生毕业论文降AI4.8元完整操作教程
  • 终极Dell G15散热控制指南:免费开源神器tcc-g15完全解析