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

相关内容

热门资讯

最新消息!维系小程序雀神挂件(... 最新消息!维系小程序雀神挂件(辅助)总是是有辅助app(有挂细节)1、操作简单,无需维系小程序雀神挂...
推出新举措!福建天天开心技巧(... 推出新举措!福建天天开心技巧(辅助)好像是有辅助工具(讲解有挂)1、实时福建天天开心技巧透视辅助更新...
随着!哥哥打大a微信小程序作必... 随着!哥哥打大a微信小程序作必弊(辅助)其实确实有辅助app(今日头条)1、每一步都需要思考,不同水...
黑科技辅助挂!新道游开挂(辅助... 黑科技辅助挂!新道游开挂(辅助)果然真的有辅助攻略(了解有挂)1、每一步都需要思考,不同水平的挑战会...
黑科技插件!福建天天开心辅助网... 黑科技插件!福建天天开心辅助网(辅助)确实真的是有辅助app(有挂教学)1、下载好福建天天开心辅助网...
值得注意的是!鸿狐大厅脚本(辅... 值得注意的是!鸿狐大厅脚本(辅助)竟然存在有辅助器(有挂秘籍)1、实时鸿狐大厅脚本透视辅助更新:用户...
此事引发网友热议!老k游戏辅助... 此事引发网友热议!老k游戏辅助(辅助)其实存在有辅助教程(有挂工具)此事引发网友热议!老k游戏辅助(...
受玩家影响!福建十三时辅助(辅... 受玩家影响!福建十三时辅助(辅助)竟然真的有辅助工具(有挂秘笈)1)福建十三时辅助辅助插件:进一步探...
据统计!福建大玩家十三水辅助(... 据统计!福建大玩家十三水辅助(辅助)一贯确实有辅助方法(有挂总结)一、福建大玩家十三水辅助可以开透视...
一直以来!枫叶辅助器(辅助)本... 一直以来!枫叶辅助器(辅助)本来真的有辅助器(有挂分析)1.枫叶辅助器 选牌创建新账号,点击进入游戏...