简介
本文详细介绍了如何通过DeepSeek-R1大模型和Dify应用框架实现本地私有化知识库部署。从环境准备到模型配置,再到知识库构建与应用创建,全面展示了私有化部署的全流程。解决了产品不开源和外部服务繁忙的问题,同时提供大模型AI学习路径,帮助开发者快速掌握技术,实现本地化部署,提升工作效率和数据安全性。
1.背景
公司开发产品,由于产品特性不能对外开源,其使用文档也不开源,为了更好地进行技术支持,所以需要本地部署私有化知识库。另外 DeepSeek 由于外部攻击和使用人员较多,经常【服务器繁忙,请稍后再试】。
思路:下载 DeepSeek-R1 大模型、Dify 应用框架,在 Dify 应用框架中配置 DeepSeek-R1 大模型,这样就可以实现在本地部署私有化知识库了。由于 DeepSeek-R1 模型下载需要 ollama 命令下载、Dify 应用框架项目需要在 Docker 环境安装项目依赖,所以需要先下载 ollama 和 Docker。
先读为快,看下最终搜索一款我本地文档(@web-kits/table文档),它的搜索结果:
就问 6 不 6?心动💓了没?那就搞起来~
以下是私有化部署方案的优势:
- 性能卓越:提供媲美商业模型的对话交互体验
- 环境隔离:完全离线运行,杜绝数据外泄风险
- 数据可控:完全掌控数据资产,符合合规要求
2.前置准备
硬件环境:
- CPU >= 2 Core
- 显存/RAM ≥ 16 GiB(推荐)
软件环境:
- Docker
- Docker Compose
- Dify 社区版
3.DiFy智能体平台本地化部署
3.1 DeepSeek本地化部署
1)在本地运行deepseek模型
ollama run deepseek-r1:1.5b2)在本地运行Embedding模型
ollama pull bge-m33.2 Dify平台部署
3.2.1 克隆Dify代码仓库
克隆Dify源代码至本地环境。
#git clone https://github.com/langgenius/dify.git --branch 0.15.3 Cloning into 'dify'... remote: Enumerating objects: 144842, done. remote: Counting objects: 100% (1116/1116), done. remote: Compressing objects: 100% (505/505), done. remote: Total 144842 (delta 926), reused 613 (delta 611), pack-reused 143726 (from 3) Receiving objects: 100% (144842/144842), 78.11 MiB | 1.94 MiB/s, done. Resolving deltas: 100% (106284/106284), done. Note: checking out 'ca19bd31d42fb87c83b91541c473ebae85e9d14e'.3.2.2 启动 Dify
1)进入 Dify 源代码的 Docker 目录
cd dify/docker2)复制环境配置文件
cp .env.example .env3)启动 Docker 容器
#docker-compose --version docker-compose version 1.28.6, build 5db8d86f #如果版本是 Docker Compose V2,使用以下命令: docker compose up -d #如果版本是 Docker Compose V1,使用以下命令: docker-compose up -d启动报错,需要配置合适的docker镜像源
#docker-compose up -d Creating network "docker_default" with the default driver Creating network "docker_ssrf_proxy_network" with driver "bridge" Creating network "docker_milvus" with driver "bridge" Creating network "docker_opensearch-net" with driver "bridge" Pulling web (langgenius/dify-web:0.15.3)... ERROR: Get https://registry-1.docker.io/v2/: read tcp 192.168.112.110:60148->52.1.121.53:443: read: connection reset by peer如果提示NGINX端口冲突,修改相应的配置文件
ERROR: for docker_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint docker_nginx_1 (87803a54cea3e36c8628fdd2e3a9795cfe7696e952fefeabedc3089bdf9b4843): Bind for 0.0.0.0:80 failed: port is already allocated进入到dify文件夹下
cd /dify/docker vi .env #找到 EXPOSE_NGINX_PORT 在780行,改成你需要的端口默认是80 ps: #------------------------------ #Docker Compose Service Expose Host Port Configurations #------------------------------ EXPOSE_NGINX_PORT=10080 EXPOSE_NGINX_SSL_PORT=443 #保存退出 :wq!再执行命令
[root@tango-01 docker]# docker-compose up -d Creating network "docker_default" with the default driver Creating network "docker_ssrf_proxy_network" with driver "bridge" Creating network "docker_milvus" with driver "bridge" Creating network "docker_opensearch-net" with driver "bridge" Creating docker_weaviate_1 ... done Creating docker_web_1 ... done Creating docker_ssrf_proxy_1 ... done Creating docker_db_1 ... done Creating docker_redis_1 ... done Creating docker_sandbox_1 ... done Creating docker_api_1 ... done Creating docker_worker_1 ... done Creating docker_nginx_1 ... done最后检查是否所有容器都正常运行:
[root@tango-01 docker]# docker ps在这个输出中,应该可以看到包括3个业务服务api/worker/web,以及6个基础组件weaviate/db/redis/ nginx/ssrf_proxy/ sandbox。
4)登录DiFy平台:http://xx.xx.xx.xx/install,默认端口是80
登录进入主界面
3.3 构建智能体
3.3.1 大模型接入
在Dify中,按模型的使用场景将模型分为以下4类:
- 系统推理模型:在创建的应用中,用的是该类型的模型。智聊、对话名称生成、下一步问题建议用的也是推理模型。已支持的系统推理模型供应商:OpenAI、Azure OpenAI Service、DeepSeek、Anthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、讯飞星火、文心一言、通义千问、Minimax、ZHIPU(ChatGLM)等
- Embedding模型。在知识库中,将分段过的文档做Embedding用的是该类型的模型。在使用了知识库的应用中,将用户的提问做Embedding处理也是用的该类型的模型。已支持的Embedding模型供应商:OpenAI、ZHIPU(ChatGLM)、Jina AI(Jina Embeddings)、Rerank模型等。
- Rerank模型:用于增强检索能力,改善LLM的搜索结果。已支持的 Rerank 模型供应商:Cohere、Jina AI(Jina Reranker)等
- 语音转文字模型。将对话型应用中,将语音转文字用的是该类型的模型。已支持的语音转文字模型供应商:OpenAI等
1)在设置中添加大模型,本地部署选择ollama
2)选择Ollama,添加本地部署的DeepSeek模型
注:Ollama默认绑定到127.0.0.1:11434,需通过环境变量OLLAMA_HOST修改监听地址:打开系统设置 → 搜索并进入编辑账户环境变量。在用户变量中新建或修改变量:
- 变量名:OLLAMA_HOST
- 变量值:xx.xx.xx.xx:11434
3)配置Embedding模型
查看模型列表
3.3.2 创建知识库
1)在DiFy平台创建知识库
2)导入文件,定义切分规则和模型
3)配置Embedding模型
4)查看导入的文件详情
3.3.3 创建智能体应用
1)在DiFy平台创建工作流并运行
2)运行智能体,输出结果
DiFy平台工具集相对还是少了一些,有些第三方工具调用比如飞书文档需要额外授权,体验上也会差一些。
4.如何学习AI大模型?
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段:从大模型系统设计入手,讲解大模型的主要方法;
第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓