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

【实战】ChatChat0.3.1+DeepSeek+本地知识库部署使用(上)

一、介绍

🤖️ Langchain-Chatchat是一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
💡 受 GanymedeNil 的项目 document.ai 和 AlexZhangji 创建的 ChatGLM-6B Pull Request 启发,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中可使用 Xinference、Ollama 等框架接入 GLM-4-Chat、 Qwen2-Instruct、 Llama3 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。

二、基本原理

本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答。
在这里插入图片描述

三、AutoDL快速使用

1.选择社区镜像

在这里插入图片描述

2.一键启动

cd /root
conda activate chatchat
bash startup.sh

3.使用ssh隧道

在这里插入图片描述

4.项目启动

人工智障对于经典问题的回答:在这里插入图片描述

四、源码安装部署

1.选择基础环境

PyTorch:2.5.1
Python:3.12(ubuntu22.04)
Cuda:12.4
GPU:RTX 4090(24GB) * 1
CPU:16 vCPU Intel(R) Xeon(R) Gold 6430

2.源码拉取

git clone https://github.com/chatchat-space/Langchain-Chatchat.git

3.创建虚拟环境

##Langchain环境
conda create -n chat python=3.8

#conda初始化
conda init
source ~/.bashrc
conda activate chat

##安装库环境
cd  Langchain-Chatchat/libs/chatchat-server/
pip install poetry
poetry config virtualenvs.prefer-active-python true
poetry install --with lint,test -E xinference

##xinference环境
conda create -n xinference python=3.9
conda activate xinference
pip install "xinference[all]" -i https://pypi.tuna.tsinghua.edu.cn/simple

4.配置xinference

##必须是同一行命令
XINFERENCE_HOME=/root/autodl-tmp/Langchain-Chatchat/xinference XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997

5.LangChain初始化

##设置当前目录和项目数据目录
cd Langchain-Chatchat/libs/chatchat-server/chatchat
export CHATCHAT_ROOT=/root/autodl-tmp/Langchain-Chatchat/libs/chatchat-server/chatchat/path/to/chatchat_data

##执行以下命令初始化项目配置文件和数据目录:
cd libs/chatchat-server
python chatchat/cli.py init

##初始化知识库
cd libs/chatchat-server
python chatchat/cli.py kb --recreate-vs

##启动项目
cd libs/chatchat-server
python chatchat/cli.py start -a

五、遇到的坑

1.poetry config virtualenvs.prefer-active-python true失败

这一问题和虚拟环境的python版本有关,不同版本适配的poetry估计存在差异,导致命令已经出现更改,实测3.9/3.10均会出现报错,3.8版本下的poetry暂时可以正常设置

2.Unable to find installation candidates for onnxruntime (1.20.1)

这一问题是onnxruntime版本过高导致,实测1.19.0版本的onnxruntime可以正常安装,出现此类问题,可以针对性安装1.19.0版本,然后重新运行命令

poetry add onnxruntime==1.19.0

3.ERROR: Failed to build installable wheels for some pyproject.toml based projects (llama-cpp-python)

llama-cpp-python无法通过pip安装,建议直接使用whl方法安装,安装方法如下:

##加速资源
wget https://ghfast.top/https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.4-cu122/llama_cpp_python-0.3.4-cp39-cp39-linux_x86_64.whl

pip install llama_cpp_python-0.3.4-cp39-cp39-linux_x86_64.whl

4.Langchain项目启动报错ModuleNotFoundError: No module named ‘chatchat’

一般就是portry安装包过程出现问题,按照以下步骤进行操作:

1.清理poetry的缓存pypoetry文件夹,请自行搜索不同操作系统下的路径。
2.检查Langchain-Chatchat\libs\chatchat-server文件夹下是否有poetry.lock文件,请删除。
3.再次执行poetry install --with lint,test -E xinference
4.检查安装过程有没有报错,没有报错再次使用pip list检查你是否成功安装前面所说的依赖包。

5.调用知识库或者RAG过程报错proxies参数类型错误

此错误与库版本有关httpx,应该将httpx软件包降级到版本 0.27.2,该proxies版本支持该参数。运行以下命令:

pip install httpx==0.27.2

相关文章:

  • rtthread的串口框架、485框架
  • c++中sleep是什么意思(不是Sleep() )
  • 保姆级教程 | Office-Word中图目录制作及不显示图注引文的方法
  • Linux第十四节 — 环境变量和进程地址空间
  • 在VS中如何将控制台(console)项目改为窗口(window)项目
  • python~http的请求参数中携带map
  • 【AI表格处理工具】
  • 如何使用Spring Boot实现商品的管理系统
  • [AI相关]生成视频-第一个项目,20k星开源MoneyPrinterTurbo
  • 【网络】高级IO(2)
  • NX二次开发搜索槽或者刻字面
  • 【第四节】C++设计模式(创建型模式)-Builder(建造者)模式
  • 2025年-G14-Lc88-278.第一个坏版本 -java版
  • 【电机控制】42步进电机+arduino:WHEELTEC_MS42DDC
  • ubuntu部署小笔记-采坑
  • 【Java】File 类
  • SQLite 删除表
  • 054 redisson
  • 安全面试3
  • Python 中read、readline、readlines 有哪些区别?
  • 六大车企一季报:比亚迪近92亿净利稳居第一,多家车企营收下滑
  • 娱见 | 为了撕番而脱粉,内娱粉丝为何如此在乎番位
  • 《黎明的一切》:与正常世界脱轨后,我选择不再回去
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 贵州黔西市游船倾覆事故发生后,多家保险公司紧急响应
  • 抗战回望16︱《青年生活》《革命青年》:抗战与青年