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

在springboot?中使用?AIService的方法

 更新時(shí)間:2025年04月23日 10:42:30   作者:旅行的獅子  
這篇文章主要介紹了在springboot?中使用?AIService的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

在上一篇文章中,我們介紹了如何使用langchain4j實(shí)現(xiàn)簡單的問答功能,本篇文章我們將介紹如何在springboot中使用AIService。

1.實(shí)現(xiàn)原理

先看下@AiService注解所在的依賴langchain4j-spring-boot-starter中包含什么內(nèi)容:

本篇以service.spring包下的內(nèi)容為主

1.1 event.AiServiceRegisteredEvent

這個(gè)類實(shí)現(xiàn)了ApplicationEvent,它的作用是當(dāng)一個(gè)AiService被注冊(cè)時(shí)觸發(fā)的事件。

1.2 @AiService

本篇主要需使用的注解,作用是將一個(gè)接口標(biāo)記為AiService,通過這個(gè)注解可以將一個(gè)接口轉(zhuǎn)換為一個(gè)AiService對(duì)象,這個(gè)對(duì)象可以用于調(diào)用langchain4j提供的各種功能。

1.3 AiServiceFactory

AiServiceFactory類實(shí)現(xiàn)了FactoryBean接口,表示這是一個(gè)Spring工廠Bean,包含了AiService的各種依賴組件和配置,可以通過這個(gè)方法創(chuàng)建AiService對(duì)象。

1.4 ClassPathAiServiceScanner

這個(gè)類的主要功能是掃描類路徑中的Bean定義,并篩選出帶有AiService注解的接口

1.5 AiServiceScannerProcessor

這個(gè)類實(shí)現(xiàn)了BeanDefinitionRegistryPostProcessor接口,主要功能是負(fù)責(zé)定義掃描當(dāng)前項(xiàng)目的類路徑,移除不需要的AiService配置。

1.6 AiServicesAutoConfig

這個(gè)類主要功能是將上下文中的所有組件用于配置和注冊(cè)AiService的Bean,并在完成后發(fā)布相關(guān)注冊(cè)的事件。

2.AiService的簡單實(shí)現(xiàn)

2.1 配置文件

langchain4j:
  open-ai:
    chat-model:
        api-key: ${API_KEY}
        base-url: https://api.deepseek.com/v1
        model-name: deepseek-chat
        log-requests: true
        log-responses: true
        temperature: 0.5
        max-tokens: 4096

2.2 定義接口

寫一個(gè)簡單的接口,使用@AiService注解標(biāo)注

@AiService
public interface Assistant {
    @SystemMessage("你是一位編程專家,你的名字叫小小明")
    String chat(String userMessage);
}

3. 使用AiService

@RestController
public class ChatController {
    @Resource
    ChatLanguageModel chatLanguageModel;
    @Resource
    Assistant assistant;
    @GetMapping("/chat")
    public String model(@RequestParam(value = "message") String message) {
        return chatLanguageModel.chat(message);
    }
    @GetMapping("/chatWithService")
    public String service(@RequestParam(value = "message") String message) {
        return assistant.chat(message);
    }
}

4. 測(cè)試一下

啟動(dòng)項(xiàng)目,用postman調(diào)用接口進(jìn)行測(cè)試:

5. 在項(xiàng)目中使用多個(gè)模型

5.1 pom.xml

langchain4j支持使用多個(gè)模型,我們更新一下pom.xml文件,添加dashscope的依賴。

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
    <version>${langchain4j.version}</version>
</dependency>

5.2 配置文件

這里我們配置了兩個(gè)模型,一個(gè)是deepseek-chat,一個(gè)是qwen-plus。

langchain4j:
  open-ai:
    chat-model:
      api-key: ${API_KEY}
      base-url: https://api.deepseek.com/v1
      model-name: deepseek-chat
      log-requests: true
      log-responses: true
      temperature: 0.5
      max-tokens: 4096
  community:
    dashscope:
      chat-model:
        api-key: ${API_KEY}
        model-name: qwen-plus
        temperature: 0.5
        max-tokens: 4096
logging.level.dev.langchain4j: DEBUG

5.3 定義接口

然后我們定義兩個(gè)接口,一個(gè)是dashscope的,一個(gè)是openai的。

@AiService(wiringMode = EXPLICIT, chatModel = "qwenChatModel")
public interface DashscopeAssistant {
    @SystemMessage("你是一位編程專家,名字是kitty")
    String chat(String userMessage);
}
@AiService(wiringMode = EXPLICIT, chatModel = "openAiChatModel")
public interface DeepseekAssistant {
    @SystemMessage("你是一位畫家,名字是tom")
    String chat(String userMessage);
}

5.4 使用

最后我們?cè)赾ontroller中注入這兩個(gè)接口,分別調(diào)用。

@RestController
public class ChatController {
    @Resource
    DashscopeAssistant dashscopeAssistant;
    @Resource
    DeepseekAssistant deepseekAssistant;
    @GetMapping("/chatWithQwen")
    public String qwen(@RequestParam(value = "message") String message) {
        return dashscopeAssistant.chat(message);
    }
    @GetMapping("/chatWithDeepseek")
    public String deepseek(@RequestParam(value = "message") String message) {
        return deepseekAssistant.chat(message);
    }
}

6.測(cè)試多個(gè)AIService

到此這篇關(guān)于在springboot 中使用 AIService的文章就介紹到這了,更多相關(guān)springboot 使用 AIService內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC使用注解配置方式

    SpringMVC使用注解配置方式

    這篇文章主要為大家介紹了SpringMVC使用注解配置方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • springcloud安裝rabbitmq并配置延遲隊(duì)列插件的過程詳解

    springcloud安裝rabbitmq并配置延遲隊(duì)列插件的過程詳解

    本期主要講解如何利用docker快速安裝rabbitmq并且配置延遲隊(duì)列插件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Java關(guān)于重排鏈表詳細(xì)解析

    Java關(guān)于重排鏈表詳細(xì)解析

    在我們平時(shí)的代碼過程中,鏈表是我們經(jīng)常遇到的一個(gè)數(shù)據(jù)結(jié)構(gòu),面試題中鏈表占很大一部分,可見鏈表操作是非常重要的。本篇文章我們來探究一下如何進(jìn)行重排鏈表
    2022-01-01
  • Java中自己如何實(shí)現(xiàn)log2(N)

    Java中自己如何實(shí)現(xiàn)log2(N)

    這篇文章主要介紹了Java中自己實(shí)現(xiàn)log2(N)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java?Web應(yīng)用小案例之實(shí)現(xiàn)用戶登錄功能全過程

    Java?Web應(yīng)用小案例之實(shí)現(xiàn)用戶登錄功能全過程

    在Java開發(fā)過程中實(shí)現(xiàn)用戶的注冊(cè)功能是最基本的,這篇文章主要給大家介紹了關(guān)于Java?Web應(yīng)用小案例之實(shí)現(xiàn)用戶登錄功能的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • java正則表達(dá)式判斷強(qiáng)密碼和隨機(jī)生成強(qiáng)密碼代碼示例

    java正則表達(dá)式判斷強(qiáng)密碼和隨機(jī)生成強(qiáng)密碼代碼示例

    這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式判斷強(qiáng)密碼和隨機(jī)生成強(qiáng)密碼的相關(guān)資料,最近需要一個(gè)密碼強(qiáng)度正則表達(dá)式在用戶注冊(cè)時(shí)校驗(yàn)用戶密碼強(qiáng)度,需要的朋友可以參考下
    2023-08-08
  • tomcat目錄結(jié)構(gòu)簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    tomcat目錄結(jié)構(gòu)簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了tomcat目錄結(jié)構(gòu)簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • java?字段值為null,不返回該字段的問題

    java?字段值為null,不返回該字段的問題

    這篇文章主要介紹了java?字段值為null,不返回該字段的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot實(shí)現(xiàn)熱部署Community的示例代碼

    SpringBoot實(shí)現(xiàn)熱部署Community的示例代碼

    本文主要介紹了SpringBoot實(shí)現(xiàn)熱部署Community的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解

    基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解

    這篇文章主要介紹了基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

滦南县| 泰宁县| 安宁市| 绥芬河市| 长泰县| 农安县| 任丘市| 贺州市| 盐源县| 闵行区| 大竹县| 花莲县| 景德镇市| 曲水县| 武平县| 临桂县| 平和县| 江门市| 陇川县| 天水市| 黔东| 东台市| 临沂市| 开江县| 大姚县| 马公市| 吉木萨尔县| 阿荣旗| 云安县| 静海县| 平顺县| 广西| 互助| 高邑县| 玛多县| 永宁县| 镇宁| 哈密市| 清水县| 西畴县| 嘉鱼县|