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

Spring?AI聊天功能開發(fā)步驟

 更新時間:2024年04月29日 09:30:32   作者:乄bluefox  
本文給大家介紹Spring?AI聊天功能開發(fā)步驟,首先引入依賴,繼承父版本的springboot依賴,最好是比較新的依賴,結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

一、引入依賴

繼承父版本的springboot依賴,最好是比較新的依賴。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
        <dependency>
            <!--            熱部署插件-->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

jdk版本

    <properties>
        <java.version>17</java.version>
    </properties>

springAI版本

根據(jù)官網(wǎng):Spring AI

選擇穩(wěn)定版本0.8.1

引入依賴:

    <properties>
        <java.version>17</java.version>
        <spring-ai.version>0.8.1</spring-ai.version>
    </properties>        
    <dependencies>
        <!--spring ai的starter依賴,啟動依賴,起步依賴-->
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
<!--相當于是繼承一個父項目:spring-ai-bom父項目-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

由于阿里云的倉庫還沒更新springai的maven坐標,所以需要配置其他倉庫,加入下面的依賴

快照版本是如果你使用下面這種先行版則選擇這個版本的倉庫,一般我們使用穩(wěn)定版本的maven

aae8a14bf78540c3a18b2617210e996c.png

<!--配置本項目的倉庫:因為maven中心倉庫還沒有更新spring ai的jar包-->
    <repositories>
<!--        &lt;!&ndash;快照版本的倉庫&ndash;&gt;-->
<!--        <repository>-->
<!--            <id>spring-snapshot</id>-->
<!--            <name>Spring Snapshots</name>-->
<!--            <url>https://repo.spring.io/snapshot</url>-->
<!--            <releases>-->
<!--                <enabled>false</enabled>-->
<!--            </releases>-->
<!--        </repository>-->
        <!--里程碑版本的倉庫-->
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

二、寫配置

在自己的yml文件里面配置springAI的信息

server:
  port: 8080
spring:
  application:
    name:  #寫自己的項目名
  ai:
    openai:
#      api-key: sk-xxx #寫自己的key
##      可以寫直接地址,也可以寫中轉(zhuǎn)地址(鏡像地址)
#      base-url: https://api.openai.com
      api-key: sk-xxx #寫自己的key #這個是我在淘寶買的key,一般配上中轉(zhuǎn)地址
      base-url: https://apikeyplus.com/ #這個是我買的淘寶中轉(zhuǎn)地址
      chat:
        options:
          model: gpt-3.5-turbo #版本
          temperature: 0.3F #溫度
  mvc:
    async:
      request-timeout: -1

這里提示一下用買的中轉(zhuǎn)地址不用科學上網(wǎng)也可以使用。

在這里我遇到了一個問題,不知道為什么我用自己的chatgpt3賬號去官網(wǎng)申請了一個key,但是卻用不了那個key,加上魔法也訪問不了會超時,有大佬會解決可以留言一下!??!

報錯信息部分如下:I/O error on POST request for "https://api.openai.com/v1/chat/completions": Connection timed out: connect] with root cause

申請地址的官方網(wǎng)址:https://platform.openai.com/api-keys

三、寫接口

@Slf4j
@RestController
public class ChatController {
    /**
     * spring-ai 自動裝配的,可以直接注入使用
     */
    @Resource
    private OpenAiChatClient openAiChatClient;
    /**
     * 調(diào)用OpenAI的接口
     *
     * @param msg 我們提的問題
     * @return
     */
    @RequestMapping(value = "/ai/chat")
    public String chat(@RequestParam(value = "msg",defaultValue = "給我講一個笑話") String msg) {
        log.info("發(fā)送的消息是:{}",msg);
        String call = openAiChatClient.call(msg);
        log.info("返回的消息是:{}",call);
        return call;
    }
    /**
     * 調(diào)用OpenAI的接口
     *
     * @param msg 我們提的問題
     * @return
     */
    @RequestMapping(value = "/ai/chat2")
    public Object chat2(@RequestParam(value = "msg") String msg) {
        ChatResponse chatResponse = openAiChatClient.call(new Prompt(msg));
        return chatResponse.getResult().getOutput().getContent();
    }
    /**
     * 調(diào)用OpenAI的接口
     *
     * @param msg 我們提的問題
     * @return
     */
    @RequestMapping(value = "/ai/chat3")
    public Object chat3(@RequestParam(value = "msg") String msg) {
        //可選參數(shù)在配置文件中配置了,在代碼中也配置了,那么以代碼的配置為準,也就是代碼的配置會覆蓋掉配置文件中的配置
        ChatResponse chatResponse = openAiChatClient.call(new Prompt(msg, OpenAiChatOptions.builder()
                //.withModel("gpt-4-32k") //gpt的版本,32k是參數(shù)量,參數(shù)量越大回答的問題質(zhì)量會越好,準確率會越高
                .withTemperature(0.4F) //溫度越高,回答得比較有創(chuàng)新性,但是準確率會下降,溫度越低,回答的準確率會更好
                .build()));
        return chatResponse.getResult().getOutput().getContent();
    }
    /**
     * 調(diào)用OpenAI的接口
     * 流式訪問,一個一個字的輸出
     * @param msg 我們提的問題
     * @return
     */
    @RequestMapping(value = "/ai/chat4")
    public Object chat4(@RequestParam(value = "msg") String msg) {
        //可選參數(shù)在配置文件中配置了,在代碼中也配置了,那么以代碼的配置為準,也就是代碼的配置會覆蓋掉配置文件中的配置
        Flux<ChatResponse> flux = openAiChatClient.stream(new Prompt(msg, OpenAiChatOptions.builder()
                //.withModel("gpt-4-32k") //gpt的版本,32k是參數(shù)量
                .withTemperature(0.4F) //溫度越高,回答得比較有創(chuàng)新性,但是準確率會下降,溫度越低,回答的準確率會更好
                .build()));
        flux.toStream().forEach(chatResponse -> {
            System.out.println(chatResponse.getResult().getOutput().getContent());
        });
        return flux.collectList(); //數(shù)據(jù)的序列,一序列的數(shù)據(jù),一個一個的數(shù)據(jù)返回
    }
}

測試:http://localhost:8080/ai/chat3?msg=java是什么

四、問題

最后還是希望有大佬能解決我上面寫配置那邊的問題(自己搞的key科學上網(wǎng)也會報錯)!??!

到此這篇關(guān)于Spring AI聊天功能開發(fā)的文章就介紹到這了,更多相關(guān)Spring AI聊天功能開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

许昌县| 吉木萨尔县| 武定县| 同德县| 长白| 舒城县| 榆林市| 阳谷县| 阿瓦提县| 宁海县| 河南省| 泗阳县| 京山县| 固阳县| 菏泽市| 新田县| 信宜市| 襄城县| 岱山县| 镶黄旗| 轮台县| 开原市| 长宁区| 澳门| 英吉沙县| 涟水县| 黑山县| 漾濞| 达州市| 莎车县| 双柏县| 丰城市| 阳原县| 黎川县| 临西县| 无棣县| 新闻| 宜良县| 潞西市| 德格县| 长宁区|