本地私有化部署 DeepSeek + Dify,构建你的专属私人 AI 助手

概述

DeepSeek 是一款开创性的开源大语言模型,凭借其先进的算法架构和反思链能力,为 AI 对话交互带来了革新性的体验。通过私有化部署,你可以充分掌控数据安全和使用安全。你还可以灵活调整部署方案,并实现便捷的自定义系统。

Dify 作为同样开源的 AI 应用开发平台,提供完整的私有化部署方案。通过将本地部署的 DeepSeek 服务无缝集成到 Dify 平台,企业可以在确保数据隐私的前提下,在本地服务器环境内构建功能强大的 AI 应用。

以下是私有化部署方案的优势:

  • 性能卓越:提供媲美商业模型的对话交互体验

  • 环境隔离:完全离线运行,杜绝数据外泄风险

  • 数据可控:完全掌控数据资产,符合合规要求

前置准备

硬件环境:

  • CPU >= 2 Core

  • 显存/RAM ≥ 16 GiB(推荐)

软件环境:

开始部署

1. 安装 Ollama

[Ollama][https://ollama.com/] 是一款跨平台的大模型管理客户端(MacOS、Windows、Linux),旨在无缝部署大型语言模型 (LLM),例如 DeepSeek、Llama、Mistral 等。Ollama 提供大模型一键部署,所有使用数据均会保存在本地机器内,提供全方面的数据隐私和安全性。

访问 [Ollama 官网][https://ollama.com/],根据提示下载并安装 Ollama 客户端。安装完成后,在终端内运行 ollama -v 命令将输出版本号。

  ~ ollama -v
ollama version is 0.5.5

根据实际的环境配置,选择合适的 DeepSeek 尺寸模型进行部署。初次安装推荐安装 7B 尺寸模型。

运行命令 ollama run deepseek-r1:7b 安装 DeepSeek R1 模型。

2. 安装 Dify 社区版

访问 Dify GitHub 项目地址,运行以下命令完成拉取代码仓库和安装流程。

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d # 如果版本是 Docker Compose V1,使用以下命令:docker-compose up -d

运行命令后,你应该会看到所有容器的状态和端口映射。详细说明请参考 Docker Compose 部署

Dify 社区版默认使用 80 端口,点击链接 http://your_server_ip 即可访问你的私有化 Dify 平台。

3. 将 DeepSeek 接入至 Dify

点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Ollama,轻点“添加模型”。

模型供应商内的 DeepSeek 对应在线 API 服务;本地部署的 DeepSeek 模型对应 Ollama 客户端。请确保 DeepSeek 模型已成功部署由 Ollama 客户端部署,详细部署说明请参考上文。

选择 LLM 模型类型。

  • Model Name,填写具体部署的模型型号。上文部署的模型型号为 deepseek-r1 7b,因此填写 deepseek-r1:7b

  • Base URL,填写 Ollama 客户端的运行地址,通常为 http://your_server_ip:11434。如遇连接问题,请阅读下文中的 常见问题

  • 其它选项保持默认值。根据 DeepSeek 模型说明,最大生成长度为 32,768 Tokens。

搭建 AI 应用

DeepSeek AI Chatbot(简单应用)

  1. 轻点 Dify 平台首页左侧的"创建空白应用",选择"聊天助手"类型应用并进行简单的命名。

  1. 在右上角的应用类型,选择 Ollama 框架内的 deepseek-r1:7b 模型。

  1. 在预览对话框中输入内容,验证 AI 应用是否能够正常运行。生成答复后意味着 AI 应用的搭建已完成。

  1. 轻点应用右上方的发布按钮,获取 AI 应用链接并分享给他人或嵌入至其它网站内。

DeepSeek AI Chatflow / Workflow(进阶应用)

Chatflow / Workflow 应用可以帮助你搭建功能更加复杂的 AI 应用,例如具备文件识别、图像识别、语音识别等能力。详细说明请参考工作流文档

  1. 轻点 Dify 平台首页左侧的"创建空白应用",选择"Chatflow" 或 "Workflow" 类型应用并进行简单的命名。

  1. 添加 LLM 节点,选择 Ollama 框架内的 deepseek-r1:7b 模型,并在系统提示词内添加 {{#sys.query#}} 变量以连接起始节点。

  1. 添加结束节点完成配置。你可以在预览框中输入内容以进行测试。生成答复后意味着 AI 应用的搭建已完成。

常见问题

1. Docker 部署时的连接错误

当使用 Docker 部署 Dify 和 Ollama 时,可能遇到以下错误:

httpconnectionpool(host=127.0.0.1, port=11434): max retries exceeded with url:/cpi/chat
(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>:
fail to establish a new connection:[Errno 111] Connection refused'))
httpconnectionpool(host=localhost, port=11434): max retries exceeded with url:/cpi/chat
(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>:
fail to establish a new connection:[Errno 111] Connection refused'))

错误原因:此错误发生是因为 Ollama 服务在 Docker 容器中无法访问。localhost 通常指向容器本身,而不是主机或其他容器。要解决此问题,需要将 Ollama 服务暴露到网络中。

macOS 环境配置方法:

如果 Ollama 作为 macOS 应用运行,需要使用 launchctl 设置环境变量:

  1. 通过调用 launchctl setenv 设置环境变量:

    launchctl setenv OLLAMA_HOST "0.0.0.0"
  2. 重启 Ollama 应用程序。

  3. 如果以上步骤无效,可以使用以下方法:

    问题是在 docker 内部,你应该连接到 host.docker.internal,才能访问 docker 的主机,所以将 localhost 替换为 host.docker.internal 服务就可以生效了:

    http://host.docker.internal:11434

Linux 环境配置方法:

如果 Ollama 作为 systemd 服务运行,应该使用 systemctl 设置环境变量:

  1. 通过调用 systemctl edit ollama.service 编辑 systemd 服务。这将打开一个编辑器。

  2. 对于每个环境变量,在 [Service] 部分下添加一行 Environment

    [Service]
    Environment="OLLAMA_HOST=0.0.0.0"
  3. 保存并退出。

  4. 重载 systemd 并重启 Ollama:

    systemctl daemon-reload
    systemctl restart ollama

Windows 环境配置方法:

在 Windows 上,Ollama 继承了你的用户和系统环境变量。

  1. 首先通过任务栏点击 Ollama 退出程序

  2. 从控制面板编辑系统环境变量

  3. 为你的用户账户编辑或新建变量,比如 OLLAMA_HOSTOLLAMA_MODELS 等。

  4. 点击 OK / 应用保存

  5. 在一个新的终端窗口运行 ollama

2. 如何修改 Ollama 服务地址和端口号?

Ollama 默认绑定 127.0.0.1 端口 11434,你可以通过 OLLAMA_HOST 环境变量更改绑定地址。

Last updated