2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践(一)
文章目录
- 2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践(一)
- 一、前言
- 二、实践步骤
- 1、软硬件要求
- (1) 确定模型推理框架和模型
- 2. 初始化项目配置与数据目录
- (1)确定项目根目录
- (2)chatchat项目初始化
- (3)修改配置文件
- 3. 初始化知识库
- 4. 启动项目
一、前言
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 等不同硬件条件下使用。
- 安装 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# 知识库信息数据库连接URISQLALCHEMY_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。