重要说明:语音输入仅支持 MacOS,Windows 支持即将添加!
🚀 关于 Dot
Dot 是一款独立的开源应用程序,旨在使用本地 LLMs 和检索增强生成 (RAG) 无缝地与文档和文件交互。它受到 Nvidia 的 Chat with RTX 等解决方案的启发,为没有编程背景的用户提供了一个用户友好的界面。默认使用 Phi-3 LLM,Dot 确保开箱即用的可访问性和简单性。
https://github.com/alexpinel/Dot/assets/93524949/28b26128-7bdc-4bf7-99f3-d09bd8431875
📜 它的功能是什么?
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,则可能不需要执行此步骤,但请确保替换 src/index.js
中指定的 Python 路径位置。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 链接
- Unstructured 链接(使用
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 选择 - 已完成!
- 图像文件支持
- 超越内容的增强文档意识
- 简化的文件加载(选择单个文件,而不仅仅是文件夹)
- 使用本地 LLM 的更高安全性
- 支持额外的文档类型
- 更高效的文件数据库管理,以便更快地访问文件组
🤝 想要帮助吗?
我们非常鼓励贡献!作为一名学生,管理这个项目是我的业余工作,所以任何帮助都非常感谢。无论是编码、文档编写还是功能建议,请随时参与!