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

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

windows部署ollama

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

下载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

ps:这里提供一个github加速网站
https://github.akams.cn/

安装ollama

下载完毕后,直接点击安装(默认安装C盘,确保你的C盘有10G以上的空间)

打开cmd 输入 ollama ,如果有usage提示,那么说明安装成功

注意,关闭ollama进程,然后再执行下面的步骤,因为安装后默认程序已经打开了

如何验证是否安装成功?

ctrl+r 进入cmd

输入

复制代码
ollama

如果出现下面的界面说明安装成功

配置ollama环境变量

这一步是为了确保你以后下载的模型都放在别的地址(因为默认安装到C盘,这里可以将模型下载到别的盘)

打开【系统环境变量】,新建一个系统环境变量{OLLAMA_MODELS}值为{D:ollamamodels}

配置ollama端口(可选)

默认地址为http://localhost:11434

配置端口 新建一个系统环境变量{OLLAMA_HOST}值为{0.0.0.0:8080}

为什么要改?因为后面用webui里面用的8080,所以我把这里的端口改了

配置ollama跨域(可选)

配置跨域 新建一个系统环境变量{OLLAMA_ORIGINS}值为{*}

选择并下载DeepSeek版本

https://ollama.com/library/deepseek-r1

根据电脑性能选择不同的大小,对应不同的命令。

打开cmd输入命令

这里我选择使用1.5b,所以我的命令为

复制代码
ollama run deepseek-r1:1.5b

然后等待pull就行了

安装成功后如下图所示

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集成)

对接api文档

ollama已经开放了非常全的api接口了,对于全面私人化定制都是可以支持,详情参照官方文档,我这里只是弄了一个简单的示例。

ollama api文档

https://github.com/ollama/ollama/blob/main/docs/api.md

新建工具类方法
复制代码
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";
    }
}
新建控制器
复制代码
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

支持图片上传什么的都有

相关推荐
哈哈哈笑什么9 小时前
基于RabbitMQ的企业级订单系统设计与实现
后端
LSTM979 小时前
使用 Java 实现条形码生成与识别
后端
哈哈哈笑什么9 小时前
如何防止恶意伪造前端唯一请求id
前端·后端
哈哈哈笑什么9 小时前
Spring Cloud 微服务架构下幂等性的 业务场景、解决的核心问题、完整实现方案及可运行代码
后端
PieroPC9 小时前
飞牛Nas-通过Docker的Compose 安装WordPress
后端
shengjk19 小时前
当10万天分区来袭:一个让StarRocks崩溃、Kudu拒绝、HDFS微笑的架构故事
后端
一 乐9 小时前
鲜花销售|基于springboot+vue的鲜花销售系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
T.O.P_KING9 小时前
Common Go Mistakes(IV 字符串)
开发语言·后端·golang
盒马盒马9 小时前
Rust:Trait 标签 & 常见特征
开发语言·后端·rust
韩立学长9 小时前
基于Springboot儿童福利院规划管理系统o292y1v8(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端