【Spring AI】03. 开始

文章目录

  • 开始(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 use
  implementation '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.mfbz.cn/a/580753.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLaMA 3:大模型之战的新序幕

作者 | 符尧 OneFlow编译 翻译&#xff5c;杨婷、宛子琳、张雪聃 本文要点概览&#xff1a; 文本数据的扩展可能已经达到了极限&#xff0c;因为易于获取的网络文本资源&#xff08;如Common Crawl、GitHub、ArXiv等&#xff09;已基本被充分利用。 尽管如此&#xff0c;通过更…

Redis底层数据结构之ZSkipList

目录 一、概述二、ZSkipList结构三、和平衡树和哈希表的对比 redis底层数据结构已完结&#x1f44f;&#x1f44f;&#x1f44f;&#xff1a; ☑️redis底层数据结构之SDS☑️redis底层数据结构之ziplist☑️redis底层数据结构之quicklist☑️redis底层数据结构之Dict☑️redis…

[Diffusion Model 笔记]Score based

目录 概述方法怎么估计score&#xff08;估计噪声就是估计score&#xff09;怎么采样&#xff08;给原始数据加噪声&#xff0c;早期大后来变小&#xff09;inpainting &#xff08;来自补充材料&#xff09;还没有细究的地方&#xff1a; 概述 本文是观看以下视频的笔记&…

使用JMeter模拟设备通过MQTT发送数据

需求&#xff1a; 需要一个工具能够支持MQTT协议发送各种不同的数据。 目的&#xff1a; 模拟小型温室设备反馈&#xff0c;搭建一个测试环境&#xff0c;根据测试的数据显示硬件的状态和数值。 工具&#xff1a;JMeter 环境&#xff1a;需要配置Java运行环境。 操作步骤&a…

机器人操作系统ROS2学习—编译工作空间colcon build报错问题

在ROS2中&#xff0c;工作空间创建完成后&#xff0c;会经常需要编译工作空间。在工作空间dev_ws 下打开一个终端&#xff0c;通过指令Colcon build来编译工作空间。 1、这个过程有可能会出现如下错误: "colconbuild:Duplicate package names not supported" 根据…

阅读笔记——《BLEEM: Packet Sequence Oriented Fuzzing for Protocol Implementations》

【参考文献】Zhengxiong Luo, Junze Yu, Feilong Zuo, Jianzhong Liu, Yu Jiang, Ting Chen, Abhik Roychoudhury, and Jiaguang Sun. Bleem: Packet sequence oriented fuzzing for protocol implementations. In 32nd USENIX Security Symposium (USENIX Security 23), pages…

西湖大学赵世钰老师【强化学习的数学原理】学习笔记2节

强化学习的数学原理是由西湖大学赵世钰老师带来的关于RL理论方面的详细课程&#xff0c;本课程深入浅出地介绍了RL的基础原理&#xff0c;前置技能只需要基础的编程能力、概率论以及一部分的高等数学&#xff0c;你听完之后会在大脑里面清晰的勾勒出RL公式推导链条中的每一个部…

github two-factor authentication是个啥?

最近在逛github时&#xff0c;总是时不时会弹出一下界面&#xff0c;很烦 看到红框里的文字&#xff0c;这明显是强制要求做这个认证&#xff0c;如果不认证4天后账号将不可访问&#xff0c;所以今天花点时间看看怎么做这个认证&#xff0c;点“Enable 2FA now”进入这个界面&a…

Vue后台系统demo小计

创建项目 1.报错 Error: command failed: npm install --loglevel error --legacy-peer-deps 措施1&#xff1a;node.js文件夹属性 》高级 》选择第一个允许 Users(XXX\Users) &#xff08;对我无用&#xff09; 措施2&#xff1a;PowerShell(以管理员身份运行) 》 cd 想存…

java基础之java容器-Collection,Map

java容器 java容器分类一. Collection1. List①. ArrayList② . LinkedList③ . Vector 2. Queue队列①. LinkedList②. PriorityQueue 3. Set集合①. HashSet②. TreeSet 二. Map1. HashMap2.TreeMap3. Hashtable java容器分类 java容器分为两大类&#xff0c;分别是Collecti…

VMWare下建的CentOS7 扩容

记录一下扩容过程中踩过的坑 背景&#xff1a;一年半以前私有化部署了一个gitLab服务&#xff0c;当时只分配了30G的磁盘容量&#xff0c;这两天小伙伴总是反馈gitLab登不上。排查发现是因为磁盘满了 然后就开始了磁盘扩容之旅 各种 vgs\pv\pvdisplay\lv\lvm 等等都没用 一下…

ChatGPT记忆功能终于上线了, OpenAI 官方:用得越久越聪明!

原文 ChatGPT记忆功能终于上线了, OpenAI 官方&#xff1a;用得越久越聪明&#xff01; Aitrainee | 公众号&#xff1a;AI进修生 &#x1f31f; 记得今年2月份OpenAI发布过ChatGPT上线记忆功能的消息&#xff0c;我记得当时还弹出过这个窗口给我&#xff0c;但是仅仅体验了几…

【书生浦语第二期实战营学习笔记作业(六)】

课程文档&#xff1a;https://github.com/InternLM/Tutorial/tree/camp2/agent 课程作业&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/agent/homework.md Lagent & AgentLego 智能体应用搭建 1、Agent 理论1.1 为什么要有智能体1.2 什么是智能体1.3 智能体…

【兼职宝典】七大靠谱手机兼职副业平台,让你乐在其中,轻松实现财务自由!

数字化时代已经到来&#xff0c;互联网的普及与技术的飞速发展让越来越多的人开始关注兼职工作&#xff0c;以此增加收入、锻炼能力或追求兴趣爱好。本文将为您详细解读几种热门的兼职方式&#xff0c;助您找到最适合自己的兼职岗位。 一&#xff0c;自媒体运营&#xff1a;创…

Java 循环语句

文章目录 Java 循环语句一&#xff0c;for 循环1. for 循环结构2. for 循环案例: 输出5行HelloWord3. for 循环案例: 写出输出的结果 (格式多样性)4. for 循环案例: 遍历100以内的偶数。并获取偶数的个数&#xff0c;获取所有的偶数的和5. for 循环案例: 输出所有的水仙花数6. …

Jmeter中http请求时加HTTP Cookie管理器,cookie不生效问题

只是想加个cookie&#xff0c;就新建了cookie管理器&#xff0c;用的都是默认的&#xff0c;然后跑到怀疑自己的jmeter是不是出问题了。 还好没卸载重装。只是把策略改成netscape就好了。

【代码随想录刷题记录】LeetCode844比较含退格的字符

题目地址 1. 思路 1.1 基本思路 拿到这个题&#xff0c;我们要单独写一个函数去将退格后的字符串结果返回出来&#xff08;生成退格后的真实的字符串&#xff09;&#xff0c;我还是想魔改 O ( n ) O(n) O(n)时间复杂度的删除数组元素的算法&#xff1a;【代码随想录刷题记录…

GoLand 2021.1.3 下载与安装

当前环境&#xff1a;Windows 8.1 x64 1 浏览器打开网站 https://www.jetbrains.com/go/download/other.html 找到 2021.1.3 版本。 2 解压 goland-2021.1.3.win.zip 到 goland-2021.1.3.win。 3 打开 bin 目录下的 goland64.exe&#xff0c;选择 Evaluate for free -- Evalu…

RunnerGo四月更新:强化UI自动化测试与UI录制插件功能

RunnerGo最近更新的 UI自动化测试和UI录制插件可以让测试人员更高效地布置UI自动化场景。这次优化升级的插件录制能力&#xff0c;可以更准确的定位元素并执行步骤&#xff0c;并增加了局部截图功能&#xff0c;准确查看定位的元素位置等。 UI插件V2.0介绍 接下来&#xff0c;让…

vue2左侧菜单栏收缩展开功能

目录 1. Main.vue页面代码 a. 修改侧边栏属性 b. 修改头部导航栏 c. 定义我们的变量 d. collapse函数 2. Header.vue页面代码 3. Aside.vue页面代码 vue2左侧菜单栏收缩展开目前是非常常见的&#xff0c;我们在日常开发过程中经常会碰到。这一小节我们就详细了解一下这个…
最新文章