【RAG 框架部署】LangChain-Chatchat (原 Langchain-ChatGLM) + Ollama

目录

前言

一、什么是RAG?

二、环境准备和Ollama搭建

1、conda虚拟环境配置

2、Ollama搭建

三、LangChain-Chatchat搭建

1、框架安装 

2、文件配置 

3、初始化知识库

4、启动Langchan-Chatchat


前言

        由于LangChain-Chatchat的 0.3.0 版本已修改为支持不同模型部署框架接入,因此可在 CPU、GPU、NPU、MPS 等不同硬件条件下使用。本文用机位轻薄本,仅核显。

一、什么是RAG?

        所谓RAG即Retrieval-Augmented Generation,检索增强生成。简言之就是检索、增强、生成,主要用于在大规模外部知识库(如文档库、网页、数据库等)中查找相关内容,并将这些检索到的信息作为上下文,输入给生成式模型,以获得更准确、丰富且可控的生成结果。

二、环境准备和Ollama搭建

1、conda虚拟环境配置

        具体安装配置步骤参考YOLO系列环境配置及训练-CSDN博客 

下载配置完成之后,我们进入Anaconda Prompt,同时利用如下命令创建虚拟环境Langchain:

        

conda create -n Langchain python=3.9

注意:Langchain-Chatchat已支持在Python 3.8-3.11 环境中进行使用,所以版本可以自己选择 

2、Ollama搭建

        我们进入Ollama的github项目界面,下拉找到需要的版本点击即可下载,例如我的是windows

安装完成之后,Ollama会出现在电脑右下角的图标中,为标志羊驼,之后我们以管理员身份运行cmd

 

 接下来我们需要安装Ollma必要的模型quentinz/bge-large-zh-v1.5 和 bge-m3,其中quentinz/bge-large-zh-v1.5 主要支持中文,bge-m3则支持支持 100 多种工作语言。地址为:library

 两个模型的下载命令分别为:

ollama pull bge-m3
ollama pull quentinz/bge-large-zh-v1.5

回到刚才以“管理员身份运行”打开的cmd,进行模型拉取,出现如下输出视为成功:

三、LangChain-Chatchat搭建

         完成上述环境配置后,我们开始搭建LangChain-Chatchat。LangChain-Chatchat的git仓库地址为:chatchat-space/Langchain-Chatchat: Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain

1、框架安装 

 首先激活本文开始前创建的虚拟环境Langchain,之后将路径cd至你自己选择的一个目录:

conda activate Langchain

接着安装 Langchain-Chatchat

pip install langchain-chatchat -Upip install httpx==0.27.2 -U

注意: 重新安装对应的httpx是为了防止报错 [BUG] httpx包版本错误 · Issue #5115 · chatchat-space/Langchain-Chatchat

设置 Langchain-Chatchat 存储配置文件和数据文件的根目录(可选),不选的话就是默认存在当前路径:

set CHATCHAT_ROOT=/Langchain

执行如下命令初始化,出现如下输出视为成功:

chatchat init

2、文件配置 

找到刚才初始化存放文件的位置,例如我的为D:\Langchain,找到model_settings.yaml

我们先设置DEFAULT_LLM_MODELDEFAULT_EMBEDDING_MODEL,本文使用deepseek的R1模型API进行配置

 找到 platform_type并启用,修改它的值:

 找到MODEL_PLATFORMS,修改它的auto_detect_model参数,设置为false,并配置embed_models

下拉文件,找到openai,修改api_base_url、api_keyllm_models:

 api_key为你自己申请的deepseek的密钥,具体申请路径如下:进入官网右上角API平台

 所有配置完成后,保存并关闭model_settings.yaml

3、初始化知识库

回到虚拟环境Langchain的命令行操作界面,执行

chatchat kb -r

等待一段时间后,出现如下界面视为成功:
 4、启动Langchan-Chatchat

在当前命令行继续执行如下命令:

chatchat start -a

你的默认浏览器会打开如下界面,若出现如下界面视为成功:

测试下对话功能 

之后也可以在“知识库管理”上传需要的知识库进行补充 至此,RAG的框架就已经基本搭建完毕了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/77958.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/77958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python对接马来西亚股票完整代码

StockTV全球股票数据API对接实战:构建智能金融分析系统 一、StockTV API核心功能解析 StockTV作为覆盖200国家证券市场的数据平台,其API提供三大核心模块的对接能力: 市场列表查询 - 获取指定国家的股票基础数据个股详情检索 - 查询实时行情…

普通IT的股票交易成长史--20250430晚

声明:本文章的内容只是自己学习的总结,不构成投资建议。文中观点基本来自yt站Andylee,美股Alpha姐,综合自己的观点得出。感谢他们的无私分享。 送给自己的话: 仓位就是生命,绝对不能满仓!&…

windows 下 oracle 数据库的备份与还原

1、备份 创建备份出来的文件存放的位置。 创建目录对象,在数据库中创建一个目录对象,该对象指向文件系统中用于存储导出文件的实际目录( sql 命令,可以在 plsql 中执行)。 -- 创建目录对象,\D:\Oracle19c\…

基于单片机的智能药盒系统

标题:基于单片机的智能药盒系统 内容:1.摘要 本文聚焦于基于单片机的智能药盒系统。背景方面,随着人口老龄化加剧,老年人按时准确服药问题愈发凸显,同时现代快节奏生活也使人们容易遗忘服药时间。目的是设计并实现一个能帮助人们按时、按量服…

“100% 成功的 PyTorch CUDA GPU 支持” 安装攻略

#工作记录 一、总述 在深度学习领域,PyTorch 凭借其灵活性和强大的功能,成为了众多开发者和研究者的首选框架。而 CUDA GPU 支持能够显著加速 PyTorch 的计算过程,大幅提升训练和推理效率。然而,安装带有 CUDA GPU 支持的 PyTor…

图数据库榜单网站

图数据库榜单 https://db-engines.com/en/ranking/graphdbms点击跳转

Android Jetpack Compose 面试题大全(2025最新整理)

基础概念 什么是 Jetpack Compose?它与传统 Android UI 开发有何不同? Compose 是 Android 的现代声明式 UI 工具包,使用 Kotlin 编写不同于传统的基于 View 和 XML 的 imperative 方式,Compose 使用声明式范式主要区别&#xff1…

添加了addResourceHandlers 但没用

B站黑马的视频 public class WebMvcConfig extends WebMvcConfigurationSupport { /** * 设置静态资源映射 * param registry */ Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("开始进…

STM32实现simpleFOC控制无刷电机

一、FOC基础知识学习 使用simpleFOC控制无刷电机前,需要大概了解一下相关知识,包括力矩控制、速度控制、位置控制的原理和它们之间的联系。 推荐学习资料: 教你写一个比SimpleFOC更好的电机库_哔哩哔哩_bilibili 《灯哥手把手教你写FOC算…

【数据结构】快慢指针

一、快慢指针的原理 定义: 快指针:每次移动两步 慢指针:每次移动一步 终止条件: 当快指针到达链表末尾时停止 事件复杂度: 始终为O(n),仅需依次遍历 空间复杂度: …

毕业论文 | 基于STM32的自动烟雾报警系统设计

基于STM32的烟雾报警系统 一、系统设计原理1. **系统架构**2. **工作原理**二、核心公式与算法1. **MQ-2传感器浓度计算**2. **温度传感器数据处理**3. **校准与滤波**三、关键代码实现1. **ADC初始化与数据读取(以MQ-2为例)**2. **报警逻辑与阈值设置**3. **EEPROM存储阈值*…

Android Gradle插件开发

文章目录 1. Gradle插件是什么2. 为什么需要插件3. 编写插件位置4. 编写插件5. 自定义插件扩展5.1 订阅扩展对象5.2 把扩展添加给Plugin并使用5.3 配置参数5.4 嵌套扩展5.4.1 定义扩展5.4.2 获取扩展属性5.4.3 使用5.4.4 执行5.4.5 输出 6. 编写在单独项目里6.1 新建Module6.2 …

PPIO X OWL:一键开启任务自动化的高效革命

2024年,仅凭一PPIO X OWL:一键开启任务自动化的高效革命篇技术论文,OWL的Github仓库便在24小时斩获了15k Star,成为2024年增速最快的多智能体协作框架,重新定义了任务自动化的效率边界。Camel AI团队开源全栈方案&…

分布式事务,事务失效,TC事务协调者

1. 概述 本方案书旨在解决分布式系统中事务一致性问题,重点阐述全局事务标识(XID)的传递与存储机制、事务协调者(TC)的设计与部署,以及分布式事务失效场景的应对策略。基于业界成熟框架(如Seat…

2025年“深圳杯”数学建模挑战赛D题-法医物证多人身份鉴定问题

法医物证多人身份鉴定问题 小驴数模 犯罪现场法医物证鉴定是关系到国家安全、公共安全、人民生命财产安全和社会稳定的重大问题。目前法医物证鉴定依赖DNA分析技术不断提升。DNA检验的核心是STR(Short Tandem Repeat,短串联重复序列)分析技术…

Mysql查询异常【Truncated incorrect INTEGER value】

文章目录 异常原因分析1、数据类型不一致2、数据长度超长3、数据格式要正确 处理方案模拟案例创建表数据查询 异常 在执行MySQL的语句时,在控制台报错如下所示。 Data truncation: Truncated incorrect INTEGER value 原因分析 1、数据类型不一致 必须要保证数据…

WPF性能优化举例

WPF性能优化集锦 一、UI渲染性能优化 1. 虚拟化技术 ​​ListView/GridView虚拟化​​: <ListView VirtualizingStackPanel.IsVirtualizing="True"VirtualizingStackPanel.VirtualizationMode="Recycling"ScrollViewer.IsDeferredScrollingEnabled=…

C# 面向对象实例演示

C# 面向对象编程实例演示 一、基础概念回顾 面向对象编程(OOP)的四大基本特性&#xff1a; ​​封装​​ - 将数据和操作数据的方法绑定在一起​​继承​​ - 创建新类时重用现有类的属性和方法​​多态​​ - 同一操作作用于不同对象产生不同结果​​抽象​​ - 简化复杂系…

大连理工大学选修课——机器学习笔记(3):KNN原理及应用

KNN原理及应用 机器学习方法的分类 基于概率统计的方法 K-近邻&#xff08;KNN&#xff09;贝叶斯模型最小均值距离最大熵模型条件随机场&#xff08;CRF&#xff09;隐马尔可夫模型&#xff08;HMM&#xff09; 基于判别式的方法 决策树&#xff08;DT&#xff09;感知机…

蒋新松:中国机器人之父

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 蒋新松:中国机器人之父 一、生平简介 1. 早年经历与求学道路 蒋新松出生于1931年8月3日,江苏省江阴澄北镇一个靠近长江的小镇。他的名字来源于杜…