目录
Spring Al与Springboot整合的步骤(本文仅讲解图片生成的实现,关于gpt的其他东西,参考接下来的文章)
第一步:建项目:创建一个Spring Boot项目(JDK17起步);
2.1 加入spring-ai-openai-spring-boot-starter依赖;
2.3 配置项目依赖下载的仓库:(因为spring ai在中心仓库还没有依赖,所以需要去网站下载)
第三步:配文件(这个的api -key就是你自己的,如果没有私信我即可)
4.1 因为所有的接口的父接口都继承与Model,可以看到处理图片的用到的类是OpenAiImageModel,因为这个springboot自动装配的功能,只需要注入即可
第一种: 生成图片的第一种方式(调用call方法,直接传入msg,这个叫做同步API)
第二种: 生成图片的第二种方式(同样是调用call方法,只不过通过OpenAiImageOptions,来设置生成图片的样式、数量、以及gpt的设置)
前言
随着人工智能技术的迅猛发展,越来越多的应用程序开始集成人工智能功能,从而提供更智能、更个性化的体验。诸如ChatGPT等开放性大型语言模型的出现,使得自然语言处理和对话系统的开发变得更加便捷和普及。这些技术已经在社交媒体、客户服务、教育等领域展示出巨大的潜力,对于提升用户体验和提高工作效率起到了关键作用。
Spring Al的官网:https://spring.io/
Spring AI提供的API支持跨人工智能提供商的 聊天,文本到图像,和嵌入模型等,同时支持同步和流API选项;
开发springAl程序的前期准备准备工作
- 本机电脑要可以访问OpenAI网站 https://openai.com/;
- 要有OpenAI的API Key;(注册账号或者购买,如果没有可以私信联系我)
Spring Al与Springboot整合的步骤(本文仅讲解图片生成的实现,关于gpt的其他东西,参考接下来的文章)
第一步:建项目:创建一个Spring Boot项目(JDK17起步);
第二步:加依赖
2.1 加入spring-ai-openai-spring-boot-starter依赖;
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
2.2 继承父项目:
<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>
2.3 配置项目依赖下载的仓库:(因为spring ai在中心仓库还没有依赖,所以需要去网站下载)
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
第三步:配文件(这个的api -key就是你自己的,如果没有私信我即可)
spring:
ai:
openai:
api-key: (换成你的api-key)
base-url: https://api.openai.com(分为代理地址和直连地址)
img:
optoins:
model: 指定gpt4的模型
第四步: 聊天功能写具体的代码实现
4.1 因为所有的接口的父接口都继承与Model,可以看到处理图片的用到的类是OpenAiImageModel,因为这个springboot自动装配的功能,只需要注入即可
第一种: 生成图片的第一种方式(调用call方法,直接传入msg,这个叫做同步API)
public class ImageController {
@Resource
private OpenAiImageModel openAiImageModel;
/**
* 输入字符串信息来生成图片
* imageResponse.getResult().getOutput() 只是生成了图片的url,我们再点击链接对图片查看
* @param msg
* @return
*/
@RequestMapping("/ai/image")
public Object image(@RequestParam("msg") String msg){
ImageResponse imageResponse = openAiImageModel.call(new ImagePrompt(msg));
//获得到图片的url,完后可以处理图片
String url = imageResponse.getResult().getOutput().getUrl();
return imageResponse.getResult().getOutput();
}
5.1 程序的运行结果
上面就会生成一个图片的url,完后我们点击图片的url即可访问图片
第二种: 生成图片的第二种方式(同样是调用call方法,只不过通过OpenAiImageOptions,来设置生成图片的样式、数量、以及gpt的设置)
@RequestMapping("/ai/image2")
public Object image2(@RequestParam("msg") String msg){
ImageResponse imageResponse = openAiImageModel.call(new ImagePrompt(msg,
OpenAiImageOptions.builder()
.withQuality("hd") //质量(高清)
.withN(4) //生成几张图片,根据模型决定,1~10之间
.withHeight(1024) //尺寸
.withWidth(1024).build())
);
//获得到图片的url,完后可以处理图片
String url = imageResponse.getResult().getOutput().getUrl();
return imageResponse.getResult().getOutput();
}
当然上述的可选参数不仅可以在代码中配置,也可以在配置文件中配置
注意:如果代码中写了关于gpt的参数,配置文件中也配置了参数,那么以代码中为主
上述就是关于Spring Boot 整合 Spring AI 实现项目接入ChatGPT,本文仅介绍了关于图片生成方面的实现方式,接下来的文章介绍关于音频翻译。
如果需要源码的可以访问:code-ai: 关于spring ai的各个练习
有任何问题可以私信我,以及欢迎大家加入下面的群聊来探讨。以及关于没有open ai的key 的也可以私信我