快速学习SpringAi
创始人
2025-01-08 15:35:27
0

Spring AI是AI工程师的一个应用框架,它提供了一个友好的API和开发AI应用的抽象,旨在简化AI应用的开发工序,例如开发一款基于ChatGPT的对话应用程序。通过使用Spring Ai使我们更简单直接使用chatgpt

1.创建项目

jdk17

image-20240514105741327

引入依赖

image-20240514105741327

2.依赖配置

配置spring仓库

                          spring-milestones             Spring Milestones             https://repo.spring.io/milestone                              false                                            spring-snapshots             Spring Snapshots             https://repo.spring.io/snapshot                              false                             

整个pom.xml

      4.0.0              org.springframework.boot         spring-boot-starter-parent         3.2.5                    com.example     springai-test     0.0.1-SNAPSHOT     springai-test     Demo project for Spring Boot              17         0.8.1                                org.springframework.boot             spring-boot-starter-web                               org.springframework.ai             spring-ai-openai-spring-boot-starter             0.8.1                                  org.projectlombok             lombok             true                               org.springframework.boot             spring-boot-starter-test             test                               org.springframework.ai             spring-ai-openai             0.8.1                                                            org.springframework.ai                 spring-ai-bom                 ${spring-ai.version}                 pom                 import                                                                        org.springframework.boot                 spring-boot-maven-plugin                                                                                            org.projectlombok                             lombok                                                                                                                      spring-milestones             Spring Milestones             https://repo.spring.io/milestone                              false                                            spring-snapshots             Spring Snapshots             https://repo.spring.io/snapshot                              false                                

因为阿里仓库暂时还没有对应的spring-ai-openai-spring-boot-
starter 依赖,所以Maven的仓库源需要使用Maven默认的仓库
源,在Maven的settings.xml中进行修改即可

 	maven-default-http-blocker 	external:http:* 	Pseudo repository to mirror external repositories 	initially using HTTP . 	http://0.0.0.0/ 	true  

如果依赖还没引入成功,可以下载jar包,地址repo.spring.io

将jar包安装至本地仓库后使用pom文件直接引入

mvn install:install-file -Dfile=你的jar包路径/你的jar包名字 -DgroupId=org.springframework.ai -DartifactId=spring-ai-openai-spring-boot-starter -Dversion=0.8.1 -Dpackaging=jar

3.代码编写

application.properties

spring.application.name=demo server.port=8080  spring.ai.openai.api-key=你的api-key #最好找一个中转url,不然得配置代理 spring.ai.openai.base-url=http://api.openai.com spring.ai.openai.chat.options.model=gpt-3.5-turbo 

controller

一个直接返回结果,一个流式返回

package com.example.demo;  import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt;  import org.springframework.ai.openai.OpenAiChatClient; 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 reactor.core.publisher.Flux;   import java.util.Map;  @RestController public class ChatController {     //日志打印     private final static Logger Log =             LoggerFactory.getLogger(ChatController.class);      //注入OpenAiChatClient     @Autowired     private OpenAiChatClient chatClient;       @GetMapping("/ai/generate")     public Map generate(@RequestParam(value = "message", defaultValue = "给我讲个笑话") String message) {          Log.info("发送的消息是:{}", message);         String result = chatClient.call(message);         Log.info("返回的消息是:{}", result);         return Map.of("generation", result);     }       @GetMapping(value = "/ai/generateStream", produces = "text/event-stream")     public Flux generateStream(@RequestParam(value = "message", defaultValue = "给我讲个笑话") String message) {         Log.info("发送的消息是:{}", message);         Prompt prompt = new Prompt(new UserMessage(message));         System.out.println(chatClient.stream(prompt));         return chatClient.stream(prompt);     } }  

4.运行结果

image-20240514105741327

image-20240514105741327
最后附上代码
https://github.com/smx1024/springai-demo

相关内容

热门资讯

六分钟俱乐部!德普之星透视辅助... 六分钟俱乐部!德普之星透视辅助软件下载,wepoker脚本下载(透视)AI教程(有挂总结)1、下载好...
大神推荐!德州ai软件可以收费... 大神推荐!德州ai软件可以收费,wpk的下风机制,2025新版总结(今日头条)-哔哩哔哩;是一款可以...
5分钟透明挂!德州hhpoke... 5分钟透明挂!德州hhpoker脚本,德州透视hhpoker(透视)技巧教程(有挂解密)一、德州hh...
黑科技辅助挂!微扑克的辅助工具... 黑科技辅助挂!微扑克的辅助工具,线上德州ai机器人,科技教程(有挂存在)-哔哩哔哩;1、完成微扑克的...
第1分钟私人局!we-poke... 第1分钟私人局!we-poker是什么软件,hhpoker有辅助吗(透视)新版2025教程(详细教程...
黑科技好牌!德州游戏辅助器,德... 黑科技好牌!德州游戏辅助器,德州ai辅助在哪里找,可靠教程(有挂教程)-哔哩哔哩;是一款可以让一直输...
第6分钟辅助!约局吧德州真的存... 第6分钟辅助!约局吧德州真的存在透视吗,德州局脚本(透视)安装教程(有挂方针)1、进入游戏-大厅左侧...
黑科技最新!德扑之星窥牌,wp... 【福星临门,好运相随】;黑科技最新!德扑之星窥牌,wpk有机器人,透明教程(有挂规律)-哔哩哔哩;暗...
2分钟透视!wepoker永久... 2分钟透视!wepoker永久免费脚本,wpk透视工作室(透视)2025新版总结(发现有挂)1)we...
玩家必看科普!德州ai辅助工具... 玩家必看科普!德州ai辅助工具购买,微扑克wpk辅助透视,2025版教程(有挂透视)-哔哩哔哩;德州...