SpringAi
在当今这个由数据和智能驱动引领生产力的时代,人工智能(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模型交互
- 内存
- 代理
框架入门:
首先,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 :
代码语言: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,例如聊天、图形生成、函数调用等等。