欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springBoot集成Ollama大模型及流式傳輸?shù)膯?wèn)題小結(jié)

 更新時(shí)間:2025年04月26日 10:58:16   作者:阿碹勇闖天涯  
Ollama是一個(gè)用于部署和運(yùn)行各種開(kāi)源大模型的工具,它支持多種平臺(tái)和設(shè)備,包括Windows、Mac和Linux,甚至可以在樹(shù)莓派等輕量級(jí)設(shè)備上運(yùn)行,這篇文章主要介紹了springBoot集成Ollama大模型及流式傳輸?shù)膯?wèn)題小結(jié),需要的朋友可以參考下

集成Ollama大模型

1.官網(wǎng)下載Ollama大模型

https://ollama.com/

2.拉取版本鏡像,使用操作類似docker

我用的是llama3.1:8b的版本

3.問(wèn)題集合

D:\jiyunShiXunStudy\shixun2\spring-ai\src\main\java\com\ryx\ollama\controller\AiController.java:4:37
java: 無(wú)法訪問(wèn)org.springframework.ai.ollama.OllamaChatClient
  錯(cuò)誤的類文件: /D:/java/repository_xsx/io/springboot/ai/spring-ai-ollama/1.0.3/spring-ai-ollama-1.0.3.jar!/org/springframework/ai/ollama/OllamaChatClient.class
    類文件具有錯(cuò)誤的版本 61.0, 應(yīng)為 52.0
    請(qǐng)刪除該文件或確保該文件位于正確的類路徑子目錄中。

jdk版本錯(cuò)誤

Java類文件的版本號(hào)對(duì)應(yīng)著特定的Java編譯器版本。在Java中,不同的Java編譯器版本會(huì)生成不同版本號(hào)的類文件。這些版本號(hào)可以幫助Java虛擬機(jī)(JVM)確定類文件的兼容性。
具體來(lái)說(shuō),Java類文件的版本號(hào)對(duì)應(yīng)如下:
- Java 1.0對(duì)應(yīng)版本號(hào) 45.0
- Java 1.1對(duì)應(yīng)版本號(hào) 45.3
- Java 1.2對(duì)應(yīng)版本號(hào) 46.0
- Java 1.3對(duì)應(yīng)版本號(hào) 47.0
- Java 1.4對(duì)應(yīng)版本號(hào) 48.0
- Java 5對(duì)應(yīng)版本號(hào) 49.0
- Java 6對(duì)應(yīng)版本號(hào) 50.0
- Java 7對(duì)應(yīng)版本號(hào) 51.0
- Java 8對(duì)應(yīng)版本號(hào) 52.0
- Java 9對(duì)應(yīng)版本號(hào) 53.0
- Java 10對(duì)應(yīng)版本號(hào) 54.0
- Java 11對(duì)應(yīng)版本號(hào) 55.0
- Java 12對(duì)應(yīng)版本號(hào) 56.0
- Java 13對(duì)應(yīng)版本號(hào) 57.0
- Java 14對(duì)應(yīng)版本號(hào) 58.0
- Java 15對(duì)應(yīng)版本號(hào) 59.0
- Java 16對(duì)應(yīng)版本號(hào) 60.0
- Java 17對(duì)應(yīng)版本號(hào) 61.0
在您的情況中,錯(cuò)誤信息中提到的版本號(hào) 52.0 對(duì)應(yīng)著 Java 8。這意味著您的項(xiàng)目中的類文件是使用 Java 8 編譯器編譯的。
因此,如果您的項(xiàng)目需要運(yùn)行這些類文件,您的開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境都需要支持 Java 8 或更高的版本。

一般來(lái)講這個(gè)錯(cuò)誤spring的parent版本不合適,修改版本即可,我用的jkd17,對(duì)應(yīng)parent為3.3.1

問(wèn)題2:ai的依賴版本無(wú)法拉取:

Dependency 'org.springframework.ai:spring-ai-ollama-spring-boot-starter:' not found

這個(gè)報(bào)錯(cuò)是找不到版本,設(shè)置依賴版本即可,我用的是

<spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version>

解決無(wú)法拉取依賴的遠(yuǎn)程倉(cāng)庫(kù)地址

 <repositories>
        <!-- spring ai -->
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>

解決方案:1:配置一下遠(yuǎn)程倉(cāng)庫(kù)來(lái)源

yml配置

server:
  port: 8888
spring:
  application:
    name: Cleaner-AI
  ai:
    ollama:
      # ollama API Server 地址默認(rèn)的他就是11434
      base-url: http://localhost:11434
      chat:
        enabled: true
        # 使用的模型名稱
        model:
          llama3.1:8b
          # 你自己下載的模型的版本
        options:
          temperature: 0.7

Controller配置

我用的是兩種訪問(wèn)的方案,流式傳輸和普通輸出

package com.ryx.ollama.controller;
?
import jakarta.annotation.Resource;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
?
@RestController
@RequestMapping("ai")
public class AiController {
    @Resource
    private OllamaChatModel ollamaChatModel;
?
    /**
     * 流式對(duì)話
     *
     * @param message 用戶指令
     * @return
     */
    @GetMapping("/streamChat")
    public Flux<ChatResponse> generateStream(@RequestParam("message") String message) {
        message = "請(qǐng)使用中文簡(jiǎn)體回答:" + message;
        Prompt prompt = new Prompt(new UserMessage(message));
        return ollamaChatModel.stream(prompt);
    }
?
    /**
     * 普通對(duì)話
     * @param message   用戶指令
     * @return
     */
    @GetMapping("/chat")
    public String generate(@RequestParam("message") String message) {
        message = "請(qǐng)使用中文簡(jiǎn)體回答:" + message;
        Prompt prompt = new Prompt(new UserMessage(message));
        ChatResponse chatResponse = ollamaChatModel.call(prompt);
        String content = chatResponse.getResult().getOutput().getContent();
        System.out.println("content = " + content);
        return chatResponse.toString();
    }
}
?

返回值示例

{
  "metadata": {
    "id": "",
    "usage": {
      "promptTokens": 21,
      "generationTokens": 60,
      "totalTokens": 81
    },
    "rateLimit": "org.springframework.ai.chat.metadata.EmptyRateLimit@13f24745"
  },
  "generations": [
    {
      "assistantMessage": {
        "messageType": "ASSISTANT",
        "toolCalls": [],
        "textContent": "叫爹是指父母對(duì)孩子的稱呼,尤其是在一些非洲國(guó)家,如肯尼亞和坦桑尼亞,是一種常見(jiàn)的稱呼方式。這個(gè)習(xí)慣也存在于其他地區(qū),如加拿大、美國(guó)等地的某些社區(qū)中。",
        "metadata": {
          "messageType": "ASSISTANT"
        }
      },
      "chatGenerationMetadata": {
        "finishReason": "stop",
        "contentFilterMetadata": null
      }
    }
  ]
}

 瀏覽器測(cè)試

postman測(cè)試 

到此這篇關(guān)于springBoot集成Ollama大模型以及流式傳輸?shù)奈恼戮徒榻B到這了,更多相關(guān)springBoot集成Ollama大模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java流形式返回前端的實(shí)現(xiàn)示例

    Java流形式返回前端的實(shí)現(xiàn)示例

    ? Java后端開(kāi)發(fā)項(xiàng)目時(shí),需要給前端傳一些數(shù)據(jù),本文主要介紹了Java流形式返回前端的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫效果

    java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫效果

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 使用IDEA如何導(dǎo)入SpringBoot項(xiàng)目

    使用IDEA如何導(dǎo)入SpringBoot項(xiàng)目

    這篇文章主要介紹了使用IDEA如何導(dǎo)入SpringBoot項(xiàng)目問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-12-12
  • 精通Java泛型的使用與原理

    精通Java泛型的使用與原理

    針對(duì)利用繼承來(lái)實(shí)現(xiàn)通用程序設(shè)計(jì)所產(chǎn)生的問(wèn)題,泛型提供了更好的解決方案,本文詳細(xì)的介紹了Java泛型的使用與原理,感興趣的可以了解一下
    2022-03-03
  • SpringBoot @Autowired注解注入規(guī)則介紹

    SpringBoot @Autowired注解注入規(guī)則介紹

    這篇文章主要介紹了SpringBoot @Autowired注解注入規(guī)則介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-11-11
  • java解析sina視頻

    java解析sina視頻

    本文介紹了一個(gè)java解析sina視頻地址的例子,從這個(gè)例子中可以學(xué)習(xí)到j(luò)ava使用sax解析xml的方法,大家可以參考修改成其它功能
    2014-01-01
  • 淺談Java BitSet使用場(chǎng)景和代碼示例

    淺談Java BitSet使用場(chǎng)景和代碼示例

    這篇文章主要介紹了淺談Java BitSet使用場(chǎng)景和代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 淺談Spring bean 生命周期驗(yàn)證

    淺談Spring bean 生命周期驗(yàn)證

    本篇文章主要介紹了淺談Spring bean 生命周期驗(yàn)證,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • idea鼠標(biāo)控制放大縮小的操作

    idea鼠標(biāo)控制放大縮小的操作

    這篇文章主要介紹了idea鼠標(biāo)控制放大縮小的操作教程,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java高級(jí)應(yīng)用之斗地主游戲

    Java高級(jí)應(yīng)用之斗地主游戲

    這篇文章主要為大家詳細(xì)介紹了Java高級(jí)應(yīng)用之斗地主游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論