MPT-30B 是一個強大的開源模型,經過 8k 上下文長度的訓練,表現優於原始的 GPT-3。公告
使用MPT-30B的量化版本,您可以在自己的電腦上私密地與文件聊天,而無需連接網路。
最低系統規格為 32GB 記憶體和python 3.10
。
pip install poetry
git clone {insert github repo url}
poetry install
.env.example
檔案複製到.env
cp .env.example .env
python download_model.py
或造訪此處並下載文件。然後在根目錄中建立一個models
資料夾並將檔案放入其中。
預設情況下,此儲存庫有一個source_documents
資料夾,用於儲存要攝取的文件。您可以用自己的文件替換其中的文件。
支援的文件副檔名包括:
.csv
:CSV,.docx
:Word文檔,.doc
:Word文檔,.eml
:電子郵件,.epub
:EPub,.html
:HTML 文件,.md
:降價,.pdf
:便攜式文件格式(PDF),.pptx
:PowerPoint 文檔,.txt
:文字檔(UTF-8),然後運行這個腳本來攝取
python ingest.py
輸出應如下所示:
Creating new vectorstore
Loading documents from source_documents
Loading new documents: 100% | ██████████████████████ | 1/1 [00: 01< 00:00, 1.73s/it]
Loaded 1 new documents from source_documents
Split into 90 chunks of text (max. 500 tokens each)
Creating embeddings. May take some minutes...
Using embedded DuckDB with persistence: data will be stored in: db
Ingestion complete ! You can now run question_answer_docs.py to query your documents
它將建立一個包含本機向量儲存的db
資料夾。每個文件需要 20-30 秒,具體取決於文件的大小。您可以根據需要提取任意數量的文檔,所有文檔都將累積在本地嵌入資料庫中。如果要從空資料庫啟動,請刪除db
資料夾。
注意:在攝取過程中,沒有資料離開您的本地環境。您可以在沒有網路連線的情況下進行攝取,除非第一次執行攝取腳本(下載嵌入模型時)。
運行這些腳本來提出問題並從文件中獲得答案:
首先,載入命令列:
poetry run python question_answer_docs.py `
或者
make qa
其次,等待看到命令列要求Enter a question:
輸入。輸入您的問題並按 Enter 鍵。
鍵入exit
以完成腳本。
注意:根據電腦的記憶體、提示請求以及從來源文件傳回的區塊數,模型可能需要 40 到 300 秒才能回應您的提示。
您可以在沒有網路連線的情況下使用此聊天機器人。
[可選] 運行一般聊天機器人
如果您不想與文件聊天,而只想與 MPT-30b 聊天機器人交互,則可以跳過攝取階段,只需執行聊天機器人腳本。
poetry run python chat.py `
或者
make chat
這裡歸功於 abacaj 的原始模板 此處歸功於 imartinez 的 privateGPT 攝取邏輯和文檔指導 此處歸功於 TheBloke 的 MPT-30B GGML 模型