快速学习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

相关内容

热门资讯

透视透视!aapoker怎么拿... 透视透视!aapoker怎么拿好牌(透视)可以控制牌(一直是有挂)1、任何aapoker怎么拿好牌a...
透视总结!aapoker如何设... 透视总结!aapoker如何设置胜率(透视)安装包可以使用(果然是真的有挂)1、不需要AI权限,帮助...
透视好牌!aapoker怎么拿... 透视好牌!aapoker怎么拿好牌(透视)俱乐部靠谱(本来有挂)aapoker怎么拿好牌软件透明挂微...
透视讲解!aapoker怎么拿... 透视讲解!aapoker怎么拿好牌(透视)辅助器是真的(一贯是有挂)1)aapoker怎么拿好牌辅助...
透视科技!aapoker辅助器... 透视科技!aapoker辅助器怎么用(透视)辅助工具安全(切实是有挂)1、透视科技!aapoker辅...
透视科技!aapoker免费透... 透视科技!aapoker免费透视脚本(透视)ai插件(竟然是有挂);1、超多福利:超高返利,海量正版...
透视脚本!aapoker万能辅... 透视脚本!aapoker万能辅助器(透视)脚本(果然是有挂)aapoker万能辅助器辅助器中分为三种...
透视软件!aapoker安装包... 透视软件!aapoker安装包怎么使用(透视)可以选牌(其实是真的有挂)1、完成aapoker安装包...
透视科技!aapoker公共底... 透视科技!aapoker公共底牌(透视)辅助器可以用(果然有挂)1、构建自己的aapoker公共底牌...
透视透视挂!aapoker辅助... 透视透视挂!aapoker辅助插件工具(透视)插件(本来存在有挂)1、玩家可以在aapoker辅助插...