Skip to content

快速开始

本节提供了如何开始使用Spring AI的起点。

您应该根据您的需要遵循以下每个部分中的步骤。

Spring CLI

Spring CLI简化了直接从终端创建新应用程序的过程。就像为熟悉JavaScript生态系统的人准备的“create-react-app”命令一样,Spring CLI提供了一个Spring启动新命令来创建基于Spring的项目。Spring CLI还提供了将外部代码库集成到当前项目中的特性,以及许多其他生产力特性。

NOTE

理解“Spring CLI”与“Spring Boot CLI”是不同的项目是很重要的,每个项目都有自己的一组功能。

要开始创建Spring AI应用程序,请遵循以下步骤:

  1. 下载最新的Spring CLI Release并按照安装说明进行安装。
  2. 要创建一个简单的基于OpenAI的应用程序,使用以下命令:
    shell
    spring boot new -from ai -name myai
  3. 请查阅生成的README。获取OpenAI API密钥和运行您的第一个AI应用程序的指导。

要将相同的简单AI应用程序添加到现有项目中,请执行:

shell
spring boot add ai

NOTE

Spring CLI允许用户定义自己的项目目录,这些目录定义了可以创建哪些项目或将哪些项目添加到现有代码库中。

Spring Initializr

转到start.spring.io,选择你想在新应用程序中使用的AI Models和Vector Stores。

添加里程碑和快照存储库

如果您喜欢手动添加依赖项片段,请按照以下部分中的说明进行操作。

要使用Milestone和Snapshot版本,您需要在构建文件中添加对Spring Milestone和/或Snapshot存储库的引用。

对于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,根据需要添加以下存储库定义:

GROOVY
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 -

xml
<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构建脚本的依赖项部分添加一个'platform'依赖项处理方法来实现的。如下面的代码片段所示,接下来可以为你希望使用的一个或多个spring-ai模块(例如spring-ai-openai)声明无版本的Starter依赖项。

GRADLE
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'
}

为特定组件添加依赖项

文档中的以下每个部分都显示了需要添加到项目构建系统中的依赖项。

嵌入的模型

  • Embeddings API
    • Spring AI OpenAI Embeddings
    • Spring AI Azure OpenAI Embeddings
    • Spring AI Ollama Embeddings
    • Spring AI Transformers (ONNX) Embeddings
    • Spring AI PostgresML Embeddings
    • Spring AI Bedrock Cohere Embeddings
    • Spring AI Bedrock Titan Embeddings
    • Spring AI VertexAI Embeddings
    • Spring AI MistralAI Embeddings

聊天模型

  • Chat Completion API
    • OpenAI Chat Completion (streaming and function-calling support)
    • Microsoft Azure Open AI Chat Completion (streaming and function-calling support)
    • Ollama Chat Completion
    • HuggingFace Chat Completion (no streaming support)
    • Google Vertex AI PaLM2 Chat Completion (no streaming support)
    • Google Vertex AI Gemini Chat Completion (streaming, multi-modality & function-calling support)
    • Amazon Bedrock
      • Cohere Chat Completion
      • Llama2 Chat Completion
      • Titan Chat Completion
      • Anthropic Chat Completion
    • MistralAI Chat Completion (streaming and function-calling support)

图片生成模型

  • Image Generation API
    • OpenAI Image Generation
    • StabilityAI Image Generation

向量数据库

  • Vector Database API
    • Azure Vector Search - The Azure vector store.
    • ChromaVectorStore - The Chroma vector store.
    • MilvusVectorStore - The Milvus vector store.
    • Neo4jVectorStore - The Neo4j vector store.
    • PgVectorStore - The PostgreSQL/PGVector vector store.
    • PineconeVectorStore - PineCone vector store.
    • QdrantVectorStore - Qdrant vector store.
    • RedisVectorStore - The Redis vector store.
    • WeaviateVectorStore - The Weaviate vector store.
    • SimpleVectorStore - A simple (in-memory) implementation of persistent vector storage, good for educational purposes.

简单项目

你可以在GitHub上克隆这些项目来开始。

Open AI

Azure OpenAI