前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术分享:初识Java中SpringAi框架

技术分享:初识Java中SpringAi框架

原创
作者头像
小颜同学
发布2024-04-16 11:49:45
4790
发布2024-04-16 11:49:45
举报
文章被收录于专栏:原创笔记原创笔记

在当今这个由数据和智能驱动引领生产力的时代,人工智能(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 提供以下功能:

  • 支持所有主要的模型提供商,如OpenAI,Microsoft,Amazon,Google和Huggingface。
  • 支持的模型类型包括聊天和文本到图像,还有更多类型正在开发中。
  • 跨 AI 提供商的可移植 API,用于聊天和嵌入模型。支持同步和流 API 选项。还支持下拉以访问特定于模型的功能。
  • 将 AI 模型输出映射到 POJO。
  • 支持所有主要的矢量数据库提供程序,例如 Azure Vector Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate
  • 跨 Vector Store 提供程序的可移植 API,包括新颖的类似 SQL 的元数据过滤器 API,该 API 也是可移植的。
  • 函数调用
  • AI 模型和矢量存储的 Spring Boot 自动配置和启动器。
  • 用于数据工程的 ETL 框架

特性概述:

  • 模型输入/输出
  • 整合数据
  • 连接多个Ai模型交互
  • 内存
  • 代理

框架入门:

首先,AiClientOpenAI 平台的所有通信都需要 API Key。为此,可以在 “API Keys” 页面上创建一个 Token。

Spring AI 项目定义了配置属性:spring.ai.openai.api-key

可以在 application.yml 文件中进行设置。

代码语言:javascript
复制
spring:
ai:
  openai.api-key: ${OPEN_AI_KEY}

下一步是配置依赖。Spring AI 项目在 Spring 里程碑库(Spring Milestone Repository)中提供了组件。

因此,需要添加 repository 定义:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<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,例如聊天、图形生成、函数调用等等。

来看看一些栗子:

图片生成:

代码语言:javascript
复制
@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()));
	}
 
}

调用:

代码语言:javascript
复制
>curl http://localhost:8080/chat/ai/image

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档