在当今这个由数据和智能驱动引领生产力的时代,人工智能(AI)已经成为推动业务创新和优化用户体验的关键力量。它正已前所未有的速度渗透到我们生活的每一个角落,并且已经在众多领域有了突破发展,由我们最先熟知的ChatGPT到现在的多AI共同发展,这将大大提高我们的日常生产力。
然而,对于我们许多Java开发者来说,该如何去将Ai集成在我们现有的应用和服务中呢?
Spring Ai会告诉你答案:
随着Spring Ai的诞生,我们熟知的Spring生态系统又多了一个特殊力量——量身打造的Ai框架,这无疑是Java和AI领域的一大进步。
下面来介绍一些Spring Ai:
官方文档:https://docs.spring.io/spring-ai/reference/index.html
这是来自Spring Ai的官方文档,那么我给大家翻译一下:
该项目从著名的 Python 项目(如 LangChain 和 LlamaIndex)中汲取灵感,但 Spring AI 并不是这些项目的直接移植。该项目的成立信念是,下一波生成式人工智能应用程序将不仅适用于 Python 开发人员,而且将在许多编程语言中无处不在。
Spring AI 的核心是提供抽象,作为开发 AI 应用程序的基础。这些抽象具有多种实现,只需最少的代码更改即可轻松交换组件。
Spring AI 提供以下功能:
特性概述:
框架入门:
首先,AiClient
与 OpenAI 平台的所有通信都需要 API Key。为此,可以在 “API Keys” 页面上创建一个 Token。
Spring AI 项目定义了配置属性:spring.ai.openai.api-key
。
可以在 application.yml
文件中进行设置。
spring:
ai:
openai.api-key: ${OPEN_AI_KEY}
下一步是配置依赖。Spring AI 项目在 Spring 里程碑库(Spring Milestone Repository)中提供了组件。
因此,需要添加 repository
定义:
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
之后,就可以导入 open-ai-spring-boot-starter:
<dependency>
<groupId>org.springframework.experimental.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>0.7.1-SNAPSHOT</version>
</dependency>
Spring AI 项目正在积极发展,你可以查看 官方 GitHub 页面 了解最新版本。
另外还提供了许多API,例如聊天、图形生成、函数调用等等。
来看看一些栗子:
图片生成:
@RestController
@RequestMapping("/chat")
public class SimpleAiController {
private final ImageClient imageClient;
@Autowired
public SimpleAiController(ImageClient imageClient) {
this.imageClient=imageClient;
}
@GetMapping("/ai/image")
public void imageCompletion() {
ImageResponse response = imageClient.call(
new ImagePrompt("A cute baby dog",
OpenAiImageOptions.builder()
.withQuality("hd")
.withN(1)
.withHeight(1024)
.withWidth(1024)
.withModel(OpenAiImageApi.DEFAULT_IMAGE_MODEL)
.build())
);
response.getResults().stream().forEach(r -> System.out.println("Image: " + r.getOutput()));
}
}
调用:
>curl http://localhost:8080/chat/ai/image
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。