2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践(一)

2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践(一)

一、前言

github地址:https://github.com/chatchat-space/Langchain-Chatchat
各位未来的开发者请上座,随着自然语言处理(NLP)技术的飞速发展,基于大模型的知识库问答系统成为了连接人机交互的重要桥梁。最近,部署开源项目Langchain-Chatchat,通过一系列的调试与实践,成功地让这个系统在我本地的环境中稳定运行。本文将分享我在启动Langchain-Chatchat项目、配置环境以及启动可视化界面的经验。预计时间 24分钟,启动你的rag项目!
下面是RAG对比来自工业界的开源知识库 RAG 项目最全细节对比
在这里插入图片描述

二、实践步骤

1、软硬件要求

💡 软件方面,本项目已支持在 Python 3.8-3.11 环境中进行使用,并已在 Windows、macOS、Linux 操作系统中进行测试。

💻 硬件方面,0.3.0 版本已修改为支持不同模型部署框架接入,可在 CPU、GPU、NPU、MPS 等不同硬件条件下使用。

  1. 安装 Langchain-Chatchat
pip install langchain-chatchat -U

为确保所使用的 Python 库为最新版,建议使用官方 Pypi 源或清华源。

(1) 确定模型推理框架和模型

从 0.3.0 版本起,Langchain-Chatchat 不再根据用户输入的本地模型路径直接进行模型加载,涉及到的模型种类包括 LLM、Embedding、Reranker 及后续会提供支持的多模态模型等,均改为支持市面常见的各大模型推理框架接入,如 Xinference、Ollama、LocalAI、FastChat、One API 等。

在这里,博主使用比较常见的Openai系列模型用于演示
模型推理框架主要是确认平台,如Openai,和两个模型:
大语言模型:gpt-4o
向量化模型:text-embedding-3-large

2. 初始化项目配置与数据目录

Langchain-Chatchat 使用本地 yaml 文件的方式进行配置,用户可以直接查看并修改其中的内容,服务器会自动更新无需重启。

(1)确定项目根目录

设置 Chatchat 存储配置文件和数据文件的根目录(可选

# on linux or macos
export CHATCHAT_ROOT=/path/to/chatchat_data

# on windows
set CHATCHAT_ROOT=/path/to/chatchat_data

若不设置该环境变量,则自动使用当前目录为根目录。(推荐)

(2)chatchat项目初始化

新建一个新文件夹

chatchat init

该命令会执行以下操作:

  • 创建所有需要的数据目录
  • 复制 samples 知识库内容
  • 生成默认 yaml 配置文件

运行结果如下图:
在这里插入图片描述

(3)修改配置文件

  • 配置模型(model_settings.yaml)
    需要根据步骤 2. 模型推理框架并加载模型 中选用的模型推理框架与加载的模型进行模型接入配置,具体参考 model_settings.yaml 中的注释。主要修改以下四个:
    DEFAULT_LLM_MODEL
    DEFAULT_EMBEDDING_MODEL
    api_base_url
    api_key
# 默认选用的 LLM 名称
DEFAULT_LLM_MODEL: gpt-4o

# 默认选用的 Embedding 名称
DEFAULT_EMBEDDING_MODEL: text-embedding-3-large

# 将 `LLM_MODEL_CONFIG` 中 `llm_model, action_model` 的键改成对应的 LLM 模型
# 在 `MODEL_PLATFORMS` 中修改对应模型平台信息

在这里插入图片描述

配置知识库路径(basic_settings.yaml)(可选)
默认知识库位于 CHATCHAT_ROOT/data/knowledge_base,如果你想把知识库放在不同的位置,或者想连接现有的知识库,可以在这里修改对应目录即可。

# 知识库默认存储路径
 KB_ROOT_PATH: D:\chatchat-test\data\knowledge_base

 # 数据库默认存储路径。如果使用sqlite,可以直接修改DB_ROOT_PATH;如果使用其它数据库,请直接修改SQLALCHEMY_DATABASE_URI。
 DB_ROOT_PATH: D:\chatchat-test\data\knowledge_base\info.db

 # 知识库信息数据库连接URI
 SQLALCHEMY_DATABASE_URI: sqlite:///D:\chatchat-test\data\knowledge_base\info.db

配置知识库(kb_settings.yaml)(可选)

默认使用 FAISS 知识库,如果想连接其它类型的知识库,可以修改 DEFAULT_VS_TYPE 和 kbs_config。

3. 初始化知识库

进行知识库初始化前,请确保已经启动模型推理框架及对应 embedding 模型,且已按照上述步骤3完成模型接入配置。

chatchat kb -r

更多功能可以查看 chatchat kb --help

出现以下日志即为成功:

在这里插入图片描述
注:上面的知识库是chatchat官方自带的,使用默认配置和Openai的推理平台和两个模型基本百分之百是上面的日志。

4. 启动项目

chatchat start -a

出现以下界面即为启动成功:

在这里插入图片描述

注1:由于 chatchat 配置默认监听地址 DEFAULT_BIND_HOST 为 127.0.0.1, 所以无法通过其他 ip 进行访问。

注2:如需通过机器ip 进行访问(如 Linux 系统), 需要到 basic_settings.yaml 中将监听地址修改为 0.0.0.0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风吹落叶花飘荡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值