Dot 项目介绍
项目概述
Dot 是一款独立的开源应用程序,专注于通过本地的大语言模型(LLM)和检索增强生成(RAG)来实现与文档和文件的无缝交互。灵感来源于像 Nvidia 的 Chat with RTX 这样的解决方案,它为没有编程背景的人提供了一个用户友好的界面。默认使用 Phi-3 LLM 模型,Dot 的设计旨在确保用户可以开箱即用地实现易用性和简洁性。
功能概览
Dot 允许用户在完全本地的环境中加载多个文档,并与之交互。支持的文档类型包括 PDF、DOCX、PPTX、XLSX 和 Markdown。此外,用户还可以与“大 Dot”交流,处理那些与文档不直接相关的询问,这与使用 ChatGPT 相似。
工作原理
Dot 基于 Electron JS 构建,并包含一个全面的 Python 环境,该环境整合了所有必要的库。应用程序利用了 FAISS 库来创建本地向量存储,使用Langchain、llama.cpp 和 Huggingface 来设置对话链,并有其他工具用于文档管理和交互。
应用安装说明
下载和安装
- 用户可以访问 Dot 网站 下载适用于 Apple Silicon 或 Windows 的应用程序。
开发者指南
- 首先,克隆存储库:
$ https://github.com/alexpinel/Dot.git
- 安装 Node.js,并在项目存储库内运行
npm install
,如果遇到问题,可以使用npm install --force
为了创建带有所有必要库的可分发环境,接下来应添加完整的 Python 包。这对从控制台使用 Dot 的用户可能不是必需,但若按照标准操作,请确保替换src/index.js
中的 Python 路径。有关创建 Python 包的详细步骤,请参阅:如何在 Electron 内使用 Python。
所需的 Python 库包括:
- pytorch(推荐 CPU 版本)
- langchain
- FAISS
- HuggingFace
- llama.cpp(若有 Nvidia GPU,建议使用 CUDA 实现)
- pypdf
- docx2txt
- Unstructured
未来功能展望
- 提供 Linux 支持
- 已实现多种 LLM 选择
- 支持图像文件
- 增强对文档超出内容本身的感知能力
- 简化文件加载流程(支持单独选择文件,而不仅是文件夹)
- 提高使用本地 LLM 的安全措施
- 支持更多的文档类型
- 提供高效的文件数据库管理,实现快速访问文件组
如何参与
热忱欢迎大家贡献力量!无论是编码、文档撰写,还是功能建议,任何形式的帮助都非常感激。作为一名在校学生,作者业余时间管理这个项目,因此任何援助都将不胜感激。
在 GitHub 上查看 Star 历史以了解项目的社区参与情况。
如果您对项目有任何问题或者想到更多的帮助方式,请随时联系!