DeepSeek轻量级本地化部署工具——AIMatrices DeepSeek

AIMatrices DeepSeek 是一款基于轻量级 AI 应用快速构建平台 AIMatrices 开发的开源 DeepSeek 本地化部署工具,支持本地模型、远程 API 灵活切换,旨在为用户提供高效、灵活且低成本的 DeepSeek 大模型部署解决方案。

功能特性

开箱即用

使用 Rust 编程语言开发,直接编译成二进制可执行文件,生成的可执行文件大小约为 40MB左右,无需安装任何外部依赖库,极大地简化了部署过程,无需使用容器即可在多种操作系统(如 Windows、macOS、Linux)上运行。

广泛硬件平台支持

通过 Rust 的 FFI 技术调用高性能的 llama.cpp 库,并以 Vulkan 作为后端进行模型推理,支持NVIDIA、AMD 、Intel等多种主流显卡,能够为模型推理提供显著的GPU加速效果,这种架构设计使得项目能够充分利用现代 GPU 的强大计算能力,同时保持良好的跨平台兼容性。

多模型支持与灵活切换

支持多种 DeepSeek-R1-Distill-Qwen 模型版本,包括 1.5B、7B、14B 等,用户可以根据硬件配置选择合适的模型进行本地部署,以满足对数据隐私和性能的双重需求,同时支持通过远程 API 调用 DeepSeek 模型服务,无需本地硬件支持。用户可以根据实际需求灵活切换本地模型和远程 API,实现高效部署和资源优化。

安全高效

使用 Rust 编程语言基于 AIMatrices 平台开发,确保应用在不同设备和操作系统上都能安全高效运行。Rust 的所有权系统和生命周期检查机制从根本上杜绝了空指针、数据竞争、内存泄漏等常见错误,使得程序在编译阶段就能发现大部分潜在的内存问题,从而减少运行时错误和崩溃。Rust 的性能接近于 C/C++,同时避免了垃圾回收机制的开销。它通过零成本抽象和高效的编译器优化,确保代码执行效率极高。

灵活配置与组件化

采用 WebAssembly 组件技术,通过应用配置文件定义应用的组件、路由规则、环境变量等配置信息,实现高度灵活的组件化开发。例如,可通过配置 allowed_outbound_hosts 控制组件的外部请求权限,或通过文件映射实现静态资源托管。

可扩展性与自定义能力

遵循 OpenAI API 规范进行模型 API 调用,通过标准化的接口参数,如输入文本、模型选择、温度参数等,实现对模型的调用和结果获取,除 DeepSeek 模型外,还支持使用其他OpenAI API 模型 。同时支持使用 JavaScript 代码进行自定义扩展,允许用户根据业务需求实现个性化的逻辑处理。

AI聊天功能丰富

支持多轮聊天、聊天记录保存至本地数据库;Mermaid 图表预览及导出、Markdwon 编辑及预览等功能。

用户界面友好

支持多国语言切换,用户可以根据自语言偏好选择界面语言,确保使用体验的便捷性和舒适性。前端页面采用了响应式设计,能够根据设备屏幕大小自动调整布局和元素大小,确保在手机、平板等移动设备上也能提供清晰、流畅的视觉效果,提供更好的移动端体验。

完全开源

AIMatrices DeepSeek 是一个开源项目,开发者可以自由访问其代码,进行定制和扩展。

快速开始

安装

方式一:直接下载可执行文件

从 AIMatrices GitHub Release 下载 ai-matrices-deepseek 对应系统版本,解压后即可使用

方式二:源码编译

编译前提条件是需要安装 Rust 环境

shell 复制代码
git clone https://github.com/guyoung/AIMatrices.git

## 编译 AIMatrices DeepSeek 主程序
cd AIMatrices/packages/ai-matrices-deepseek
cagro build -- release

## 编译 AIMatrices WebAssembly 组件
cd AIMatrices/components/llm-handler-component
cargo component build --release
cd AIMatrices/components/llm-local-handler-component
cargo component build --release
cd AIMatrices/components/static-file-handler-component
cargo component build --release

下载模型

可以根据运行计算机实际情况,选择其他模型

配置

如需运行本地模型,需要修改应用配置文件中本地模型相关信息,打开 app_data 目录下 app-config.json 文件,修改模型路径。

json 复制代码
{
    "id": "deepseek-local",
    "metadata": {
      "build": {},
      "local_llm_models": {
        "local/DeepSeek-R1": "./app_data/ai-models/huggingface/lmstudio-community/DeepSeek-R1-Distill-Qwen-7B-GGUF/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf"
      }
    },
    "source": {
      "content_type": "application/wasm",
      "source": "./app_data/components/ai_matrices_llm_local_handler_component.wasm"
    }
}

local/DeepSeek-R1 为 model_id,值为模型所在路径。

可以同时配置多个本模型。

json 复制代码
{
  "local_llm_models": {
    "local/DeepSeek-R1-7B": "./app_data/ai-models/huggingface/lmstudio-community/DeepSeek-R1-Distill-Qwen-7B-GGUF/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf",
    "local/DeepSeek-R1-0.5B": "./app_data/ai-models/huggingface/lmstudio-community/DeepSeek-R1-Distill-Qwen-0.5B-GGUF/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf"
  }
}

如为源码编译安装,还需修改 WebAssembly 组件文件位置

json 复制代码
{
  "source": {
    "content_type": "application/wasm",
    "source": "./app_data/components/ai_matrices_llm_local_handler_component.wasm"
  }
}

打开 app_data/codes/deepseek-api 目录下 index.js 文件,修改本地模型和远程 API 配置信息。

javascript 复制代码
const models = {
  "local/deepseek-r1": {
    name: "DeepSeek-R1(本地)", 
    model: "local/DeepSeek-R1", 
    local: true,
    url: "/service/deepseek-local",
    api_key: ""
  },
  "deepseek-chat": {
    name: "DeepSeek Chat", 
    model: "deepseek-chat", 
    local: false,
    url: "https://api.deepseek.com",
    api_key: "sk-********************************"
  },

  "deepseek-reasoner": {
    name: "DeepSeek Reasoner", 
    model: "deepseek-reasoner", 
    local: false,
    url: "https://api.deepseek.com",
    api_key: "sk-********************************"
  },
  "siliconflow/deepseek-v3": {
    name: "DeepSeek-V3(硅基流动)", 
    model: "deepseek-ai/DeepSeek-V3", 
    local: false,
    url: "https://api.siliconflow.cn/v1",
    api_key: "sk-********************************"
  },
  "siliconflow/deepseek-r1": {
    name: "DeepSeek-R1(硅基流动)", 
    model: "deepseek-ai/DeepSeek-R1", 
    local: false,
    url: "https://api.siliconflow.cn/v1",
    api_key: "sk-********************************"
  },
}

key 为 model_id,local 值 true 为本地模型,本地模型 model_id 与 name 保持一致,远程 API model 和 url 查看 API 文档,远程 API 需配置 api_key。

如果使用其他网址 API, 需修改 deepseek-api 组件 allowed_outbound_hosts 值,打开 app_data 目录下 app-config.json 文件。

json 复制代码
{
  "id": "deepseek-api",
  "metadata": {
    "build": { },
    "allowed_outbound_hosts": [
      "http://self",
      "https://api.deepseek.com",
      "https://api.siliconflow.cn"
    ],

    "key_value_stores": [
      "default"
    ]
  },
  "source": {
    "content_type": "application/wasm",
    "source": "../../target/wasm32-wasip1/release/ai_matrices_llm_handler_component.wasm"
  }
}

运行应用

Windows 命令行运行

shell 复制代码
ai-matrices-deepseek-windows-amd64.exe

Linux 命令行运行

shell 复制代码
./ai-matrices-deepseek-linux-amd64

命令行参数:

  • -i,--ip <port_number>: 指定服务器监听的 IP 地址,默认为 127.0.0.0。
    • example: --ip 0.0.0.0
  • -p,--port <port_number>: 指定服务器监听的端口号,默认为 21500。
    • example: --port 3000
  • --appdir : 指定工作目录,默认值为 ./app_data
    • example:--app-dir ./dir1
  • --appconfig : 指定应用配置文件,默认值为 ./app_data/app-config.json
    • example:--appconfig ./dir1/config.json
  • --user : 指定登录用户名,默认值为空
    • example:--user admin
  • --pass : 指定登录用户密码,默认值为空
    • example:--pass admin
  • --version: 打印系统版本号并退出。
  • --help: 查看命令的使用帮助和参数说明。
shell 复制代码
ai-matrices-deepseek-windows-amd64.exe -i 0.0.0.0 -p 8080 --user admin -- pass admin

其它

AIMatrices DeepSeek 前端程序使用了 chatgpt-web 项目代码。

下载网址:github.com/guyoung/AIM...

项目网址:github.com/guyoung/AIM...

相关推荐
丁劲犇33 分钟前
碳基生物的悲歌-DeepSeek思考实现Linux动态库递归收集工具
linux·递归·deepseek·ldd
Stara051140 分钟前
AI赋能编程:PyCharm与DeepSeek的智能开发革命
pycharm·ai编程·python3.9·deepseek
政安晨1 小时前
政安晨【零基础玩转各类开源AI项目】DeepSeek 多模态大模型Janus-Pro-7B,本地部署!支持图像识别和图像生成
人工智能·大模型·多模态·deepseek·janus-pro-7b
冰 河1 小时前
‌最新版DeepSeek保姆级安装教程:本地部署+避坑指南
人工智能·程序员·openai·deepseek·冰河大模型
♡喜欢做梦1 小时前
Deepseek 与 ChatGPT:AI 浪潮中的双子星较量
ai·chatgpt·deepseek
bin91534 小时前
DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)
前端·javascript·vue.js·ecmascript·deepseek
Hello.Reader5 小时前
深入理解 Rust 的 `Rc<T>`:实现多所有权的智能指针
开发语言·后端·rust
yoona10205 小时前
Rust编程语言入门教程(八)所有权 Stack vs Heap
开发语言·后端·rust·区块链·学习方法
大模型之路5 小时前
Grok-3:人工智能领域的新突破
人工智能·llm·grok-3
豆芽脚脚6 小时前
LLaMA中的微调方法
llama·deepseek