这一部分提供了如何开始使用Spring AI的起点。
您应该根据自己的需求,遵循以下每个部分的步骤。
Spring CLI
Spring CLI(https://docs.spring.io/spring-cli/reference/index.html),简化了直接从您的终端创建新应用程序的过程。就像熟悉JavaScript生态系统的用户所知的’create-react-app’命令一样,Spring CLI提供了一个`spring boot new`命令来创建基于Spring的项目。Spring CLI还提供了将外部代码库集成到您当前项目中的功能,以及许多其他提高生产效率的特点。
Note
|
重要的是要理解"Spring CLI"和"Spring Boot CLI"是两个不同的项目,它们各自拥有一套功能。 |
要开始创建一个Spring AI应用程序,请按照以下步骤操作:
-
下载最新的[Spring CLI 发布版本](安装说明(https://docs.spring.io/spring-cli/reference/installation.html#_setting_up_your_path_or_alias)进行安装。
-
要创建一个基本的基于OpenAI的应用程序,请使用以下命令:
shell spring boot new --from ai --name myai
-
请参阅生成的
README.md
文件,以获取有关获取 OpenAI API 密钥和运行您的第一个 AI 应用程序的指导。
要将同一个简单的AI应用添加到一个*已有的*项目中,执行:
shell spring boot add ai
Note
|
Spring CLI 允许用户定义自己的[项目目录](https://docs.spring.io/spring-cli/reference/registering-new-projects.html),这些目录定义了您可以创建或添加到现有代码库的项目。 |
春季初始化器
请前往 https://start.spring.io/ 并选择你在新应用程序中想使用的AI模型和向量存储。
添加里程碑和快照仓库
如果你倾向于手动添加依赖代码段,请按照以下部分的说明操作。
要使用里程碑和快照版本,您需要在构建文件中添加对Spring里程碑和/或快照仓库的引用。
对于Maven,根据需要添加以下仓库定义:
xml
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
对于Gradle,根据需要添加以下仓库定义:
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
依赖管理
Spring AI 物料清单(BOM)声明了Spring AI某个版本所使用的所有依赖项推荐版本。在应用程序的构建脚本中使用BOM,可以避免您自己指定和维护依赖版本的需求。相反,您使用的BOM版本决定了使用的依赖版本。它还确保您默认使用支持和测试过的依赖版本,除非您选择覆盖它们。
如果您是Maven用户,您可以通过在pom.xml文件中添加以下内容来使用BOM -
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>0.8.1-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Gradle用户可以通过利用Gradle(5.0+)原生对使用Maven BOM声明依赖约束的支持来使用Spring AI BOM。这是通过在Gradle构建脚本的dependencies部分添加一个’platform’依赖处理方法来实现的。如下面的代码片段所示,这之后可以接着无需版本声明的Starter Dependencies,用于一个或多个你希望使用的spring-ai模块,比如spring-ai-openai。
dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:0.8.1-SNAPSHOT")
// Replace the following with the starter dependencies of specific modules you wish to use
implementation 'org.springframework.ai:spring-ai-openai'
}
为特定组件添加依赖项
文档中的每个以下部分都显示了您需要添加到项目构建系统中的依赖项。
嵌入模型
聊天模型
-
-
OpenAI聊天完成(支持流和函数调用)
-
Microsoft Azure Open AI 聊天完成(支持流式和函数调用)
-
HuggingFace 聊天完成(不支持流媒体)
-
Google Vertex AI PaLM2 聊天完成(不支持流式传输)
-
Google Vertex AI Gemini Chat Completion(流式传输,多模态和函数调用支持)
-
MistralAI 聊天完成(支持流式和函数调用)
-
向量数据库
-
-
Azure 矢量搜索 - Azure 矢量存储。
-
ChromaVectorStore - The Chroma 向量存储。
-
MilvusVectorStore - Milvus向量存储。
-
Neo4jVectorStore - The Neo4j vector store.
-
PgVectorStore - 使用 PostgreSQL/PGVector 的矢量存储。
-
Qdrant向量存储 - Qdrant 向量存储。
-
RedisVectorStore - 这是 Redis 向量存储。
-
WeaviateVectorStore - 链接:https://weaviate.io/[Weaviate] 向量存储。
-
链接:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStore.java[SimpleVectorStore] - 一个简单的(内存中的)持久向量存储实现,适合教学用途。
-
样本项目
你可以在GitHub上克隆这些项目以开始。