Dot 是一款独立的开源应用程序,旨在使用本地 LLM 和检索增强生成 (RAG) 与文档和文件进行无缝交互。它受到 Nvidia Chat with RTX 等解决方案的启发,为没有编程背景的人提供了用户友好的界面。默认情况下,Dot 使用 Phi-3 LLM,确保开箱即用的可访问性和简单性。
屏幕.录制.2024-05-20.at.20.27.52.2.mp4
Screen.Recording.2024-05-20.at.20.27.52.2.mp4
Dot 允许您将多个文档加载到 LLM 中,并在完全本地的环境中与它们交互。支持的文档类型包括 PDF、DOCX、PPTX、XLSX 和 Markdown。用户还可以与 Big Dot 互动,以进行与其文档不直接相关的查询,类似于与 ChatGPT 交互。
Dot 是基于 Electron JS 构建的,它封装了一个包含所有必要库的综合 Python 环境。该应用程序利用 FAISS 等库来创建本地向量存储,利用 Langchain、llama.cpp 和 Huggingface 来设置对话链,并利用其他工具来管理文档和进行交互。
要使用 Dot:
- 访问Dot 网站下载适用于 Apple Silicon 或 Windows 的应用程序。
对于开发人员:
- 克隆存储库
$ https://github.com/alexpinel/Dot.git
- 安装 Node js,然后
npm install
在项目存储库中运行,npm install --force
如果在此阶段遇到任何问题,都可以运行
现在,是时候向应用程序添加一个完整的 Python 包了。这样做的目的是创建一个包含所有必要库的可分发环境,如果你只打算从控制台使用 Dot,则可能不需要遵循此特定步骤,但请确保替换中指定的 Python 路径位置src/index.js
。此处详细介绍了如何创建 Python 包:https://til.simonwillison.net/electron/python-inside-electron,也可以从此处安装包:https://github.com/indygreg/python-build-standalone/releases/tag/20240224
创建包后,请将其重命名为“python”并将其放在目录中llm
。现在是时候获取所有必要的库了,请记住,pip install
如果不指定包的实际路径,运行简单包将不起作用,因此请使用以下命令:path/to/python/.bin/or/.exe -m pip install
所需的 Python 库:
- pytorch链接(推荐使用 CPU 版本,因为它比 GPU 更轻)
- langchain链接
- FAISS链接
- HuggingFace链接
- llama.cpp链接(如果您有 Nvidia GPU,请使用 CUDA 实现!)
- pypdf链接
- docx2txt链接
- 非结构化链接(
pip install "unstructured[pptx, md, xlsx]
用于文件格式)
现在 python 应该已经设置好并运行了!不过,还有几个步骤,现在是时候为 Dot 添加最后的魔法了!首先,在目录中创建一个文件夹llm
并将其命名为mpnet
,在那里你需要安装 sentence-transformers 以用于文档嵌入,从以下链接获取所有文件并将它们放在新文件夹中:sentence-transformers/all-mpnet-base-v2
最后,从以下链接下载 Mistral 7B LLM,并将其放在llm/scripts
Dot 使用的 Python 脚本目录中:TheBloke/Mistral-7B-Instruct-v0.2-GGUF
就是这样!如果你按照这些步骤操作,你应该能够让一切运行起来,如果你遇到任何问题,请告诉我 :)
- Linux 支持
- 选择法学硕士 (LLM)——完成!
- 图像文件支持
- 增强对内容之外的文档的认识
- 简化文件加载(选择单个文件,而不仅仅是文件夹)
- 加强使用本地法学硕士的安全措施
- 支持其他文档类型
- 高效的文件数据库管理,可更快地访问文件组
强烈鼓励大家做出贡献!作为一名兼职管理这个项目的学生,任何帮助都会得到极大的赞赏。无论是编码、文档还是功能建议,请随时参与!