探索LangChain-Chatchat 0.3:一体化Agent与强大RAG模型的全面入门指南

news2024/11/24 18:51:05

介绍

  • LangChain-Chatchat 支持RAG和Agent
  • 0.3版本跟大模型解耦,支持Xinference、Ollama、LocalAI、FastChat、One API,可以非常方便的切换各个模型,本文只是介绍Xinference
  • Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,您可以使用任何开源 LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的 AI 应用。
  • RAG支持目前基本所有的文本格式和图片
  • 有默认可用的WebUI界面和接口可以自定义二次开发
  • 本文档是LangChain-Chatchat 0.3版本部署在Windows上

效果图

通过效果图先看看是不是你想要的.

  • 基本聊天
  • 知识库的管理,可以传入自己本地的各种知识
  • 外部函数调用
  • 有api文档,支持二次开发 image.png

部署

部署Python项目经常需要通过虚拟环境可以创建多个干净的环境,这里使用的是Conda

Conda 的使用

安装Conda

在安装Conda之前,你可以选择安装Miniconda(最小化的Conda版本)或Anaconda(包含一系列常用包的版本)。以下是安装Miniconda的步骤: 下载地址

配置Conda

Windows系统:

  1. 打开“控制面板” -> “系统与安全” -> “系统” -> “高级系统设置” -> “环境变量”。
  2. 在“系统变量”下新建一个变量名为 CONDA_HOME,值为Conda的安装路径(比如 C:\Users\YourUsername\Miniconda3)。
  3. 编辑“Path”变量,在末尾加上 %CONDA_HOME%\Scripts%CONDA_HOME%
  4. 在命令提示符中输入 conda --version 验证配置是否成功。
常用命令

以下是一些常用的Conda命令,包括初始化、激活、创建环境、删除环境、安装包以及设置缓存路径:

1. 初始化Conda

在安装完Conda后,可以使用以下命令初始化Conda配置:

conda init

2. 激活环境

激活一个已存在的Conda环境:

conda activate myenv

3. 创建环境

创建一个新的Conda环境:

conda create --name myenv python==3.10

4. 删除环境

删除一个已存在的Conda环境:

conda remove --name myenv --all

5. 安装包

在激活的环境中安装包,可以指定版本号:

conda install package_name
conda install package_name=1.0

6. 设置缓存路径

设置Conda包缓存路径,可以通过以下命令设置:

conda config --set pkgs_dirs /path/to/cache/directory

7. 列出所有虚拟环境

要列出所有在Conda中创建的虚拟环境,你可以使用以下命令:

conda env list

Xinference的安装

  • 首先使用Conda创建一个虚拟环境xinf
  • 切换到这个虚拟环境
  • 按照Xinference
  • 需要本地有GPU,才能跑本地模型
conda create -n xinf python==3.10
conda activate xinf
pip install "xinference[transformers]"


Xinference的运行

xinference-local --host 0.0.0.0 --port 9997

根据自己的GPU情况来选择运行那个大模型, 我是8G的显卡内存,选择chatglm3的量化版本可以正常运行,内存比较大的可以选择glm4或者qwen2

运行成功后,可以在浏览器中打开http://127.0.0.1:9997

image.png

选择chatglm3

image.png

设置chatglm3,点击最下面的按钮,他会自动下载模型,可能需要比较长时间.

image.png

后面的RAG需要这个Embedding Model 来完成量化

image.png

Langchain-Chatchat的安装

  • 首先使用Conda创建一个虚拟环境chatchat
  • 切换到这个环境
  • 进行安装
conda create -n chatchat python==3.10
conda activate chatchat
pip install langchain-chatchat -U

可以到Langchain-Chatchat中查看详细的文档

Langchain-Chatchat的运行

  • 前面Xinference安装成功后,就可以运行Chatchat了,先配置自己的模型
chatchat-config model --default_llm_model chatglm3



  • 配置模型平台,我这里遇到些问题,该命令在Windows好像不能执行,我通过修改源码来指定了该平台.
$ chatchat-config model --set_model_platforms "[{
    \"platform_name\": \"xinference\",
    \"platform_type\": \"xinference\",
    \"api_base_url\": \"http://127.0.0.1:9997/v1\",
    \"api_key\": \"EMPT\",
    \"api_concurrencies\": 5,
    \"llm_models\": [
        \"chatglm3\"
    ],
    \"embed_models\": [
        \"bge-large-zh-v1.5\"
    ],
    \"image_models\": [],
    \"reranking_models\": [],
    \"speech2text_models\": [],
    \"tts_models\": []
}]"


  • 初始化知识库
chatchat-kb -r

  • 运行
chatchat -a

运行成功后会调到浏览器打开http://127.0.0.1:8501/

安装过程中遇到的问题

  • 遇到了Xinference UI没有更新成最新版本的问题,可以重新编译UI来解决
  • 遇到Langchain-chatchat在Windows下配置问题,我是自己修改源码解决的,如果有需要可以单独交流
  • 找不到Xinference模型的问题,跟上面类似都是配置问题

欢迎大家使用和关注

仓库地址

  • xinference
  • langchain-chatchat

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

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

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

相关文章

论文辅导 | 基于贝叶斯优化-卷积神经网络-双向长短期记忆神经网络的锂电池健康状态评估

辅导文章 模型描述 准确估计电池健康状态是设备稳定运行的关键。针对当前健康状态研究中容量难以直接测量、估计模型调参费时等问题,提出基于多健康特征的贝叶斯优化(BO)算法优化卷积神经网络(CNN)与双向长短期记忆&a…

气膜仓库的优势与应用—轻空间

随着现代物流和存储需求的不断增长,传统仓库的建设和运营成本日益增加,企业需要寻找更加灵活、高效和经济的解决方案。在这种背景下,气膜仓库作为一种新型仓储形式,以其独特的优势和广泛的应用前景,逐渐受到市场的青睐…

视频号视频怎么保存到手机,视频号视频怎么保存到手机相册里,苹果手机电脑都可以用

随着数字媒体的蓬勃发展,视频已成为我们日常生活中不可或缺的一部分。视频号作为众多视频分享平台中的一员,吸引了大量用户上传和分享各类精彩视频。然而,有时我们可能希望将视频号上的视频下载下来,以下将详细介绍如何将视频号的视频。 方法…

自养号测评助力:亚马逊、沃尔玛电商高效测评补单技巧,轻松实现销量与补单双赢

要在竞争激烈的市场中通过测评补单的方式提升产品权重和销售,构建一个稳定且高效的测评补单系统至关重要。通过精心培养一批高质量的买家账号,并深入了解真实买家的行为数据,结合对风控数据的精准把控,我们能够自主推动推广进程&a…

shell:处理命令行参数 获取用户输入

1. 命令行参数 1.1 位置参数 bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的 所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$1是第 一个参数,$2是第二个参数,依…

【LLM 评估】MMLU benchmark:用于衡量 LM 的多任务语言理解能力

论文:Measuring Massive Multitask Language Understanding ⭐⭐⭐⭐ ICLR 2021, arXiv:2009.03300 Code: GitHub 论文速读 本文提出了一个 benchmark:MMLU,一个覆盖了 57 个 subjects 的多项选择题的数据集。 数据集的 question 数量&…

SpringBoot-SpringBoot中文文档

简介 Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能,降低了复杂性,同时支持基于J…

设计模式 - Observer Pattern 观察者模式

文章目录 定义观察者模式的实现构成构成UML图 观察者模式的代码实现场景代码实现 总结优点缺点应用场景 其他设计模式文章: 定义 观察者模式是行为型模式的一种,它定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,它…

Apache HBase概述(图文并茂~)

HBase概述 1. Why we need HBase ? 在大数据时代来临之前,我们通常依赖传统的关系型数据库(如RDBMS)来处理数据存储和管理。然而,随着数据量的急剧增长和数据结构的多样化,传统数据库系统开始显露出其局限性…

手写一个基于SpringBoot的MVC架构,默认实现CRUD和导入导出功能

文章目录 前言正文一、项目结构二、技术点三、部分核心代码3.1 core-tool 中的核心代码3.1.1 所有实体的通用父类 SuperEntity3.1.2 所有枚举的父接口 BaseEnum3.1.3 所有业务异常的父接口 BaseException 3.2 mvc-tool 中的核心代码3.2.1 CrudController 接口定义3.2.2 默认的C…

文心一言 VS 讯飞星火 VS chatgpt (290)-- 算法导论21.3 3题

三、给出一个包含 m 个 MAKE-SET 、UNION 和 FINDSET 操作的序列(其中有 n 个是 MAKE-SET 操作),当仅使用按秩合并时,需要 Ω(mlgn) 的时间。如果要写代码,请用go语言。 文心一言: 在并查集(Union-Find)数…

STM32使用PWM驱动WS2812_RGB灯珠

项目场景: 使用STM32标准库产生PWM实现RGB灯珠控制。 芯片型号:stm32f405rgt6 设计优点:不需要使用定时器中断资源,可以使得STM32在驱动RGB灯珠的同时能够执行其他任务。 RGB灯珠简介 项目所使用的RGB灯珠如下所示,封装…

76. UE5 RPG 实现场景阻挡剔除功能

在俯视角游戏中,我们总会碰到一个问题就是,建筑会遮挡住角色的问题。遇到这种问题有多种解决方案,厂商经常使用的一种方案是,如果角色被遮挡,则使用一种纯色或者增加一些菲涅尔的效果来实现 这种效果我之前在unity内实…

免费使用文心一言会员教程

领取&安装链接:Baidu Comate 领取季卡 有图有真相 原理:百度comate使用文心一言最新的4.0模型。百度comate目前免费使用,可以借助comate达到免费使用4.0模型目的。 如何获得 点击「Baidu Comate 领取季卡 -> 领取权益」&#xff0…

Cesium Model 中的剪裁平面 (ClippingPlane)

Cesium Model 中的剪裁平面 (ClippingPlane) 参考: https://www.cnblogs.com/webgl-angela/p/9197672.html Cesium Model 中的剪裁平面 (ClippingPlane) // 相关类: class ClippingPlaneCollection {} class ClippingPlane {}// 剪裁的整体流程: Model.prototype.update () …

Mathematica训练课(45)-- 一些常用的函数Abs[],Max[]等函数用法

①绝对值函数:Abs[]函数 ②最大值和最小值函数 ③反函数

SAP ATP可用性检查简介

Availability Check,就是可用性检查,指的是要检查一下此物料是否能满足我的需求。 接到一张销售订单(SALES ORDER),客户要求数量为100PC,并且客户要求的出货日期是2024-07-01,此时我们的销售人员肯定会想到底能否出货给客人呢?系统中建立此单时,SAP就会做一个所谓的检…

实验八 T_SQL编程

题目 以电子商务系统数据库ecommerce为例 1、在ecommerce数据库,针对会员表member首先创建一个“呼和浩特地区”会员的视图view_hohhot,然后通过该视图查询来自“呼和浩特”地区的会员信息,用批处理命令语句将问题进行分割,并分…

17859划分准则小结

17859《划分准则》 发布时间:1999.9.13 实施时间:2001.1.1 计算机信息系统安全保护能力的五个等级: 第一级:用户自主保护级 第二级…

Java知识点整理 15 — MyBatis框架

一. 什么是 MyBatis MyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程以及高级映射。它免除了几乎所有 JDBC代码以及手动设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(普通老式 Jav…