侧边栏壁纸

搭建一个私人的ChatGPT

2023年05月15日 5.2k阅读 5评论 1点赞


设备配置


  • 型号:Apple Macbook Pro
  • 芯片:M1 Pro
  • 内存:16G
  • Python版本:3.11

项目地址


Python环境安装


下载项目


  1. 使用git clone命令:

    $ git clone https://github.com/jyan1011/privateGPT.git
  2. 下载Zip包并解压:

安装项目依赖


  1. 进入项目目录,并找到requirements.txt文件
  2. 使用pip命令安装依赖

    $ pip3 install -r requirements.txt
  3. 输出以下内容,依赖安装成功

    Successfully installed MarkupSafe-2.1.2 PyYAML-6.0 SQLAlchemy-2.0.13 aiohttp-3.8.4 aiosignal-1.3.1 ...(以下内容省略)

下载语言模型


LLM:默认为ggml-gpt4all-j-v1.3-groovy.bin 。如果您喜欢不同的GPT4All-J兼容模型,只需下载后在您的文件中引用即可。

编辑配置文件


  1. 重命名项目目录下的example.env文件名为.env
  2. 编辑.env文件

引入测试集


  1. 将所有测试集文件放入目录source_documents
  2. 支持的文件类型包括:

    • .csv:CSV表格文件
    • .docx:Microsoft Word
    • .doc:Microsoft Word
    • .enex:印象笔记
    • .eml:电子邮件
    • .epub:电子书epub格式
    • .html:HTML网页文件
    • .md:markdown文档
    • .msg:Outlook文件
    • .odt:开放文本文档
    • .pdf:便携式文档(PDF)
    • pptx:PPT幻灯片文档
    • .ppt:幻灯片文档
    • .txt:文本文件 (UTF-8编码)
  3. 运行以下命令以引入所有数据:

    $ 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 privateGPT.py to query your documents


开始提问


要开始问题,请运行如下命令:

$ python privateGPT.py

并等待脚本需要您的输入。

> Enter a query:

输入您的问题并按回车键后,需要等待 20-30 秒(具体取决于您的计算机性能),而LLM模型会根据您的提问开始准备答案。完成后,系统将会将打印回答并同时打印它回答所引用的文档中的4个来源。然后,您可以提出另一个问题而无需重新运行脚本,只需再次等待输入提示即可。

如果需要关闭脚本,则在输入问题时输入exit并回车即可。

拓展


该脚本还支持可选的命令行参数来修改其行为。您可以通过在终端中运行命令来查看这些参数的完整列表。

$ python privateGPT.py --help


1
打赏

—— 评论区 ——

博主关闭了当前页面的评论
博主栏壁纸
16 文章数
29 标签数
10 评论量
人生倒计时
舔狗日记