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

Spring?Boot項目中使用OpenAI-Java的示例詳解

 更新時間:2023年04月24日 11:04:07   作者:JoseKe  
Spring?Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程,這篇文章主要介紹了Spring?Boot項目中使用OpenAI-Java的示例詳解,需要的朋友可以參考下

前言

Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。

準(zhǔn)備工作

1、初始化一個springboot項目

參考地址:http://www.dbjr.com.cn/article/232551.htm

2、訪問OPENAI官網(wǎng)獲取API密鑰

地址:https://platform.openai.com/account/api-keys

3、通過OPENA開源的JAVA SDK (OpenAI-Java)訪問 API

地址:GitHub - TheoKanning/openai-java: OpenAI GPT-3 Api Client in Java

集成達芬奇模型

1、編寫SpringBoot項目中的pom文件

<dependency>
   <groupId>com.theokanning.openai-gpt3-java</groupId>
   <artifactId>client</artifactId>
   <version>0.9.0</version>
</dependency>

2、初始化OpenAiService類

import com.theokanning.openai.OpenAiService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import java.time.Duration;
 
/**
 * openai 配置類
 */
@Configuration
public class OpenAiConfiguration {
 
    @Value("${open.ai.key}")
    private String openAiKey;
    @Value("${open.ai.request.timeout}")
    private long timeout;
    
    @Bean
    public OpenAiService openAiService(){
        return new OpenAiService(openAiKey, Duration.ofSeconds(timeout));
    }
}

3、配置密鑰、超時時間和使用的模型

#application.properties
server.port=8081
#密鑰
open.ai.key=xxxxxxxx
#超時時間
open.ai.request.timeout=100000
#達芬奇模型
open.ai.model=text-davinci-003

3、編寫訪問業(yè)務(wù)類

import com.google.common.collect.Maps;
import com.theokanning.openai.OpenAiService;
import com.theokanning.openai.completion.CompletionRequest;
import com.theokanning.openai.completion.CompletionResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
 
import java.util.Arrays;
import java.util.Map;
 
@Slf4j
@Service
public class OpenAiChatBiz {
 
    @Value("${open.ai.model}")
    private String openAiModel;
    @Autowired
    private OpenAiService openAiService;
    /**
     * 聊天
     * @param prompt
     * @return
     */
    public String chat(String prompt){
        CompletionRequest completionRequest = CompletionRequest.builder()
                .prompt(prompt)
                .model(openAiModel)
                .echo(true)
                .temperature(0.7)
                .topP(1d)
                .frequencyPenalty(0d)
                .presencePenalty(0d)
                .maxTokens(1000)
                .build();
        CompletionResult completionResult = openAiService.createCompletion(completionRequest);
        String text = completionResult.getChoices().get(0).getText();
        return text;
    }
}

4、編寫訪問接口

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class OpenAiChatApi {
 
    @Autowired
    private OpenAiChatBiz openAiChatBiz;
 
    @RequestMapping(path = "/chat/question",method = RequestMethod.GET)
    public String openAiChat(@RequestParam("question")String question){
        if(StringUtils.isBlank(question)){
            return "Please Input";
        }
        return openAiChatBiz.chat(question);
    }
}

效果展示

使用google的API Tester插件進行測試

到此這篇關(guān)于Spring Boot項目中使用OpenAI-Java的示例詳解的文章就介紹到這了,更多相關(guān)Spring Boot使用OpenAI-Java內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis不啟動項目直接測試Mapper的實現(xiàn)方法

    Mybatis不啟動項目直接測試Mapper的實現(xiàn)方法

    在項目開發(fā)中,測試單個Mybatis Mapper方法通常需要啟動整個SpringBoot項目,消耗大量時間,本文介紹通過Main方法和Mybatis配置類,快速測試Mapper功能,無需啟動整個項目,這方法使用AnnotationConfigApplicationContext容器
    2024-09-09
  • Springboot實現(xiàn)Activemq死信隊列詳解

    Springboot實現(xiàn)Activemq死信隊列詳解

    這篇文章主要介紹了Springboot實現(xiàn)Activemq死信隊列詳解,Activemq服務(wù)端配置重新投遞次數(shù)超過?MaximumRedeliveries?,則會進入死信隊列,默認(rèn)情況,有一個死信隊列:AcitveMQ.DLQ,所有的消息都投遞到此隊列,包括過期消息,重投遞失敗消息,需要的朋友可以參考下
    2023-12-12
  • Java訪問者設(shè)計模式詳細講解

    Java訪問者設(shè)計模式詳細講解

    大多數(shù)情況下你不需要訪問者模式,但當(dāng)一旦需要訪問者模式時,那就是真的需要它了,這是設(shè)計模式創(chuàng)始人的原話??梢钥闯鰬?yīng)用場景比較少,但需要它的時候是不可或缺的,這篇文章就開始學(xué)習(xí)最后一個設(shè)計模式——訪問者模式
    2022-11-11
  • Java interceptor攔截器的方法

    Java interceptor攔截器的方法

    java里的攔截器是動態(tài)攔截Action調(diào)用的對象,它提供了一種機制可使開發(fā)者在一個Action執(zhí)行的先后執(zhí)行一段代碼,也能夠在一個Action,接下來通過本文給大家介紹Java interceptor攔截器的方法,感興趣的朋友一起看看吧
    2022-01-01
  • springBoot+dubbo+zookeeper實現(xiàn)分布式開發(fā)應(yīng)用的項目實踐

    springBoot+dubbo+zookeeper實現(xiàn)分布式開發(fā)應(yīng)用的項目實踐

    本文主要介紹了springBoot+dubbo+zookeeper實現(xiàn)分布式開發(fā)應(yīng)用的項目實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot配置文件中敏感信息加密的三種方法

    SpringBoot配置文件中敏感信息加密的三種方法

    當(dāng)我們將項目部署到服務(wù)器上時,一般會在jar包的同級目錄下加上application.yml配置文件,這樣可以在不重新?lián)Q包的情況下修改配置,這種方式存在安全隱患,如果配置文件泄露,就會造成數(shù)據(jù)庫密碼泄露,所以本文給大家介紹了SpringBoot配置文件中敏感信息加密的三種方法
    2024-05-05
  • SWT JFace 小制作 文本閱讀器

    SWT JFace 小制作 文本閱讀器

    SWT JFace 小制作 文本閱讀器
    2009-06-06
  • Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法

    Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Java查看本機端口是否被占用源碼

    Java查看本機端口是否被占用源碼

    這篇文章主要介紹了Java查看本機端口是否被占用的主要原理,并結(jié)合具體實例給出了操作方法,需要的朋友可以參考下
    2017-09-09
  • Spring Boot的應(yīng)用啟動與關(guān)閉的方法

    Spring Boot的應(yīng)用啟動與關(guān)閉的方法

    本篇文章主要介紹了Spring Boot的應(yīng)用啟動與關(guān)閉的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論