入门指南

本节提供使用 Spring AI 入门的起点。

您应根据您的需求按照以下各节中的步骤操作。

Spring AI 支持 Spring Boot 3.2.x 和 3.3.x

Spring Initializr

访问 start.spring.io 并选择您想在新应用程序中使用的 AI 模型和向量存储。

添加里程碑和快照存储库

如果您更喜欢手动添加依赖项代码段,请按照以下各节中的说明操作。

要使用里程碑和快照版本,您需要在构建文件中添加对 Spring 里程碑和/或快照存储库的引用。

将以下存储库定义添加到您的 Maven 或 Gradle 构建文件中

  • Maven

  • Gradle

<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>
repositories {
  mavenCentral()
  maven { url 'https://repo.spring.io/milestone' }
  maven { url 'https://repo.spring.io/snapshot' }
}

依赖管理

Spring AI 物料清单 (BOM) 声明了给定 Spring AI 版本使用的所有依赖项的推荐版本。从应用程序的构建脚本使用 BOM 可以避免您自己指定和维护依赖项版本的需求。相反,您使用的 BOM 版本决定了使用的依赖项版本。它还确保默认情况下使用受支持和经过测试的依赖项版本,除非您选择覆盖它们。

将 BOM 添加到您的项目

  • Maven

  • Gradle

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
dependencies {
  implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT")
  // Replace the following with the starter dependencies of specific modules you wish to use
  implementation 'org.springframework.ai:spring-ai-openai'
}

Gradle 用户还可以通过利用 Gradle (5.0+) 对使用 Maven BOM 声明依赖项约束的原生支持来使用 Spring AI BOM。这是通过将“platform”依赖项处理程序方法添加到 Gradle 构建脚本的 dependencies 部分来实现的。如下面的代码段所示,然后可以跟随着您想要使用的 一个或多个 spring-ai 模块(例如 spring-ai-openai)的启动器依赖项的无版本声明。

添加特定组件的依赖项

文档中的以下各节显示了您需要添加到项目构建系统中的依赖项。

示例项目

您可以克隆 GitHub 上的这些项目来开始使用。

航班预订助手

一个 AI 驱动的系统,可以访问条款和条件(检索增强生成,RAG),访问工具(Java 方法)来执行操作(函数调用)并使用 LLM 与用户交互。