PocketRAG是一个轻量的本地化RAG(检索-增强-生成)应用。不需要复杂的配置,提供直装直用的检索体验。
目前支持Windows(x86_64)和MacOS(aarch64)平台。
CUDA支持:该应用支持调用CUDA独显加速模型推理,如果需要使用CUDA加速,请确保系统支持CUDA 12.0及以上版本,并安装了CUDA运行时。注意:带有CUDA加速的版本打包了cuDNN库,因此体积较大。
请从Releases页面选择对应操作系统的版本下载,如果需要使用CUDA加速,请下载带有cuda后缀的版本。
- x86_64
- Visual Studio with C++工具链
- CMake
- Ninja
- Node.js
为了使用MSVC工具链,请确保在Visual Studio Developer PowerShell中执行以下操作。
- aarch64(Apple Silicon)
- llvm/clang++编译器
- CMake
- Ninja
- Node.js
为了启用OpenMP支持,请确保已通过homebrew安装llvm/clang编译器。
-
克隆仓库
git clone https://github.com/LKLLLLLLLLLL/PocketRAG cd PocketRAG -
获取依赖
npm install git submodule update --init --recursive
-
通过vcpkg编译依赖:
./vcpkg/bootstrap-vcpkg.bat cd kernel ../vcpkg/vcpkg install -
执行构建脚本
cd .. # 返回到项目根目录 npm run build --
可选参数:
--cuda:构建使用CUDA加速的版本,默认构建不使用CUDA加速。--win [target]:为Windows指定构建的目标格式,支持nsis,msi,portable,推荐nsis。默认将以全部格式打包。--mac [target]:为Mac指定构建的目标格式,支持dmg,zip,推荐dmg。默认将以全部格式打包。
例如:
npm run build -- --cuda --win nsis将构建一个使用CUDA加速的Windows NSIS安装包。注意: 由于C++内核需要在目标平台上编译,不支持跨平台构建。
-
构建完成后,安装包将位于
dist/目录下。
关于构建脚本:
-
构建脚本中将自动下载预编译的
ONNX Runtime库,如果使用CUDA加速版本,还会下载cuDNN库。 -
若脚本执行失败,请参考Dependencies.md手动安装依赖,之后再次执行构建脚本。
请参照从源码构建章节执行一次构建,可以确保所有依赖都已正确安装。
在开发过程中,可以使用以下命令启动启动热重载服务器:
npm run devkernel/- C++后端核心代码src/- 源代码文件include/- 头文件external/- 第三方依赖
electron/前端代码main/- Electron主进程renderer/- Electron渲染进程与界面public/- 静态资源
docs/- 文档scripts/- 构建和开发脚本
搜索结果依赖于嵌入,如果没有正确配置嵌入,可能会导致搜索结果为空。请在设置界面正确导入模型,并设置嵌入配置信息。
一般而言,只要是ONNX格式的模型都可以使用。目前已经测试过以下模型:
BGE-m3:适用于中文和英文的嵌入模型BGE-reranker-v2-m3:适用于中文和英文的重排序模型
使用CUDA加速需要确保以下几点:
- 系统是Windows平台
- 正确安装Nvidia驱动,并且CUDA版本为12.0或以上
- 系统已安装CUDA运行时
- 下载了支持CUDA加速的PocketRAG版本,或者在构建时使用了
--cuda参数。
本项目基于 Apache License 2.0 许可证开源。
使用CUDA加速版本时包含NVIDIA cuDNN库,该组件受NVIDIA软件许可协议约束。