当前位置: 首页 > news >正文

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 前置条件

  1. 确保你的电脑上有docker和docker-compose,因为dift是用docker-compose启动的
  2. 计算机要求: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点击安装,因为我已经安装了,所以展示个通义千文的
在这里插入图片描述
安装后会让你配模型,配置如下,你可以自我调整
在这里插入图片描述
这里有个两个坑:

  1. 上面的模型名称一定要和你下载的模型名称一模一样,就是在ollama中下载的模型名称
  2. 基础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功能,可以参考一下探索看看别人配的!!借鉴一下!!
在这里插入图片描述

相关文章:

MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用

目录 1 大白话说一下文章内容2 作者的电脑配置3 DeepSeek的本地部署3.1 Ollamal的下载和安装3.2 选择合适的deepseek模型3.3 安转deepseek 4 DifyDeepSeek构建Al应用4.1 Dify的安装4.1.1 前置条件4.1.2 拉取代码4.1.3 启动Dify 4.2 Dify控制页面4.3 使用Dify实现个“文章标题生…...

如何有效利用MYSQL的连接数

连接数配置2500~3000 依然发现连接不够用? -- 查看当前最大连接数 SHOW VARIABLES LIKE MAX_CONNECTIONS; -- 查看当前总链接数 SHOW STATUS LIKE Threads_connected; -- 查看当前进程明细 SHOW PROCESSLIST; 合理设置以下参数: 1. MySQL 的参数设置 …...

调用click.getchar()时Windows PyCharm无法模拟键盘输入

文章目录 问题描述解决方案参考文献 问题描述 调用 click.getchar() 时,Windows PyCharm 无法模拟键盘输入 解决方案 Run → Edit Configurations… → Modify options → Emulate terminal in output console 参考文献 Terminal emulator | PyCharm Documentati…...

使用Hardhat实现ERC20 代币合约详解

ERC20 代币合约详解 💰 1. 合约概览 // SPDX-License-Identifier: MIT pragma solidity ^0.8.20;import "openzeppelin/contracts/token/ERC20/ERC20.sol";contract MyToken is ERC20 {constructor() ERC20("MyToken", "MTK") {_min…...

清华大学《DeepSeek与AI幻觉》(无套路免费分享)

随着人工智能技术的飞速发展,以DeepSeek为代表的国产大模型正逐渐成为各行各业的重要工具。然而,AI在生成内容时常常会出现“幻觉”——即生成与事实不符、逻辑断裂或脱离上下文的内容。 清华大学新闻与传播学院与人工智能学院联合推出的这篇教程《Deep…...

代码随想录算法【Day52】

Day51 101. 孤岛的总面积 思路 从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋&#xff0c;然后再去重新遍历地图 统计此时还剩下的陆地 代码 #include <iostream> #include <vector> using namespace std; int dir[4][2] {-1, 0, …...

Spark 和 Flink

Spark 和 Flink 都是目前流行的大数据处理引擎&#xff0c;但它们在架构设计、应用场景、性能和生态方面有较大区别。以下是详细对比&#xff1a; 1. 架构与核心概念 方面Apache SparkApache Flink计算模型微批&#xff08;Micro-Batch&#xff09;为主&#xff0c;但支持结构…...

Unity结合Vuforia虚拟按键实现AR机械仿真动画效果

零、最终效果 待上传 一、资源准备 1、Vuforia Vuforia版本不能高于10.17.4&#xff08;往上的版本虚拟按键功能被删除&#xff09; 2、Unity Unity版本必须要高于2022.3.x&#xff0c;不然使用Vuforia插件时会出现bug 二、主要内容 1、添加虚拟按钮 2、为虚拟按钮设置…...

PL/SQL 异常处理

目录 一、命名的系统异常 1.常见命名的系统异常 2.预定义的系统异常数量以及描述 3.处理命名的系统异常的一般步骤 二、程序员定义的异常 1.概念 2.自定义异常的定义与抛出 3.自定义异常的处理 三、未命名的系统异常 1.概述 2.处理未命名的系统异常的方法 3.使用场景 …...

【自学笔记】Spring Boot框架技术基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Spring Boot框架技术基础知识点总览一、Spring Boot简介1.1 什么是Spring Boot&#xff1f;1.2 Spring Boot的主要特性 二、Spring Boot快速入门2.1 搭建Spring Boo…...

Redis 缓存穿透、击穿、雪崩:问题与解决方案

在使用 Redis 作为缓存中间件时&#xff0c;系统可能会面临一些常见的问题&#xff0c;如 缓存穿透、缓存击穿 和 缓存雪崩。这些问题如果不加以解决&#xff0c;可能会导致数据库压力过大、系统响应变慢甚至崩溃。本文将详细分析这三种问题的起因&#xff0c;并提供有效的解决…...

第一个CMAKE项目hello cmake

#注意&#xff01; 这篇文章是为WINDWOS用户写的 #请检查你的电脑上已经安装了MINGW和CMAKE 快速检查方法如下 C:\Users\Basicoperation>g --version g (x86_64-win32-seh-rev1, Built by MinGW-Builds project) 14.2.0 Copyright (C) 2024 Free Software Foundation, Inc. …...

骶骨神经

骶骨肿瘤手术后遗症是什么_39健康网_癌症 [健康之路]匠心仁术&#xff08;七&#xff09; 勇闯禁区 骶骨肿瘤切除术...

基于Django的购物商城平台的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统购物管理采取了人工的管理方法&#xff0c;但这种管理方法存…...

使用快捷键高效管理 VSCode:提升工作效率,告别鼠标操作

如果你想提高工作效率&#xff0c;减少鼠标操作&#xff0c;掌握键盘快捷键是一个非常有效的方式。在编程过程中&#xff0c;熟练使用快捷键能够快速管理文件、标签页&#xff0c;节省时间并提升效率。比如&#xff0c;Ctrl P 和 Ctrl W 可以快速打开和关闭文件&#xff0c;而…...

【找工作】C++和算法复习(自用)

文章目录 C头文件自定义排序函数stl 算法数据结构树状数组 数学 自用随便记录 C 排序 stl 头文件 全能头文件&#xff1a; #include<bits/stdc.h>自定义排序函数 bool compare(const int &odd1,const int &odd2) {return odd1>odd2; }stl 枚举map map&…...

大语言模型基础

简介 AI大模型是“人工智能预训练大模型”的简称,包含了“预训练”和“大模型”两层含义,二者结合产生了一种新的人工智能模式,即模型在大规模数据集上完成了预训练后无需微调,或仅需要少量数据的微调,就能直接支撑各类应用。AI大模型主要分为三类:大语言模型、CV大模型…...

深入浅出机器学习:概念、算法与实践

目录 引言 机器学习的基本概念 什么是机器学习 机器学习的基本要素 机器学习的主要类型 监督学习&#xff08;Supervised Learning&#xff09; 无监督学习&#xff08;Unsupervised Learning&#xff09; 强化学习&#xff08;Reinforcement Learning&#xff09; 机器…...

2024年国赛高教杯数学建模A题板凳龙闹元宵解题全过程文档及程序

2024年国赛高教杯数学建模 A题 板凳龙闹元宵 原题再现 “板凳龙”&#xff0c;又称“盘龙”&#xff0c;是浙闽地区的传统地方民俗文化活动。人们将少则几十条&#xff0c;多则上百条的板凳首尾相连&#xff0c;形成蜿蜒曲折的板凳龙。盘龙时&#xff0c;龙头在前领头&#x…...

老游戏回顾:d2

游戏中玩家创建属于自己的角色&#xff0c;在一片片暗黑大地上奔跑、杀敌、寻宝、成长&#xff0c;最终打败统治各个大陆的黑暗势力&#xff0c;拯救游戏中的各个种族。 《暗黑破坏神II》的制作团队包括编程小组、运动物体制作小组和背景制作小组。游戏设计很大程度上是开放的&…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...