Linux本地部署deepseek及SpringBoot集成deepseek

一、ollama安装

      本文以linux安装为例(服务器主机ip:192.168.109.210)

1、自动安装(方式一)

   curl -fsSL https://ollama.com/install.sh | sh

2、手动安装(方式二)

 (1)下载二进制文件
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
  (2)解压安装包
tar -C /usr  -xzf ollama-linux-amd64.tgz
   (3)启动ollama

          配置环境变量,默认ollama服务只能本机访问,可通过配置开放HOST,指定ip访问

export OLLAMA_HOST=0.0.0.0:11434
export PATH=$OLLAMA_HOST:$PATH

           启动服务

 nohup  ollama  serve  >> /var/logs/ollama.log  2>&1 &

          查看启动日志

tail  -f  /var/logs/ollama.log

  (4)验证服务
ollama -v

       至此ollama服务安装完成。防火墙开放11434端口:

firewall-cmd --zone=public --add-port=011434/tcp --permanent
firewall-cmd  --reload

       浏览器访问http://192.168.109.210:11434

3、加入systemd自启服务

touch  /etc/systemd/system/ollama.service
 [Unit]
 Description=Ollama Service
 After=network-online.target

 [Service]
 ExecStart=/usr/bin/ollama serve
 User=ollama
 Group=ollama
 Restart=always

 [Install]
 WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable ollama

        此步骤不是必选项,仅为方便启动服务。 

  4、win环境安装(附录)

      由于win安装坑太多,ollama默认将程序安装到c盘,将部署的大模型也下载到c盘,会造成c盘体积暴增,为了避坑。这里也附带记录一下。

      安装指令cmd窗口,将ollama安装到指定的盘符目录下

OllamaSetup   /DIR=D:\software\ollama

       配置ollama的model环境变量 

 OLLAMA_MODELS =D:\software\ollama\models

二、deepseek部署

1、部署deepseek

        访问官网查看安装指令https://ollama.com/library,由于笔记本硬件资源限制,此次选择安装8b的model。

   

ollama run deepseek-r1:8b

          出现success表明本地大模型部署成功。接下来可以向大模型提问题了:

         这种命令行窗口对于非开发人员使用显然很不友好,要是有个可视化的页面就完美了,当然,这种调用ui应用实在是太多了

       此次选择open-webui 

2、安装 open-webui

       Open WebUI是由python开发的一个可扩展、功能丰富、用户友好的自托管WebUI,它支持各种LLM运行程序,包括Ollama和OpenAi兼容的API。直接使用docker安装即可:

docker run   \
-d --name open-webui  -p 3000:8080  \
--add-host=host.docker.internal:host-gateway  \
-e OLLAMA_BASE_URL=http://192.168.109.210:11434 \
-v /home/wucf/open-webui/data:/app/backend/data  \
--restart always ghcr.io/open-webui/open-webui:main  \

         访问192.168.109.210:3000即可

        刚才在服务器上部署的deepseek 可以正常在ui 页面上加载

三、spring boot集成deepseek

       市面目前调用大模型api的框架以python居多,java能用的脚手架不多,现在比较成熟的有langchain4j,spring官方的spring-ai。本次以spring-boot整合deepseek的api调用为例

1、springboot版本

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.3.3'
    id 'io.spring.dependency-management' version '1.1.5'
}

2、大模型依赖

     gradle配置以下依赖

    // ollama依赖
    implementation group: 'io.springboot.ai', name: 'spring-ai-ollama-spring-boot-starter', version: '1.0.3'
    //spring-ai依赖
    implementation group: 'org.springframework.ai', name: 'spring-ai-bom', version: '1.0.0-M6', ext: 'pom'
    // deepseek整合
    // implementation group: 'io.github.pig-mesh.ai', name: 'deepseek-spring-boot-starter', version: '1.4.5'
    //langchian-4j依赖
   testImplementation group: 'dev.langchain4j', name: 'langchain4j-open-ai-spring-boot-starter', version: '0.36.2'
    

3、deepseek配置

#pig-mesh.ai直接调用deepseek
#deepseek:
#  api-key: 官网申请填写至此
#  base-url: https://api.deepseek.com/v1
#  model: deepseek-chat

#整合langchain调用大模型
langchain4j:
  # openai调用deepseek
  open-ai:
    chat-model:
      api-key: 官网申请填写至此
      model-name: deepseek-chat
      baseUrl: https://api.deepseek.com/v1

  # ollama调用本地部署的大模型
  ollama:
    chat-model:
      model-name: deepseek-r1:8b
      baseUrl: http:192.168.109.210:11434/v1

4、接口编写

   // private DeepSeekClient deepSeekClient;

    private OllamaChatClient ollamaChatClient;
    
    private ChatLanguageModel chatLanguageModel;

    @Autowired
    public void setDeepSeekClientOllamaChatClient ollamaChatClient, ChatLanguageModel chatLanguageModel) {
       this.ollamaChatClient = ollamaChatClient;
       this.chatLanguageModel = chatLanguageModel;
    }

    /// 使用pig-mesh调用官方大模型
   // @GetMapping("/ai/ds/chat")
//    public String  chatDeepSeek(String prompt){
   //     ChatCompletionRequest request = ChatCompletionRequest.builder().addUserMessage(prompt).build();
 //       ChatCompletionResponse response = //deepSeekClient.chatCompletion(request).execute();
//        return response.content();
//    }

    ///  langchain调用官方大模型
    @GetMapping("/langchain/ds/chat")
    public String  langchainChat(String prompt){
        ChatRequest request = ChatRequest.builder().messages(new UserMessage(prompt)).build();
        ChatResponse chat = chatLanguageModel.chat(request);
        return chat.toString();
    }


    ///  ollama调用本地大模型
    @GetMapping("/ollama/ds/chat")
    public String  ollamaChat(String prompt){
        return ollamaChatClient.call(prompt);
    }

        访问本地接口:http://127.0.0.1:8006/api/ai/ds/chat

        至此就可以为前端提供访问大模型的接口,定制化的开发知识库。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值