Langchain-Chatchat 是一個(gè)開源項(xiàng)目。該項(xiàng)目屬于智能聊天機(jī)器人可以進(jìn)行對(duì)話,同時(shí)具有文檔導(dǎo)入向量數(shù)據(jù)庫功能,允許用戶使用文檔以建立知識(shí)庫,然后用戶可以進(jìn)行基于知識(shí)庫的查詢。項(xiàng)目提供webui用戶界面供用戶使用,也提供api供其他程序調(diào)用。
首先,確保你的機(jī)器安裝了 Python 3.10
$ python --versionPython 3.10.12
接著,創(chuàng)建一個(gè)虛擬環(huán)境,并在虛擬環(huán)境內(nèi)安裝項(xiàng)目的依賴
# 拉取倉庫$
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# 進(jìn)入目錄
$ cd Langchain-Chatchat# 安裝全部依賴
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt
# 默認(rèn)依賴包括基本運(yùn)行環(huán)境(FAISS向量庫)。如果要使用 milvus/pg_vector 等向量庫,請(qǐng)將 requirements.txt 中相應(yīng)依賴取消注釋再安裝。
如需在本地或離線環(huán)境下運(yùn)行本項(xiàng)目,需要首先將項(xiàng)目所需的模型下載至本地,通常開源 LLM 與 Embedding 模型可以從 HuggingFace 下載。以本項(xiàng)目中默認(rèn)使用的 LLM 模型 THUDM/ChatGLM2-6B 與 Embedding 模型 moka-ai/m3e-base 為例:
下載模型需要先安裝 Git LFS,然后運(yùn)行
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm2-6b
$ git clone https://huggingface.co/moka-ai/m3e-base
按照下列方式初始化自己的知識(shí)庫和簡(jiǎn)單的復(fù)制配置文件
$ python copy_config_example.py
$ python init_database.py --recreate-vs
按照以下命令啟動(dòng)項(xiàng)目
$ python startup.py -a
項(xiàng)目離線部署需要下載好ChatGLM2,m3e-base 模型。在項(xiàng)目configs中的model_config.py中配置模型路徑。
從清華云盤下載模型參數(shù)文件,放到本地chatglm2-6b倉庫下。
清華大學(xué)云盤 (tsinghua.edu.cn)
m3e-base
中文文本嵌入模型m3e-base_數(shù)據(jù)集-飛槳AI Studio星河社區(qū) (baidu.com)
項(xiàng)目對(duì)服務(wù)器要求很高,因?yàn)閏hatglm2量化INT4要顯存大于6G才能正常使用。使用pip install -r requirements.txt 安裝依賴會(huì)安裝cpu版本,會(huì)導(dǎo)致對(duì)話明顯卡頓。因此安裝過程中pytorch需要使用gpu版本。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html
一種利用 langchain 思想實(shí)現(xiàn)的基于本地知識(shí)庫的問答應(yīng)用,目標(biāo)期望建立一套對(duì)中文場(chǎng)景與開源模型支持友好、可離線運(yùn)行的知識(shí)庫問答解決方案。
受 GanymedeNil 的項(xiàng)目 document.ai 和 AlexZhangji 創(chuàng)建的 ChatGLM-6B Pull Request 啟發(fā),建立了全流程可使用開源模型實(shí)現(xiàn)的本地知識(shí)庫問答應(yīng)用。本項(xiàng)目的最新版本中通過使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通過基于 FastAPI 提供的 API 調(diào)用服務(wù),使用基于 Streamlit 的 WebUI 進(jìn)行操作。
依托于本項(xiàng)目支持的開源 LLM 與 Embedding 模型,本項(xiàng)目可實(shí)現(xiàn)全部使用開源模型離線私有部署。與此同時(shí),本項(xiàng)目也支持 OpenAI GPT API 的調(diào)用,并將在后續(xù)持續(xù)擴(kuò)充對(duì)各類模型及模型 API 的接入。
本項(xiàng)目實(shí)現(xiàn)原理:加載文件 -> 讀取文本 -> 文本分割 -> 文本向量化 -> 問句向量化 -> 在文本向量中匹配出與問句向量最相似的 top k個(gè) -> 匹配出的文本作為上下文和問題一起添加到 prompt中 -> 提交給 LLM生成回答。
Github: https://gitee.com/simplify-code/Langchain-Chatchat.git
l可以選擇多種對(duì)話模式進(jìn)行AI對(duì)話
目前支持的對(duì)話模式有:LLM對(duì)話,知識(shí)庫問答,搜索引擎問答及自定義Agent文檔。
可以自由選擇LLM模型: zhipu,chatglm2-6b,OpenAI,Anthropic等模型。
l可以導(dǎo)入文檔創(chuàng)建知識(shí)庫,進(jìn)行基于知識(shí)庫的對(duì)話。初次使用此項(xiàng)目需要初始化數(shù)據(jù)庫。
完成文檔導(dǎo)入后可以進(jìn)行如下測(cè)試??梢赃x擇知識(shí)庫問答模式進(jìn)行對(duì)話。
Langchain-Chatchat 項(xiàng)目是一個(gè)用 Python 開發(fā)的開源智能聊天機(jī)器人項(xiàng)目,在 Gitee 平臺(tái)上托管。它使用深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)自然語言處理和生成回復(fù),并提供一個(gè)基礎(chǔ)框架用于構(gòu)建智能對(duì)話機(jī)器人應(yīng)用。
聯(lián)系客服