MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用
目录
- 1 大白话说一下文章内容
- 2 作者的电脑配置
- 3 DeepSeek的本地部署
- 3.1 Ollamal的下载和安装
- 3.2 选择合适的deepseek模型
- 3.3 安转deepseek
- 4 Dify+DeepSeek构建Al应用
- 4.1 Dify的安装
- 4.1.1 前置条件
- 4.1.2 拉取代码
- 4.1.3 启动Dify
- 4.2 Dify控制页面
- 4.3 使用Dify实现个“文章标题生成器”应用
- 4.4 “探索”模块404处理
- 5 增语
1 大白话说一下文章内容
本篇文章基于Ollamal搭建本地DeepSeek,Ollamal是一个可以构建大模型的工具,Ollamal也提供了很多模型。
本地部署了Dify,使用Dify做了个简单的AI应用,Dify是一个大模型应用构建工具,可以快速搭建和部署生成式Al应用程序。
内容里也记录了作者本人踩的很多坑!!供大家避雷!!!
2 作者的电脑配置
基于下面版本的大模型,本地跑了几个测试,微微热,电脑CPU 50%左右
3 DeepSeek的本地部署
Ollamal是一个开源框架,作用是在本地机器上便捷部署和运行大型语言模型(LLM)。
3.1 Ollamal的下载和安装
访问https://ollama.com/进入Ollama官网下载Ollama,要选择下载对应的操作系统版本即可
我的是mac版本的,下载好了傻瓜式安装后就是这样
因为我不安装llama模型,所以先不执行,直接关闭。
3.2 选择合适的deepseek模型
进入https://ollama.com中,选择Deepseek-r1(ps:或者你喜欢其他模型你也可以选择其他模型)
根据自己电脑的硬件配置来选择模型大小,我这里选择的是deepseek-r1的7b,点击它!(ps:这里的b代表了10亿,表示大模型下的一个神经元就有7*10亿的参数)
3.3 安转deepseek
复制安装命令如下,回到命令提示符窗口,将复制的命令粘贴到命令提示符窗口中并按回车键即可下载模型
ollama run deepseek-r1:7b
静静等待拉取结束,然后你就可以问他问题啦!
下面命令是启动命令,如果你部署了其他模型,模型名称是你部署的模型的名称
ollama run 模型名称
下面命令是关闭大模型
/bye
到这你就有个本地的大模型啦!(eg:我的电脑配置跑这个模型难一点的问题会稍稍热,不过也能带动。)
4 Dify+DeepSeek构建Al应用
Didy是一个开源的大语言模型(Large Language Model,LLM)应用开发平台。它融合了后端即服务(Backend as a Service,BaaS)和LLMOps的理念,旨在帮助开发者,甚至是非技术人员,能够快速搭建和部署生成式Al应用程序。
Dify内置了构建LLM应用所需的关键技术栈,包括对数百个模型的支持、直观的Prompt编排界面、高质量的RAG引擎、稳健的Agent框架、灵活的流程编排,并同时提供了一套易用的界面。
更细节的功能可以参考:Dify官网
4.1 Dify的安装
4.1.1 前置条件
- 确保你的电脑上有docker和docker-compose,因为dift是用docker-compose启动的
- 计算机要求:CPU >= 2 Core CPU = 2核心 RAM >= 4 GiB RAM>= 4 GiB
4.1.2 拉取代码
github地址:dify
拉取代码到本地:
git clone https://github.com/langgenius/dify.git
下载下来的文件就长下面的样子
4.1.3 启动Dify
执行指令:
cd dify
cd docker
cp .env.example .env
这里建议你本地部署切到1.0.0-beta.1这个tag下,因为新版的包的镜像好多都很难拉下来
切换到tag1.0.0-beta.1,执行指令:
git checkout 1.0.0-beta.1
执行下面指令启动dify
docker compose up -d
可能会遇到镜像拉不下来的错误
你看见这种超时的报错:Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
或者是握手超时的报错(ps:没那条报错记录了)
或者是这种错误:Error response from daemon: Get “https://registry-1.docker.io/v2/”: context deadline exceeded
你就再次尝试!!!频繁尝试!!有志者事竟成!!
终于在我不懈的努力下,都拉取成功,最终成功的样子会展示成这样!都是对号✅!如果不是,请继续执行 docker compose up -d
如果你部署其他版本的dify,很容易出现某个镜像拉不下来的原因,我是基于下面这个docker镜像库拉取的,你也可以尝试一下!
修改daemon.json文件,配置镜像库:
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"https://registry.cn-hangzhou.aliyuncs.com"
]
}
配置完了docker仓库要记得重启!
4.2 Dify控制页面
dify部署成功了,登录dify的首页看一下,浏览器访问:http://localhost/install
设置管理员账号、密码、邮箱信息,这个账户是最大权限的账户!!
设置后会跳到
登录后就到了管理界面了,因为我自己调试了dify,增加了几个应用,所以展示如下,首次登录只有创建应用
配置上文中本地搭建好的deepseek-r1 7b大模型,右上角的设置
选择ollama点击安装,因为我已经安装了,所以展示个通义千文的
安装后会让你配模型,配置如下,你可以自我调整
这里有个两个坑:
- 上面的模型名称一定要和你下载的模型名称一模一样,就是在ollama中下载的模型名称
- 基础url配置有两种配置方式
配置一:http://host.docker.internal:11434/
11434是ollama默认端口,ollama运行在宿主机上,dify运行在docker容器中,网络不通,这里这样配置可以使docker能访问到ollama
配置二:终端输入launchctl setenv OLLAMA_HOST "0.0.0.0"
,重启ollama
将ollama的环境变量设置值 “0.0.0.0”,它允许从同一台机器上的不同网络接口访问服务
有的大模型不支持高级配置,我这里又装了个大模型,配置如下,自行拉取
配置好大模型的dify应该是这样的,忽略这个图片坏了。。。
到此dify就和deepseek整合了,接下来看看dify怎么使用deepseek
4.3 使用Dify实现个“文章标题生成器”应用
创建个空白的应用:
根据需求创建应用,因为我想实现个“文章标题生成器”,那么我这里就选择,文本生成应用
首次登录需要配置一下大模型,按照引导配就行了,也可以在右上角切换大模型
我这个应用就是想根据关键字和话题生成少于规定字数的几个标题
该应用配置如下:
可以声明变量,变量结合提示词会一起执行
因为设置了变量,运行之前需要填一些内容
返回结果如上,因为这里接入的是R1的推理模型,所以还会返回推理过程,如果这里想只返回内容可以接入指令模型!!!
最后介绍一下发布这个模块
这个更新会保存你的内容到数据库中,下次打开会保留你的设置
介绍一下嵌入网站,它可以生成代码嵌入到你的前端页面,也可以作为Chrome浏览器扩展应用使用
也可以调用api的方式获取到该dify的运行结果、日志等
点击访问API,会弹出对应的应用的api调用方式,可以基于自己的应用去调用,api中涉及的API密钥在右上角
4.4 “探索”模块404处理
点击中上方的“探索”展示404!!!404是啥啊??找不到页面呗!!
配置一下nginx,进入到dify的文件夹下,我的地址路径是这样的:
cd /Users/liuyang/AI本地搭建/dify/docker/nginx/conf.d
修改vim default.conf.template文件:
vim default.conf.template
增加配置:
location /explore {
proxy_pass http://web:3000; # 确保请求路由到 web 服务
include proxy.conf;
}
然后重启nginx容器就可以啦!!!
执行命令:
docker restart docker-nginx-1
等待重启好了,再去访问“探索”模块
这里展示的都是英文,在设置设置成简体中文再切回来就变成中文啦!
再看一下!
很帅!!!!
5 增语
Dify还可以使用工具哦!!结合应用类型,再结合你的业务,可以实现很多AI功能,可以参考一下探索看看别人配的!!借鉴一下!!