Spring?Boot項目中使用OpenAI-Java的示例詳解
前言
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領域(rapid application development)成為領導者。
準備工作
1、初始化一個springboot項目
參考地址:http://www.dbjr.com.cn/article/232551.htm
2、訪問OPENAI官網獲取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è)務類
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插件進行測試

到此這篇關于Spring Boot項目中使用OpenAI-Java的示例詳解的文章就介紹到這了,更多相關Spring Boot使用OpenAI-Java內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- SpringBoot啟動異常Exception in thread “main“ java.lang.UnsupportedClassVersionError
- Java SpringBoot集成ChatGPT實現(xiàn)AI聊天
- SpringBoot整合Javamail實現(xiàn)郵件發(fā)送的詳細過程
- Spring AI 入門學習指南
- Spring?AI?+?ollama?本地搭建聊天?AI?功能
- Spring?AI?+?混元帶你實現(xiàn)企業(yè)級穩(wěn)定可部署的AI業(yè)務智能體
- Spring?AI借助全局參數(shù)實現(xiàn)智能數(shù)據庫操作與個性化待辦管理
- Spring AI 使用超詳細講解
- 深入解析Spring AI框架如何在Java應用中實現(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死信隊列詳解,Activemq服務端配置重新投遞次數(shù)超過?MaximumRedeliveries?,則會進入死信隊列,默認情況,有一個死信隊列:AcitveMQ.DLQ,所有的消息都投遞到此隊列,包括過期消息,重投遞失敗消息,需要的朋友可以參考下2023-12-12
springBoot+dubbo+zookeeper實現(xiàn)分布式開發(fā)應用的項目實踐
本文主要介紹了springBoot+dubbo+zookeeper實現(xiàn)分布式開發(fā)應用的項目實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法
今天小編就為大家分享一篇關于Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10

