SpringBoot快速接入OpenAI大模型(JDK8)

使用AI4J快速接入OpenAI大模型

本博文给大家介绍一下如何使用AI4J快速接入OpenAI大模型,并且如何实现流式与非流式的输出,以及对函数调用的使用。

介绍

由于SpringAI需要使用JDK17和Spring Boot3,但是目前很多应用依旧使用的JDK8版本,所以使用可以支持JDK8的AI4J来接入OpenAI大模型。

AI4J是一款JavaSDK用于快速接入AI大模型应用,整合多平台大模型,如OpenAi、智谱Zhipu(ChatGLM)、深度求索DeepSeek、月之暗面Moonshot(Kimi)、腾讯混元Hunyuan、零一万物(01)等等,提供统一的输入输出(对齐OpenAi)消除差异化,优化函数调用(Tool Call),优化RAG调用、支持向量数据库(Pinecone),并且支持JDK1.8,为用户提供快速整合AI的能力。

AI4J-GitHub

快速使用

目前较多的应用场景为Spring应用,而AI4J接入SpringBoot应用也是非常简单的,本篇博文先带着大家为SpringBoot应用集成OpenAI服务,后续会介绍如何再非Spring项目中搭建。

创建SpringBoot项目

20240911230410
20240911230511
这里以JDK1.8为例创建SpringBoot2项目,当然你也可以创建JDK17、SpringBoot3。

引入AI4J依赖
<!-- Spring应用 -->
<dependency>
    <groupId>io.github.lnyo-cly</groupId>
    <artifactId>ai4j-spring-boot-stater</artifactId>
    <version>0.5.2</version>
</dependency>

如果你使用阿里源无法引入,可能是阿里云镜像还没有同步。

配置application.yml

给大家两种配置方法

第一种:使用官网的url,自己有代理
20240911231540

第二种:使用中转代理地址(或第三方中转平台)

如:https://api.openai-proxy.com
20240911231920

上面任意配置一种即可。

搭建聊天服务Controller

下面是一个小的demo演示:

@RestController
public class OpenAiController {

    // 注入Ai服务
    @Autowired
    private AiService aiService;

    @GetMapping("/chat")
    public String getChatMessage(@RequestP
### 如何在Spring Boot项目中集成AI服务和API #### 创建基础Spring Boot项目并配置依赖项 为了开始集成功能,首先需要创建一个新的Spring Boot应用程序。这可以通过访问Spring Initializr网站完成,选择必要的依赖项来支持Web开发和其他所需的功能。 对于希望集成AI的服务而言,除了`Spring Web`之外,可能还需要其他特定于AI处理的库或框架的支持。如果目标是与像百度这样的第三方AI平台对接,则应考虑加入HTTP客户端库以便轻松发起网络请求[^4]。 ```xml <dependencies> <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- HTTP Client (e.g., OkHttp or Apache HttpClient) --> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.9.0</version> </dependency> <!-- Other dependencies as needed... --> </dependencies> ``` #### 设计主程序入口点 一旦完成了项目的初始化工作之后,就可以定义应用程序的主要入口点了。这里展示了一个简单的例子,其中包含了标准的应用启动逻辑: ```java package com.example.aiapp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AiAppApplication { public static void main(String[] args) { SpringApplication.run(AiAppApplication.class, args); } } ``` 此部分代码展示了如何设置一个典型的Spring Boot应用启动类,它负责引导整个应用程序上下文的加载过程[^2]。 #### 构建AI服务通信层 针对具体的AI服务提供商(如百度),通常会提供RESTful风格的API端点供开发者调用。因此,在Java/Spring环境中实现这些外部API的封装就显得尤为重要了。可以采用RestTemplate或是更现代的选择—— WebClient来进行异步非阻塞式的HTTP操作。 下面是一个基于WebClient的例子,用于向指定URL发送POST请求并将响应体映射为目标对象类型: ```java @Bean public WebClient webClient() { return WebClient.builder().baseUrl("https://api.baidu.com").build(); } // Usage example within a service method: Mono<BaiduApiResponse> response = this.webClient.post() .uri("/speech/recognition") .bodyValue(requestPayload) .retrieve() .bodyToMono(BaiduApiResponse.class); response.subscribe(System.out::println); ``` 上述片段说明了怎样通过声明式的方式构建出可重用性强且易于测试的远程调用组件[^1]。 #### 整合高级特性:Prompt设计与交互优化 当涉及到更为复杂的场景比如自然语言理解(NLU),则往往离不开精心构思过的提示词(Prompt)的设计。虽然这部分内容本身不是技术难题所在,但在实际部署之前仍需经过充分验证以确保其有效性和鲁棒性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值