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)用。 快速上手1環(huán)境配置首先,,確保你的機(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)依賴取消注釋再安裝。 2模型下載如需在本地或離線環(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:///THUDM/chatglm2-6b $ git clone https:///moka-ai/m3e-base 3初始化知識(shí)庫和配置文件按照下列方式初始化自己的知識(shí)庫和簡(jiǎn)單的復(fù)制配置文件 $ python copy_config_example.py $ python init_database.py --recreate-vs 4一鍵啟動(dòng)按照以下命令啟動(dòng)項(xiàng)目 $ python startup.py -a 注意事項(xiàng)項(xiàng)目離線部署需要下載好ChatGLM2,,m3e-base 模型。在項(xiàng)目configs中的model_config.py中配置模型路徑,。 從清華云盤下載模型參數(shù)文件,,放到本地chatglm2-6b倉庫下。 清華大學(xué)云盤 () 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./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 該項(xiàng)目的特點(diǎn)一種利用 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)目的原理本項(xiàng)目實(shí)現(xiàn)原理:加載文件 -> 讀取文本 -> 文本分割 -> 文本向量化 -> 問句向量化 -> 在文本向量中匹配出與問句向量最相似的 top k個(gè) -> 匹配出的文本作為上下文和問題一起添加到 prompt中 -> 提交給 LLM生成回答,。 項(xiàng)目地址Github: https:///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è)試,。可以選擇知識(shí)庫問答模式進(jìn)行對(duì)話,。 總結(jié)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)用,。 |
|