【Spring AI】03. 开始

devtools/2024/10/18 18:29:30/

文章目录

  • 开始(Getting Started)
    • Spring CLI
    • Spring Initializr
    • 添加 Milestone 和 Snapshot Repositories
    • 依赖管理(Dependency Management)
    • 为特定组件添加依赖
    • 示例项目
      • OpenAI
      • Azure OpenAI

开始(Getting Started)


本节提供了如何开始使用 Spring AI 的起点。您应根据需要按照以下各节中的步骤进行操作。

Spring CLI

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

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

若要开始创建 Spring AI 应用程序,请按照下列步骤操作:

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

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

spring boot add ai

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

Spring Initializr

前往 start.spring.io,选择要在新应用程序中使用的 AI 模型和向量存储。

添加 Milestone 和 Snapshot Repositories

如果希望手动添加依赖项代码段,请按照以下部分中的说明进行操作。

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

对于 Maven,请根据需要添加以下存储库定义:

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

依赖管理(Dependency Management)

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+)native 支持来使用 Spring AI BOM,使用 Maven BOM 声明依赖项约束。这是通过将“platform”依赖项添加到 Gradle 构建脚本的依赖项部分来实现的。如下面的代码片段所示,可以为一个或多个spring-ai模块(例如spring-ai-openai)的Starter依赖项进行无版本声明。

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 useimplementation 'org.springframework.ai:spring-ai-openai'
}

为特定组件添加依赖

文档中 04章节 的每个部分显示了需要添加到项目生成系统中的依赖项,这里不再一一列举。

示例项目

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

OpenAI

  • github.com/rd-1-2022/ai-openai-helloworld

Azure OpenAI

  • github.com/rd-1-2022/ai-azure-openai-helloworld
  • github.com/Azure-Samples/spring-ai-azure-workshop

http://www.ppmy.cn/devtools/22691.html

相关文章

037——加入Kconfig机制

目录 一、什么是Kconfig 1.1 由来 1.2 功能 二、 Kconfig的基本语法 2.1 Kconfig 构建项目解析 2.2 怎么调用子makefile做menuconfig 方法一&#xff1a;使用make命令直接调用子目录 方法二&#xff1a;使用变量来指定子目录 方法三&#xff1a;使用include指令包含子…

react 学习笔记二:ref、状态、继承

基础知识 1、ref 创建变量时&#xff0c;需要运用到username React.createRef()&#xff0c;并将其绑定到对应的节点。在使用时需要获取当前的节点&#xff1b; 注意&#xff1a;vue直接使用里面的值&#xff0c;不需要再用this。 2、状态 组件描述某种显示情况的数据&#…

React 语法

1、认识JSX JSX是一种JavaScript的语法扩展&#xff0c;可以用于描述UI界面&#xff0c;可以与JavaScript融合在一起使用 JSX的语法&#xff1a;const element <h2>Hello World</h2> 在 <script type"text/babel"> 时才可以这样写 2、为什么…

秋招后端开发面试题 - Java多线程(下)

目录 Java多线程前言面试题synchronized&#xff1f;作用&#xff1f;synchronized 怎么使用&#xff1f;构造方法可以用 synchronized 修饰吗&#xff1f;synchronized 底层原理了解吗&#xff1f;除了原子性&#xff0c;synchronized 可见性&#xff0c;有序性&#xff0c;可…

现代神经网络总结(AlexNet VGG GoogleNet ResNet的区别与改进)

VGG NIN GoogleNet 1.VGG&#xff0c;NIN&#xff0c;GoogleNet的块结构图对比(注意:无AlexNet) 这些块带来的区别与细节 AlexNet未使用块,主要对各个层进行了解: 卷积:捕捉特征 relu:增强非线性 池化层:减少计算量 norm:规范数据分布 全连接层:分类VGG块的改善(对比AlexNe…

数据库:实验二

一、实验2.1 数据查询 1、要求 以School数据库为例&#xff0c;在该数据库中存在四张表格&#xff0c;分别为&#xff1a; 表STUDENT(sid, sname, email, grade);表TEACHERS(tid, tname, email, salary);表COURSES(cid, cname, hour);表CHOICES(no, sid, tid, cid, score) 在…

数据库的嵌套查询(子查询),分组查询和统计查询—学生选课

学生选课数据库中的表的结构参考学生选课数据库的定义和维护 1.嵌套查询 1.1查询选修了数据库原理与应用课程的学生学号和姓名 SELECT sno 学号, sname 姓名 FROM student WHERE sno IN(SELECT snoFROM SCINNER JOIN Course c ON c.cno SC.cno AND c.cname 数据库原理与应…

Debezium分享系列之:Debezium2.6稳定版本SQLSerer数据库Debezium connector核心知识点

Debezium分享系列之:Debezium2.6稳定版本SQLSerer数据库Debezium connector核心知识点 一、综述二、snapshot.mode参数三、临时快照四、增量快照五、触发增量快照六、使用Kafka信令通道触发增量快照七、停止增量快照八、使用Kafka信令通道停止增量快照九、阻止快照十、读取变更…