开源模型 PrivateGPT

 PrivateGPT 处于概念验证(PoC)阶段,至少证明可以完全在本地创建类似于 ChatGPT 的大模型,可以预见这种 PoC 转换为实际产品之后的潜力,可以让公司访问个性化、安全和私密的 ChatGPT 来提高生产力。

GitHub 页面链接,感兴趣的用户可以点击阅读。

在没有互联网连接的情况下,使用LLM的力量对您的文档提出问题。 100%私有,任何时候都没有数据离开您的执行环境。您可以在没有互联网连接的情况下摄取文档和提问!

使用LangChainGPT4AllLlamaCppChromaSentenceTransformers构建。

236942256-985801c9-25b9-48ef-80be-3acbb4575164

环境设置

为了设置您的环境以运行此处的代码,请首先安装所有要求:

pip3 install -r requirements.txt

然后,下载LLM模型并将其放在您选择的目录中:

  • LLM:默认为 ggml-gpt4all-j-v1.3-groovy.bin。如果您更喜欢不同的 GPT4All-J 兼容型号,只需下载它并在您的文件中引用它。.env

将模板复制到example.env.env

cp example.env .env

并在文件中适当地编辑变量。.env

MODEL_TYPE: supports LlamaCpp or GPT4All
PERSIST_DIRECTORY: is the folder you want your vectorstore in
MODEL_PATH: Path to your GPT4All or LlamaCpp supported LLM
MODEL_N_CTX: Maximum token limit for the LLM model
MODEL_N_BATCH: Number of tokens in the prompt that are fed into the model at a time. Optimal value differs a lot depending on the model (8 works well for GPT4All, and 1024 is better for LlamaCpp)
EMBEDDINGS_MODEL_NAME: SentenceTransformers embeddings model name (see https://www.sbert.net/docs/pretrained_models.html)
TARGET_SOURCE_CHUNKS: The amount of chunks (sources) that will be used to answer a question

注意:由于加载嵌入的方式,第一次运行脚本时,需要互联网连接才能下载嵌入模型本身。langchainSentenceTransformers

测试数据集

此存储库使用联合状态脚本作为示例。

引入自己的数据集的说明

将任何和所有文件放入目录中source_documents

支持的扩展包括:

  • .csv:.CSV
  • .docx:文字文档,
  • .doc:文字文档,
  • .enex:印象笔记,
  • .eml:电子邮件
  • .epub: EPub,
  • .html: HTML 文件,
  • .md: 降价,
  • .msg: 展望消息,
  • .odt:打开文档文本,
  • .pdf: 便携式文档格式 (PDF),
  • .pptx:幻灯片文档,
  • .ppt:幻灯片文档,
  • .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 privateGPT.py to query your documents

它将创建一个包含本地向量存储的文件夹。每个文档需要 20-30 秒,具体取决于文档的大小。 您可以根据需要引入任意数量的文档,所有文档都将累积在本地嵌入数据库中。 如果要从空数据库开始,请删除该文件夹。dbdb

注意:在摄取过程中,没有数据离开您的本地环境。您可以在没有 Internet 连接的情况下进行摄取,但首次运行采集脚本时下载嵌入模型除外。

在本地对您的文件提出问题!

要提出问题,请运行如下命令:

python privateGPT.py

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

> Enter a query:

按回车键。您需要等待 20-30 秒(具体取决于您的计算机),而 LLM 模型会使用提示并准备答案。完成后,它将打印答案和它用作文档中上下文的 4 个来源;然后,您可以提出另一个问题而无需重新运行脚本,只需再次等待提示即可。

注意:您可以关闭互联网连接,脚本推理仍然有效。没有数据流出您的本地环境。

键入以完成脚本。exit

命令行界面

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

它是如何工作的?

选择正确的本地模型和强大的功能可以在本地运行整个管道,而无需任何数据离开环境,并且性能合理。LangChain

  • ingest.py使用工具解析文档并使用 () 在本地创建嵌入。然后,它使用向量存储将结果存储在本地矢量数据库中。LangChainHuggingFaceEmbeddingsSentenceTransformersChroma
  • privateGPT.py使用基于OR的本地LLM来理解问题并创建答案。答案的上下文是使用相似性搜索从本地向量存储中提取的,以从文档中找到正确的上下文。GPT4All-JLlamaCpp
  • GPT4All-J包装器是在 LangChain 0.0.162 中引入的。

系统要求

Python Version

要使用此软件,您必须安装 Python 3.10 或更高版本。早期版本的 Python 将无法编译。

C++编译器

如果在构建轮子的过程中遇到错误,则可能需要在计算机上安装C++编译器。pip install

对于Windows 10/11

若要在 Windows 10/11 上安装 C++ 编译器,请执行以下步骤:

  1. 安装 Visual Studio 2022。
  2. 确保选择了以下组件:
    • 通用Windows平台开发
    • C++ 适用于Windows的CMake工具
  3. MinGW网站下载MinGW安装程序
  4. 运行安装程序并选择组件。gcc

运行英特尔的 Mac

当运行带有英特尔硬件(不是 M1)的 Mac 时,您可能会遇到 clang: 错误:在 pip 安装期间,clang 编译器不支持“-march=native”。

如果是这样,请在 pip 安装期间设置您的主旗。例如:ARCHFLAGS=“-arch x86_64” pip3 install -r 要求.txt

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun238366.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2023年6月25日
下一篇 2023年6月25日

相关推荐

  • ChatGPT Search什么时候可以免费使用?

    未来数月内将向免费用户全面开放 ChatGPT Search 已全面上线所有 ChatGPT 现有接口,包括 chatgpt.com 官网,以及桌面和移动应用程序。 不过,目前仅限…

    最新资讯 2024年11月3日
  • ChatGPT Search挑战搜索引擎龙头 Google

    挑战搜索引擎龙头 Google ChatGPT 的整合自家 AI 搜索引擎,成功缩小了与 Microsoft Copilot 和 Google Gemini 等竞争对手的关键差距,…

    最新资讯 2024年11月3日
  • ChatGPT Search 亮点有哪些?

    ChatGPT Search 亮点有哪些? 根据 GhatGPT 整理,ChatGPT 的搜索功能能够更灵活地响应复杂且时效性强的查询需求,具备五大亮点: 即时性数据:搜索功能允许…

    最新资讯 2024年11月3日
  • 如何使用 ChatGPT Search 搜索?

    如何使用 ChatGPT Search 搜索? 你可以点击 GhatGPT 文字框中的网络搜索图标,然后输入问题或关键词开始查询。 或是如果 ChatGPT 判断你的问题可从网络信…

    2024年11月3日
  • 应用程序无法在iPhone上加载:如何修复

    您的 iPhone 上没有加载应用程序?如果一个应用程序需要很长时间才能加载,这是不正常的。除了仍处于测试阶段的应用程序外,当您在 iPhone 上打开它们时,它们应该会立即加载。…

    2024年6月15日 苹果Apple
  • iPhone上的数据需要更新:修复

    尝试使用蜂窝数据浏览互联网时收到此消息“使用蜂窝数据需要更新”?出现此提示的主要原因是即将进行的iOS更新,该更新可以改善蜂窝网络。但是,您可以在Apple iPhone上解决问题…

    2024年6月15日 苹果Apple
  • iPhone粘滞键问题:如何修复

    您的 iPhone 按钮是否卡住或被自动按下?这个问题,也称为“粘滞键”,可能非常成问题。您甚至无法增加或减少 iPhone 的音量,因为按键很粘。因此,在这种情况下,您可以尝试一…

    苹果Apple 2024年6月15日
  • Apple Music 会自行暂停歌曲:修复

    您的曲目是否在 Apple Music 上不断自动暂停?音乐中频繁和突然的停顿意味着它正在缓冲,这就是为什么它无法连续流式传输歌曲的原因。从生锈、不稳定的音乐质量连接开始,可能会暂…

    2024年6月15日 苹果Apple
  • iPhone卡在飞行模式:如何修复

    在某些情况下,飞行模式非常方便。但是,如果您的iPhone突然卡在其中,相同的飞行模式可能会让您头疼。在本文中,我们设计了这套解决方案,可以让您的iPhone退出飞行模式。 快速解…

    2024年6月15日 苹果Apple
  • 电源按钮在iPhone上不起作用:修复

    电源按钮在您的 iPhone 上无法正常工作吗?电源按钮的无功能可能很烦人。虽然您可能不会经常关闭或重新启动iPhone,但该按钮的主要目的是锁定和唤醒设备。不用担心。即使按钮不起…

    2024年6月13日 苹果Apple
  • 如何在谷歌地图上使用一目了然的方向

    在宣布一年后,谷歌地图推出了一目了然的方向功能。一旦您在地图上设置了目的地的路线,它就会总结您的旅行路线。旅程开始后,您可以从手机锁定屏幕“浏览”路线导航。 无需时不时地解锁手机,…

    2024年6月13日 苹果Apple
  • 如何修复iPhone App Store上的更新下载缓慢

    App Store 是 Apple 的独家在线市场,用于在 iPhone 或 iPad 上安装和更新应用程序。有时,在 App Store 上下载应用程序更新可能会变得非常缓慢。 …

    2024年6月13日 苹果Apple
  • iPhone电池突然掉落:修复

    iPhone电池突然掉线了吗?这个问题似乎影响了少数iPhone用户。电池电量的持续下降可能是一个严重的问题,需要用户注意。您可以执行某些检查并维护多种预防措施。因此,不要浪费一秒…

    2024年6月12日 苹果Apple
  • iPhone中的延迟通知:修复

    您的 iPhone 收到通知时是否存在明显延迟?有些通知可能非常具有时效性,因此即使几分钟后收到通知也会破坏交易。因此,考虑到眼前的这种情况,我们设计了这些非常有用的解决方案。请按…

    2024年6月12日 苹果Apple
  • iPhone卡在充电屏幕上:修复

    您的iPhone是否卡在充电屏幕上?iPhone中的此类问题并非闻所未闻。因此,您可以进行一些修复和其他安排来解决此问题。可能的原因包括使用错误种类的 USB 电缆或使用变形的 U…

    2024年6月12日 苹果Apple
  • 实时活动在iPhone上不起作用:修复

    实时活动无法在iPhone上运行?实时活动非常有用,可以在 iPhone 上获取持续更新。如果实时活动功能不起作用,您将无法从任何应用程序获得实时更新。您必须打开应用程序并重复一系…

    2024年6月12日 苹果Apple
  • iPhone键盘未显示:修复

    无法访问 iPhone 上的键盘?在某些情况下,即使您点击应用程序的活动部分,键盘也可能不会显示在屏幕上。有时这种类型的错误会出现在 iOS 上,有几种解决方法可以解决这个问题。不…

    2024年6月12日 苹果Apple
  • iPhone自行随机振动:修复

    您的 iPhone 会自行自动振动吗?每当 iPhone 推送通知时,某些应用程序可能会振动您的 iPhone。因此,如果您想在iPhone上停止这种不稳定的振动,则可以在手机上按…

    2024年6月12日 苹果Apple
  • iPhone手势不起作用:如何修复

    手势在您的 iPhone 上不起作用?使用双击背面等手势快速截屏使 iPhone 更有用。因此,iPhone 上缺少这些关键手势可能会破坏您的用户体验。但是,有一个非常简单快捷的修…

    2024年6月12日
  • iPhone应用程序未更新:这是修复程序

    无法更新 iPhone/iPad 上的应用程序?每个应用程序都需要在服务中的某个时间点进行更新,以在应用程序中引入新功能或修补错误。因此,如果您无法更新 iPhone 中的应用程序…

    2024年6月12日 苹果Apple
  • Gmail无法在iPhone上打开:修复

    等待一封非常重要的电子邮件,但是如果Gmail停止在iPhone上工作怎么办?不仅重要邮件不会进入您的手机,而且如果您根本无法打开 Gmail 应用程序,则无法查看收件箱。如果是这…

    2024年6月12日 苹果Apple
  • 来电未显示在iPhone屏幕上:修复

    您的 iPhone 上没有收到任何来电通知?通常,每当您接到电话时,iPhone屏幕都会亮起。使用电话的主要原因是通信。那么,如果您无法在 iPhone 上接听任何来电,那它有什么…

    2024年6月12日 苹果Apple
  • iPhone侧边按钮不起作用:如何重新启动

    随着 iPhone 上的侧边按钮的定期和长时间使用,它可能会停止正常工作。这并不罕见,几乎任何iPhone用户都可能发生。但是,如果侧边按钮停止工作,则某些功能将受到限制。这包括重…

    2024年6月12日 苹果Apple
  • iPhone滞后问题:这是修复方法

    在iPhone上遇到滞后?就像其他手机一样,您有时可能会在 iPhone 上遇到抖动或滞后。但是,如果您使用哪种应用程序,iPhone开始一直滞后并显示出抖动的迹象,则不应进一步忽…

    2024年6月12日 苹果Apple
  • iCloud同步列表中缺少语音备忘录选项:修复

    使用Apple设备有其自身的优势,因为您的所有联系人,备忘录,便笺,钱包,照片都会自动同步。但是,在同步iCloud设置时,您可能看不到“语音备忘录”选项。如果您受到此问题的影响,…

    2024年6月4日 苹果Apple