探索AI创新的前沿——从零开始学习和运用SpringAI

2024-06-17 06:04

本文主要是介绍探索AI创新的前沿——从零开始学习和运用SpringAI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.SpringAI介绍

SpringAI是AI工程师的一个应用框架,它提供了一个友好的API和开发AI应用的抽象,旨在简化AI应用的开发工序。
目标是将可移植性和模块化设计等设计原则应用于AI领域的Spring生态系统,并将POJO作为应用程序的构建块推广到AI领域。
跨AI提供商的便携API支持聊天、文本到图像和嵌入模型。同时支持同步和流API选项。还支持各种定制的功能。
总的来说就是:Spring出了一个AI框架,帮助我们快速调用AI,从而实现各种功能场景。SpringAI官网链接
在这里插入图片描述

2.创建SpringBoot项目

  1. 打开IDEA新建一个项目或者模块;

  2. 在新出的弹框中选择Spring Boot;这里需要注意类型选择Maven、JDK需要选择17版本,打包方式选择jar
    在这里插入图片描述

  3. 选择需要添加的依赖项目,分别是SpringWeb和OpneAI;
    在这里插入图片描述

  4. 最后点击创建即可。

3.修改仓库地址

项目创建完毕后,如果你的项目仓库地址是阿里云镜像,则有可能导致openai依赖无法正常下载,因此需要修改pom.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><snapshots><enabled>false</enabled></snapshots></repository></repositories>

4.修改配置文件

spring.application.name=SpringAI-demo# 添加openai配置文件
spring.ai.openai.api-key=
spring.ai.openai.base-url=
spring.ai.openai.chat.options.model=gpt-3.5-turbo
spring.ai.openai.chat.options.temperature=0.7

这些配置项是用于Spring AI框架与OpenAI API集成的配置参数。以下是对每个配置项的详细解释:

1. spring.ai.openai.api-key

  • 解释:这个配置项用于指定与OpenAI API通信的API密钥。API密钥是一个私密的字符串,OpenAI使用它来识别和授权您的应用程序。
  • 示例
    spring.ai.openai.api-key=sk-XXXXXXXXXXXXXX
    

2. spring.ai.openai.base-url

  • 解释:这个配置项用于指定OpenAI API的基础URL。通常,您可以使用默认的OpenAI URL,但在某些情况下,您可能需要指定一个自定义URL(例如,使用代理或自托管的OpenAI实例)。
  • 示例
    spring.ai.openai.base-url=https://api.openai.com/v1
    

3. spring.ai.openai.chat.options.model

  • 解释:这个配置项用于指定要使用的OpenAI模型的名称。OpenAI提供了多种模型,每种模型具有不同的性能和用途。例如,gpt-3.5-turbo是一个性能良好且性价比高的模型,适合大多数对话和生成任务。
  • 示例
    spring.ai.openai.chat.options.model=gpt-3.5-turbo
    

4. spring.ai.openai.chat.options.temperature

  • 解释:这个配置项用于设置生成文本时的“温度”参数。温度控制生成文本的随机性。较高的温度值(如0.9)会使输出更随机和多样化,而较低的温度值(如0.2)会使输出更确定和集中。0.7是一个常用的平衡值。
  • 示例
    spring.ai.openai.chat.options.temperature=0.7
    

5.编写控制层代码

1.Chat Client AI

package com.xing.springaidemo.controller;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient.Builder chatClientBuilder) {this.chatClient = chatClientBuilder.build();}@GetMapping("/hello")public String hello() {return "Hello SpringAI";}@GetMapping("/ai")String generation(String userInput) {return this.chatClient.prompt().user(userInput).call().content();}
}

2.Chat Model AI

package com.xing.springaidemo.controller;import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Map;@RestController
public class ChatController {private final OpenAiChatModel model;@Autowiredpublic ChatController(OpenAiChatModel model) {this.model = model;}@GetMapping("/hello")public String hello() {return "Hello SpringAI";}@GetMapping("/ai/generate")public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {return Map.of("generation", model.call(message));}
}

6.查看效果

在这里插入图片描述

这篇关于探索AI创新的前沿——从零开始学习和运用SpringAI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068655

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Swagger在java中的运用及常见问题解决

《Swagger在java中的运用及常见问题解决》Swagger插件是一款深受Java开发者喜爱的工具,它在前后端分离的开发模式下发挥着重要作用,:本文主要介绍Swagger在java中的运用及常... 目录前言1. Swagger 的主要功能1.1 交互式 API 文档1.2 客户端 SDK 生成1.3

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的