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 模型