带你一步步搭建 DeepSeek + Ollama + Dify,快速部署私有化 AI 助手。

最近这一两周不少公司都已经停止秋招了。

不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。

最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。

总结如下:

《大模型面试宝典》(2025版) 发布!
《AIGC 面试宝典》圈粉无数!

喜欢本文记得收藏、关注、点赞


本文将带你一步步搭建 DeepSeek + Ollama + Dify,快速部署全功能的私有化 AI 助手。

前置准备

购置一台满足以下条件的服务器(VPS 或 VDS):

硬件环境:

  • CPU >= 2 Core

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

软件环境:

  • Docker

  • Docker Compose

  • Ollama

  • Dify 社区版

开始部署

1. 安装 Ollama

正如手机内通常会具备应用商店,帮助你快速找到并下载 App 一样,AI 模型也有自己的专属“应用商店”。

Ollama 便是这样一款跨平台的开源大模型管理客户端(支持 macOS、Windows、Linux),旨在无缝部署大型语言模型 (LLM),例如 DeepSeek、Llama、Mistral 等。

仅需一条命令即可完成安装大模型和部署,LLM 的所有使用数据均会保存在本地机器内,提供全方面的数据隐私和安全性,满足合规要求。

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

~ ollama -v
ollama version is 0.5.5

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

后缀的 B 表示模型的训练参数。理论上参数越高,模型的表现也越智能,所需的显存也越高。

图片

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

图片

2. 安装 Dify 社区版

正如房屋通了水电之后,还需要一个功能完善的厨房才能让厨师生产出美味佳肴,Dify 的作用便是如此。作为热门的 GitHub 开源项目,Dify 已内置了贯穿构建 AI 应用时所需的各式工具链。无需掌握复杂的代码知识,结合 DeepSeek 强大的模型能力,任何人都可以快速打造出心目中理想且好用的 AI 应用。

访问 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 及 Docker Compose。详细说明请参考以下内容。

3. 将 DeepSeek 接入至 Dify

部署 DeepSeek 模型与 Dify 社区版后,点击链接 http://your_server_ip 进入 Dify 平台,接着点击右上角头像 → 设置 → 模型供应商,选择 Ollama,轻点“添加模型”。

图片

选择 LLM 模型类型。

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

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

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

图片

开始搭建 AI 应用

以下章节将为你介绍如何搭建不同类型的 AI 应用:

  • 简单对话应用

  • 具备文件分析能力的简单对话应用

  • 具备联网搜索的可编排应用

DeepSeek AI Chatbot(简单应用)

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

图片

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

图片

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

图片

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

DeepSeek AI Chatbot + 知识库

大规模语言模型(LLM)面临的一个重要挑战在于训练数据并非实时更新,且数据量可能不足,这容易导致模型生成“幻觉”式的回答。

为了解决这一问题,检索增强生成(RAG)技术应运而生。通过检索相关知识,为模型提供必要的上下文信息,将这些信息融入内容生成过程中,从而提升回答的准确性和专业度。

在实际应用中,当你上传内部文档或专业资料后, Dify 的知识库功能可以承担起 RAG 作用,帮助 LLM 基于专业资料提供更有针对性的解答,有效弥补模型训练数据的不足。

1. 创建知识库

将需要 AI 分析处理的文档上传至知识库中。为确保 DeepSeek 模型能够准确理解文档内容,建议使用"父子分段"模式进行文本处理 - 这种模式能够更好地保留文档的层级结构和上下文关系。

图片

2. 将知识库集成至 AI 应用

在 AI 应用的“上下文”内添加知识库,在对话框内输入相关问题。LLM 将首先从知识库内获取与问题相关上下文,在此基础上进行总结并给出更高质量的回答。

图片

DeepSeek AI Chatflow / Workflow(联网搜索)

Chatflow / Workflow 应用可以帮助你编排并搭建功能更加复杂的 AI 应用,例如为 DeepSeek 赋予联网搜索、文件识别、语音识别等能力。出于篇幅考虑,以下章节为你介绍如何为 DeepSeek 开启联网搜索能力

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

图片

2.添加联网搜索节点,填入 API Key 以激活节点功能。在 Query 字段内填写初始节点提供的 `{{#sys.query#}}` 变量。

访问以下网站获取 API Key:

https://serpapi.com/users/sign_in

图片

3.添加代码执行节点。由于搜索工具的输出内容为一段 JSON 代码,因此需要添加代码执行节点提取必要的内容。输入变量填写搜索工具的 JSON 输出变量,并在代码执行节点内填入以下代码:

def main(json: list) -> dict:
    # 提取 organic_results 内容
    organic_results = json[0].get("organic_results", [])
    
    # 将所有的标题和链接拼接为一个字符串
    result_string = ""
    for item in organic_results:
        result_string += f"Title: {item['title']}\nLink: {item['link']}\nSnippet: {item['snippet']}\n\n"
    
    # 返回拼接后的字符串作为 result
    return {
        "result": result_string,
    }

图片

4. 添加 LLM 节点,选择 Ollama 框架内的 `deepseek-r1:7b` 模型,并在系统提示词内添加 `{{#sys.query#}}` 变量以处理来自起始节点由用户输入的指令。

如遇 API 异常,可以通过负载均衡功能或异常处理节点进行灵活处理。

负载均衡可以通过在多个 API 端点之间分配 API 请求,详细说明请参考:https://docs.dify.ai/zh-hans/guides/model-configuration/load-balancing

异常处理机制能够在节点发生错误时抛出故障信息而不中断主流程。详细说明请参考:https://docs.dify.ai/zh-hans/guides/workflow/error-handling

图片

5. 添加结束节点,引用 LLM 节点的输出变量并完成配置。你可以在预览框中输入内容以进行测试。生成答复后意味着 AI 应用的搭建已完成,你可以在日志内查看 LLM 的推理过程。

图片

常见问题

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 服务运行,应该使用 `s****ystemctl` 设置环境变量:

  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
    
### 使用OllamaDeepSeekDify进行私有化部署以创建自定义AI代理 #### 准备工作 为了成功地使用OllamaDeepSeek以及Dify来构建一个私有的AI代理,需要先准备好环境配置。这通常意味着安装必要的软件包和服务,并确保计算机能够访问互联网以便下载所需的依赖项。 #### 配置Ollama服务 通过命令行工具执行特定指令可以启动并运行Ollama服务。一旦该服务被激活,在本地环境中就拥有了处理自然语言请求的能力[^1]。 ```bash # 假设这是从官方文档获取的初始化OLLAMA服务的命令 ollama_service_command --option value ``` #### 安装与设置DeepSeek大模型 继续在同一终端会话中操作,接下来要做的就是按照指导说明输入相应的命令字符串,从而完成DeepSeek大型预训练模型的加载过程。此步骤完成后,即实现了基于OLLAMA框架下的深度学习能力增强。 ```bash # 初始化DEEPSEEK模型实例化的命令示例 deepseek_model_init "path_to_config_file" ``` #### 构建应用逻辑-Dify平台集成 最后一步涉及到了应用程序层面的设计——借助于DIFY这样一个强大的开源LLM(大规模语言模型)应用开发平台来进行具体业务场景的应用搭建。它提供了丰富的特性集支持开发者高效实现想法中的智能交互流程设计;比如对话管理、数据检索增强等功能模块都极大地简化了复杂系统的建设难度[^2]。 ```python from dify import Application, IntentHandler app = Application() @app.intent('greeting') def handle_greeting(context): response_text = 'Hello! How can I assist you today?' context.reply(response_text) if __name__ == "__main__": app.run() ``` 以上代码片段展示了如何利用Python SDK快速建立一个简单的意图处理器,当接收到问候语句时返回友好回应给用户端。 综上所述,通过上述三个组件的有效组合,便可以在相对封闭的安全环境下建立起个性化的AI助手解决方案,满足不同行业领域内的定制需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值