私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)

私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)

windows部署ollama

Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计

  1. 下载ollama
    下载地址(mac、linux、windows):https://ollama.com/download
    github 的Releases地址:https://github.com/ollama/ollama/releases
    下载可能限速,我选择使用阿里云服务器下载然后再ftp下载到本地
 wget https://github.com/ollama/ollama/releases/download/v0.5.8-rc10/OllamaSetup.exe

我下载的版本为v0.5.8-rc10
2. 安装ollama
下载完毕后,直接点击安装(默认安装C盘,确保你的C盘有10G以上的空间)
打开cmd 输入 ollama ,如果有usage提示,那么说明安装成功
注意,关闭ollama进程,然后再执行下面的步骤,因为安装后默认程序已经打开了
3. 配置ollama环境变量
这一步是为了确保你以后下载的模型都放在别的地址
打开【系统环境变量】,新建一个系统环境变量{OLLAMA_MODELS}值为{D:\ollama\models}
4. 配置ollama端口(可选)
默认地址为http://localhost:11434
配置端口 新建一个系统环境变量{OLLAMA_HOST}值为{0.0.0.0:8080}
为什么要改?因为后面用webui里面用的8080,所以我把这里的端口改了
5. 配置ollama跨域(可选)
配置跨域 新建一个系统环境变量{OLLAMA_ORIGINS}值为{*}
6. 选择DeepSeek版本
https://ollama.com/library/deepseek-r1
根据电脑性能选择不同的大小,对应不同的命令。

  1. 打开cmd输入命令
    这里我选择使用1.5b,所以我的命令为
ollama run deepseek-r1:1.5b

然后等待pull就行了
8. ollama api文档
https://github.com/ollama/ollama/blob/main/docs/api.md

linux部署ollama

直接上命令行

curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl enable ollama  
sudo systemctl status ollama
sudo systemctl start ollama
ollama run deepseek-r1:1.5b

接口形式调用DeepSeek-(SpringBoot集成)

  1. 新建工具类方法
package com.example.springtestdemo.ai.util;import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;/*** @date 2025-01-15 10:58:46*/
@Slf4j
public class OllamaUtil {private static String DOMAIN = "http://localhost:11434/api/generate";public static String chatDeepSeek(String model, String question) {String url = DOMAIN;JSONObject body = new JSONObject();body.put("model", model);body.put("prompt", question);// 关闭流式返回,全部生成完再返回数据body.put("stream", false);String result = CommonUtil.postJson(url, body.toJSONString());log.info("【ollama-请求】 结果 {}", result);try {JSONObject resJson = JSONObject.parseObject(result);String response = resJson.getString("response");log.info("【ollama-请求】 结果 {}", response);return response;} catch (Exception e) {log.error("【ollama-请求】异常", e);}return "ok";}
}
  1. 新建控制器
package com.example.springtestdemo.ai.controller;import com.example.springtestdemo.ai.QueryParam;
import com.example.springtestdemo.ai.util.OllamaUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;/*** @date 2025-02-07 14:44:56*/
@RestController
public class AiController {@PostMapping("/deepSeek")public String deepSeek(QueryParam query) {String res = OllamaUtil.chatDeepSeek("deepseek-r1:1.5b", query.getQuestion());return res;}
}

在这里插入图片描述

安装 UI使用界面

1、 直接使用eage插件使用
https://www.crxsoso.com/webstore/detail/jfgfiigpkhlkbnfnbobbkinehhfdhndo
支持图片上传什么的都有

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13942.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Verilog代码实例

Verilog语言学习! 文章目录 目录 文章目录 前言 一、基本逻辑门代码设计和仿真 1.1 反相器 1.2 与非门 1.3 四位与非门 二、组合逻辑代码设计和仿真 2.1 二选一逻辑 2.2 case语句实现多路选择逻辑 2.3 补码转换 2.4 7段数码管译码器 三、时序逻辑代码设计和仿真 3.1…

二级C语言题解:十进制转其他进制、非素数求和、重复数统计

目录 一、程序填空📝 --- 十进制转其他进制 题目📃 分析🧐 二、程序修改🛠️ --- 非素数求和 题目📃 分析🧐 三、程序设计💻 --- 重复数统计 题目📃 分析🧐 前言…

BFS算法——广度优先搜索,探索未知的旅程(下)

文章目录 前言一. N叉树的层序遍历1.1 题目链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal/description/1.2 题目分析:1.3 思路讲解:1.4 代码实现: 二. 二叉树的锯齿形层序遍历2.1 题目链接:htt…

软件系统性能测试的重要性和测试类型分享

在现代软件开发领域,软件系统性能测试的重要性愈发凸显。软件系统性能测试是一种评估软件应用程序在特定工作负载下的响应时间、稳定性和资源消耗的测试过程。其目标是识别性能瓶颈,确保软件在不同的负载条件下依然能够高效运行。 一、软件系统性能测试…

Three.js 实现海面效果

Three.js 实现海面效果 https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idoceanShader import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js import { Water } from three/examples/js…

C++----继承

一、继承的基本概念 本质:代码复用类关系建模(是多态的基础) class Person { /*...*/ }; class Student : public Person { /*...*/ }; // public继承 派生类继承基类成员(数据方法),可以通过监视窗口检…

【MySQL】第二弹---数据库基础全解析:从概念到实践的深度探索

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】 目录 1. 数据库基础 1.1 什么是数据库 1.2 主流数据库 1.3 基本使用 1.3.1 MySQL安装 1.3.2 连接服务器 1.3.3 服务器…

深度学习:解码智能的“数字炼金术”

深度学习:解码智能的“数字炼金术” 1943年,当神经科学家沃伦麦卡洛克和数学家沃尔特皮茨在论文中首次提出人工神经元模型时,他们或许没有想到,这个简单的数学公式会在80年后掀起改变人类文明的技术革命。深度学习作为这场革命的…

无人机方位感知器官磁力传感器!

一、磁力计传感器的运作方式 基本原理: 磁力计传感器的工作原理基于磁场感应定律。当无人机处于地球磁场中时,磁力计可以测量地磁场的强度和方向。 磁力计通常采用三个互相垂直的磁阻传感器,每个轴向上的传感器检测在该方向上的地磁场强度…

基于SpringBoot养老院平台系统功能实现五

一、前言介绍: 1.1 项目摘要 随着全球人口老龄化的不断加剧,养老服务需求日益增长。特别是在中国,随着经济的快速发展和人民生活水平的提高,老年人口数量不断增加,对养老服务的质量和效率提出了更高的要求。传统的养…

2.7作业

手动将登录项目实现 //widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtTextToSpeech/QTextToSpeech> #include <QPushButton> #include <QLabel> #include <QDebug> #include <QMovie> #include <QLineEd…

记录 | WPF基础学习Style局部和全局调用

目录 前言一、Style1.1 例子1.2 为样式起名字1.3 BasedOn 继承上一个样式 二、外部StyleStep1 创建资源字典BaseButtonStyle.xamlStep2 在资源字典中写入StyleStep3 App.xaml中写引用路径【全局】Step4 调用三、代码提供四、x:Key和x:Name区别 更新时间 前言 参考文章&#xff…

深度学习 Pytorch 神经网络的学习

本节将从梯度下降法向外拓展&#xff0c;介绍更常用的优化算法&#xff0c;实现神经网络的学习和迭代。在本节课结束将完整实现一个神经网络训练的全流程。 对于像神经网络这样的复杂模型&#xff0c;可能会有数百个 w w w的存在&#xff0c;同时如果我们使用的是像交叉熵这样…

vue项目如何设置默认页面

j​​​​​​​​​​​​​​​​​​​​​​​​​​​​创建一个新的vue项目并且将初始页面还原到空白项目开始 - 现实里的乌托邦 - 博客园 vue项目如何设置默认页面 • Worktile社区 创建一个vue项目并配置默认页面_vue如何设置初始展示的页面-CSDN博客 新建的vue项目…

DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*

一、什么是 DFX &#xff1f;为什么重要&#xff1f; DFX&#xff08;Design for eXcellence&#xff0c;卓越设计&#xff09;是一种面向产品全生命周期的设计理念&#xff0c;旨在确保产品在设计阶段就具备**良好的制造性&#xff08;DFM&#xff09;、可测试性&#xff08;…

基础篇05-图像直方图操作

本节将简要介绍Halcon中有关图像直方图操作的算子&#xff0c;重点介绍直方图获取和显示两类算子&#xff0c;以及直方图均衡化处理算子。 目录 1. 引言 2. 获取并显示直方图 2.1 获取&#xff08;灰度&#xff09;直方图 (1) gray_histo算子 (2) gray_histo_abs算子 (3…

Linux TCP 编程详解与实例

一、引言 在网络编程的领域中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff09;协议因其可靠的数据传输特性而被广泛应用。在 Linux 环境下&#xff0c;使用 C 或 C 进行 TCP 编程可以实现各种强大的网络应用。本文将深入探讨 Linux TCP 编程的各个方面&…

DeepSeek本地部署保姆级教程

由于DeepSeek近期遭受攻击&#xff0c;又加上用户访问量较大&#xff0c;导致总是服务不可用&#xff0c;让人十分窝火。有没有好的解决办法呢&#xff1f;答案是自己在电脑端部署一套&#xff0c;这样就不用和别人抢着用了。另外本地部署的好处还有保护隐私与减少延迟。 如果…

文件基础IO

理解"文件" 1-1 狭义理解 文件在磁盘里磁盘是永久性存储介质&#xff0c;因此文件在磁盘上的存储是永久性的磁盘是外设&#xff08;即是输出设备也是输入设备&#xff09;磁盘上的文件 本质是对文件的所有操作&#xff0c;都是对外设的输入和输出简称IO 1-2 广义理…

C32.【C++ Cont】静态实现双向链表及STL库的list

目录 1.知识回顾 2.静态实现演示图 3.静态实现代码 1.初始双向链表 2.头插 3.遍历链表 4.查找某个值 4.任意位置之后插入元素 5.任意位置之前插入元素 6.删除任意位置的元素 4.STL库的list 1.知识回顾 96.【C语言】数据结构之双向链表的初始化,尾插,打印和尾删 97.【C…