Deepseek+Dify本地部署教程


目前轻风智语平台已经按照各部门的实际需求收集了各类文件,创建了本校的知识库,并且开发了一批智能体应用。后续本平台会将开发权限逐渐下放至部门和个人,让学校的各个部门和各位老师根据自身的需求自己创建需要的智能体,提高工作效率。但现阶段受制于算力资源不足,暂时不会将资源进行公开。本指南将以deepseek为例,介绍本地化部署大模型和调用大模型的方法,让有硬件资源的个人或工作室搭建自己的知识库和智能体。


一.deepseek本地部署


  1. 环境要求


1.1 轻量级模型 (1.5B/7B/8B)‌

 ‌显存需求‌:

1.5B4-6GB

7B/8B10-12GBINT8量化为6-8GB

 ‌推荐显卡‌:

RTX 3060 (12GB)

RTX 4060 Ti (16GB)

支持纯CPU推理(速度显著下降)


 ‌1.2中型模型 (14B/32B)

 ‌显存需求‌:

14B16-20GBFP16)→ 8-10GBINT8

32B24-32GBFP16)→ 12-16GBINT8

 ‌推荐显卡‌:

RTX 3090 (24GB)

RTX 4090 (24GB)

双卡RTX 4080NVLink桥接显存共享)


 ‌1.3  大规模模型 (70B/671B)(不推荐个人部署)

 ‌显存需求‌:

70B64-80GBFP16)→ 32-40GBINT8

671B:需多节点GPU集群

 ‌推荐配置‌:

多卡RTX 4090(需PCIe 5.0平台高速互联)

其他大模型一体机


  1. 部署方式

Deepseek有多种部署方式,从兼容性和轻量化的角度考虑,Ollama部署是比较适合个人部署的方式。


    1. 下载Ollama

直接访问Ollama官网( https://ollama.com/ ),点击"Download"按钮,选择对应系统下载。

如果速度太慢,可以选择左上角github下载release版本


    1. 安装Ollama

下载好Ollama后直接安装即可,如果是windows用户,Ollama默认是安装在C盘的,建议通过下面的方法将安装好的Ollama放在D盘,以减轻C盘的压力。

  1. 迁移Ollama安装目录

主应用程序迁移:将C:\Users\XX\AppData\Local\Programs\Ollama这个文件夹移动到DD:\Ollama

模型目录迁移:将C:\Users\XX\.ollama移动到DD:\Ollama\.ollama

  1. 修改环境变量

先进入”系统信息“栏

选中下方“高级系统设置”

选中下方“环境变量”

找到用户变量的PATH

将你的ollama的路径加进去,以D:\Ollama为例

在下方系统变量中增加一条变量:


OLLAMA_MODELS D:\Ollama\ollama(此处路径为刚才模型目录的路径)

  1. 验证

打开CMD命令行,输入ollama -v,能正常显示版本号则表示安装成功

    1. 部署模型

首先在ollama官网点击模型、再选择想要部署的模型,这里我们选择deepseek-r1

选择对应的数据集版本,这里我们选择7b,在右上角进行命令拷贝

拷贝好之后直接在命令行输入这一段命令进行模型下载,可能会花一些时间,下载好后模型会自动加载,加载完成后就可以通过命令行与大模型进行对话了

二.个人知识库及智能体的搭建

在模型部署好之后,可以完成基本的对话功能,建议只对基本对话有需求的老师再去下载chatbox或者OpenwebUI等可视化图形界面工具。

在学校这种需求众多的场景中,仅有对话功能是无法满足大部分老师的需求的,而是需要一个专属的知识库、搭建对应的智能体,完成各类工作流任务。目前市面上有大量此类平台,如扣子、腾讯元器等等,这些智能体搭建平台大多由大厂开发,部分功能会收取相应的费用,并且学校的部分文件具有一定的私密度,上传到这些平台的知识库存在一定的安全风险,所以这些平台并不适合学校的场景。

智能体搭建平台也进行本地化部署是更适合学校场景的一种模式,目前市面上也有很多开源的工具,例如DifyMaxKBFastGPT等等,下文以Dify为例,教学从部署到使用的详细步骤。


1   准备工作


1.1 Docker Desktop安装

Dify的部署需要特定的环境依赖,在家用电脑上一一去安装对应的环境太过复杂,我们使用Docker容器进行部署。安装地址:https://www.docker.com/  选择对应的系统进行安装。如果提示WSL版本过低或者更新失败,则打开cmd,输入wsl --update

此时基本就完成了Docker的安装,下一步可以根据自身需求选择注册登录Docker,如果没有复杂需求其实可以选择不登录,对于部署Dify来说,即便不登录也可以。

1部署Dify

首先进入Dify官网https://dify.ai/zh,点击GitHub,在GitHub页面中点击Download ZIP下载项目文件(Github不稳定,推荐使用代理)。

下载下来的文件是一个叫dify-main的压缩包,解压到磁盘里并进入到docker文件夹内,把.env.example文件名改为.env

完成文件改名后,在文件夹内打开cmd,注意一定是在文件夹内打开,或者也可以通过之前的方式打开cmd,然后通过cd /d +路径 的方式转到该文件夹。在cmd中输入docker compose up -d并回车,通过docker compose部署DifyDocker会自动拉取Dify所需的依赖。


如下图所示,等到依赖全部安装完成,就完成了Dify的部署。

如果在部署过程中出现各类问题,请将报错信息在百度上进行查找解决方法,本指南不一一列举,大多数的问题集中在Docker镜像,因为没有配置国内镜像的原因导致在拉取所需内容的时候一直超时或者拉取到一半出现报错,为了解决这个问题需要配置一下Docker镜像。

打开Docker的软件界面,点击设置,进入到Docker Engine,在右边添加以下内容,输入完成后点击应用(Apply&restart) 此时再在cmd中输入docker compose up -d命令,等待安装完成即可。

{

"builder": {

"gc": {

"defaultKeepStorage": "20GB",

"enabled": true

}

},

"experimental": false,

"registry-mirrors": [

"https://registry.docker-cn.com",   

"https://s4uv0fem.mirror.aliyuncs.com",    

"https://docker.1ms.run",    

"https://registry.dockermirror.com",    

"https://docker.m.daocloud.io",    

"https://docker.kubesre.xyz",    

"https://docker.mirrors.ustc.edu.cn",   

"https://docker.1panel.live",    

"https://docker.kejilion.pro",    

"https://dockercf.jsdelivr.fyi",   

"https://docker.jsdelivr.fyi",   

"https://dockertest.jsdelivr.fyi",    

"https://hub.littlediary.cn",    

"https://proxy.1panel.live",   

"https://docker.1panelproxy.com",    

"https://image.cloudlayer.icu",    

"https://docker.1panel.top",    

"https://docker.anye.in",    

"https://docker-0.unsee.tech",   

"https://hub.rat.dev",   

"https://hub3.nat.tf",    

"https://docker.1ms.run",    

"https://func.ink",    

"https://a.ussh.net",    

"https://docker.hlmirror.com",    

"https://lispy.org",   

"https://docker.yomansunter.com",    

"https://docker.xuanyuan.me",    

"https://docker.mybacc.com",    

"https://dytt.online",    

"https://docker.xiaogenban1993.com",   

"https://dockerpull.cn",    

"https://docker.zhai.cm",    

"https://dockerhub.websoft9.com",   

"https://dockerpull.pw",   

"https://docker-mirror.aigc2d.com",    

"https://docker.sunzishaokao.com",   

"https://docker.melikeme.cn"

]

}


1.2 Dify的使用


  1. 模型的接入

安装完成后,在浏览器输入http://localhost/install访问并配置Dify,进行注册后就可以登录了。

登录之后,在右上角设置的模型供应商处找到Ollama并安装

接下来再配置刚才使用Ollama本地部署好的大模型,但由于dify是通过docker部署的ollama运行在本地电脑,要使dify能够访问ollama部署的模型服务,需要获取到本地电脑的内网IP

cmd里输入ipconfig查看本机的ip地址,打开..\dify-main\docker目录下的.env文件,将结尾配置如下:

# 启用自定义模型

CUSTOM_MODEL_ENABLED=true

# 指定 Ollama API 地址(将ip替换为查到的本机ip

OLLAMA_API_BASE_URL=http://XXX.XXX.XX.XX:11434

配置好之后,就可以在Dify刚才安装好的Ollama处选择本地部署好的模型进行接入:

如果用户不想使用本地部署的大模型,也可以选择使用其他厂商的API,通过消耗Key的方式实现模型的调用,具体的使用方法为在模型供应商处选择对应的模型,输入API Key等参数,这些参数可以在模型供应商的官网进行购买和配置。

2)创建个人知识库

目前Dify支持三种数据源,文本文件、notion同步和网站爬虫同步,本指南以本地的文本文件为例,另外两种方式需要接入应用,有指定需求的老师可以自行尝试。首先将需要上传的文件进行导入:


下一步进行文本分段和清洗,分段有两种模式,通用模式和父子模式,应根据不同的文本类型和内容选择不通的模式。通用模式适用于结构简单、内容独立的文本场景,如FAQ问答集、产品说明书条目或新闻摘要,这些场景下每个分段自成语义单元,无需上下文关联;而父子模式更适合具有层级结构的复杂文档,如学术论文(章节与段落)、法律条文(条款与细则)或技术手册(模块与子功能),通过父子关系保留逻辑关联性,确保检索时能自动携带上级上下文,提升专业领域答案的完整性。我们这里以本校简介这一文本为例,使用通用模式即可。

索引方式推荐使用高质量,但需要额外部署一个向量化embedding模型,embedding模型的核心作用是将文本转化为语义向量,构建可高效检索的索引体系。该模型通过深度学习将文档内容映射为稠密向量空间中的点,使语义相似的文本在向量空间中距离相近,从而支持基于语义相似度的快速检索(如FAQ匹配或文档推荐),同时保留上下文关联性以提升复杂查询的准确率。

检索设置选择向量检索,在向量检索中,‌top K‌控制返回的候选文档数量,通常问答场景设为3-5(保证精准度),知识聚合场景可扩展至5-10(提高召回率);‌score阈值‌过滤低相似度结果,需通过验证集评估调整,过高会遗漏相关文档,过低则引入噪声。两者需结合业务需求平衡:高阈值+K值偏向精确率,低阈值+K值侧重召回率,必要时可再部署rerank模型以优化排序。rerank模型的核心作用是对初步检索结果(如向量检索或全文检索的输出)进行精细化重排序,通过语义理解、相关性打分或上下文建模,筛选出与查询意图最匹配的文档,从而提升检索结果的准确性和生成式回答的质量。

3)创建个人聊天应用

目前dify支持聊天助手、智能体、对话流和工作流这些应用,在不同的场景中应使用不同的应用,以刚才创建的知识库为例,如果只是想做一个基于知识库的问答小助手,则直接选择聊天助手进行创建。

下一步进行编排,首先添加提示词,提示词是用户与AI交互的核心指令,直接影响模型输出的质量和方向。其作用在于:明确任务目标(如问答、创作)、设定回答框架(如格式、长度)、注入领域知识(如专业术语),并通过约束条件(如"避免主观臆断")减少无关输出。写提示词的五个重要指标是具体化、结构化、动态变量、负面约束和测试迭代。添加好提示词之后选择添加刚才创建好的相应的知识库,右方可以进行调试和预览。调试完成后进行发布,就完成了一个实现基本对话功能的问答式智能体应用。如果要在其他应用中进行引用,可以在“访问API”选项中查看接口文档进行对接。

除了这种简单的普通聊天助手外,还可以创建对话流chatflow,它与普通聊天助手的核心区别在于:对话流通过可视化流程设计支持多分支交互(如条件跳转、分阶段输出),适合医疗问诊等需动态决策的复杂场景;而聊天助手仅能处理线性对话,适用于简单问答。技术上,对话流允许工具链组合调用(如多API串联)并保留对话状态,开发时需用画布编排节点;聊天助手则依赖提示词配置,功能局限于单轮响应和基础工具调用。如下图所示,是一个关于育人分析的对话流,会根据用户输入的关键词进行不同的对话交互,具体的制作流程可以结合教学视频进行上手实操,dify使用的低代码的模式,通过在画布上拖拽节点和配置节点实现功能,实现起来并不复杂。