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就知道,那叫一个千奇百怪。

相关推荐
草履虫建模3 小时前
A13 String 详解:不可变、常量池、equals 与 ==、性能与常见坑
java·开发语言·spring·jdk·intellij-idea·java基础·新手
invicinble3 小时前
学习的门道和思路
java·开发语言·学习
传说故事3 小时前
【论文自动阅读】Goal Force: 教视频模型实现Physics-Conditioned Goals
人工智能·深度学习·视频生成
186******205313 小时前
项目开发基础知识:从概念到落地的全流程指南
大数据·人工智能
说私域3 小时前
AI智能名片商城小程序数据清洗的持续运营策略与实践研究
大数据·人工智能·小程序·流量运营·私域运营
sunshine8853 小时前
合规性管理:财务安全与业务连续性的双重保障
大数据·运维·人工智能
lusasky3 小时前
Claude Code v2.1.0+ 版本集成LSP
大数据·数据库·人工智能
weixin199701080163 小时前
加盟网 item_search - 根据关键词获取行业列表接口对接全攻略:从入门到精通
java·python
EliseL3 小时前
SuperMap iObjects Java 如何将3DTiles数据转换为S3M三维瓦片
java·3d·三维
yusur3 小时前
中科驭数CEO鄢贵海:AI尚处“Day 1”,算力基建的价值外溢如同高铁
人工智能·科技·dpu·中科驭数