AI来了,Spring还会远吗?(Spring AI初体验)

目录

一、创建项目

最低要求:JDK17

下载好JDK 17,在上图的JDK中不一定能看到。此时,选add JDK:选zulu-17.jdk -> Contents -> Home

二、first demo

1、application.properties

bash 复制代码
spring.ai.openai.api-key=sk-xxx
spring.ai.openai.chat.options.model=gpt-3.5-turbo
spring.ai.openai.chat.options.temperature=0.7

2、ChatController

java 复制代码
@RestController
public class ChatController {

    private final OpenAiChatClient chatClient;

    @Autowired
    public ChatController(OpenAiChatClient chatClient) {
        this.chatClient = chatClient;
    }

    @GetMapping("/ai/generate")
    public Map generate(@RequestParam(value = "message", defaultValue = "美国的首都是?") String message) {
        return Map.of("generation", chatClient.call(message));
    }

    @GetMapping("/ai/generateStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "美国的首都是?") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        return chatClient.stream(prompt);
    }
}

3、结果

  • /ai/generate
  • /ai/generateStream
    • 额... 流式调用不行...

三、个人思考

  • 不少人把调API的人称为调包侠,把搞深度学习的人称为炼丹师。但从软件工程的角度出发,将服务/功能封装为一个个好用的API是构建复杂系统的基础。我们不可能亲手去造每一个轮子,况且术业有专攻,自己造的不如专业人士造的好用。
  • 熟练掌握API是起点,接下来,咱还得去学习下Spring AI是如何兼容这么多llm的吧。

接触过各种llm的api就知道,那叫一个千奇百怪。

相关推荐
C雨后彩虹3 分钟前
优雅子数组
java·数据结构·算法·华为·面试
一嘴一个橘子6 分钟前
springmvc 全局异常处理 and 拦截器
java
wangmengxxw6 分钟前
SpringAI-mysql
java·数据库·人工智能·mysql·springai
Coder_Boy_9 分钟前
基于SpringAI的在线考试系统-数据库设计核心业务方案
java·数据库·spring boot·ddd·tdd
考證寶題庫網10 分钟前
Designing and Implementing a Microsoft Azure AI Solution 微軟Azure AI-102 認證全攻略
人工智能·microsoft·azure
一嘴一个橘子11 分钟前
springmvc 参数校验
java
逄逄不是胖胖18 分钟前
《动手学深度学习》-52文本预处理实现
人工智能·pytorch·python·深度学习
Pyeako21 分钟前
opencv计算机视觉--图形透视(投影)变换&图形拼接
人工智能·python·opencv·计算机视觉·图片拼接·投影变换·图形透视变换
HZjiangzi25 分钟前
怎么用三维扫描做数字孪生工厂?思看科技TrackScan-Sharp方案推荐
人工智能·科技·制造·三维扫描仪
视觉&物联智能28 分钟前
【杂谈】-2026年人工智能发展趋势:智能体崛起、行业洗牌与安全挑战
人工智能·安全·llm·aigc·agi·智能体