最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springBoot集成Ollama大模型及流式傳輸?shù)膯栴}小結(jié)

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

集成Ollama大模型

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

https://ollama.com/

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

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

3.問題集合

D:\jiyunShiXunStudy\shixun2\spring-ai\src\main\java\com\ryx\ollama\controller\AiController.java:4:37
java: 無(wú)法訪問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)確定類文件的兼容性。
具體來說,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)行這些類文件,您的開發(fā)環(huán)境和運(yùn)行環(huán)境都需要支持 Java 8 或更高的版本。

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

問題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ù)來源

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配置

我用的是兩種訪問的方案,流式傳輸和普通輸出

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ó)家,如肯尼亞和坦桑尼亞,是一種常見的稱呼方式。這個(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)文章

最新評(píng)論

河南省| 手机| 固阳县| 壤塘县| 上虞市| 红河县| 容城县| 屏南县| 青岛市| 双桥区| 保靖县| 当雄县| 桓仁| 江山市| 栾川县| 温宿县| 扎赉特旗| 龙泉市| 喀喇沁旗| 长治市| 买车| 通海县| 固始县| 利川市| 鄂州市| 全椒县| 五家渠市| 文化| 合水县| 江安县| 营口市| 盐池县| 荥阳市| 榆中县| 包头市| 那坡县| 溧阳市| 夹江县| 广平县| 平湖市| 全椒县|