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 分钟前
镀锌板焊接中库卡机器人是如何省气的
网络·人工智能·机器人
Keep_Trying_Go18 分钟前
论文Leveraging Unlabeled Data for Crowd Counting by Learning to Rank算法详解
人工智能·pytorch·深度学习·算法·人群计数
趣浪吧39 分钟前
AI在手机上真没用吗?
人工智能·智能手机·aigc·音视频·媒体
Boop_wu42 分钟前
[Java EE] 多线程 -- 初阶(5) [线程池和定时器]
java·开发语言
optimistic_chen1 小时前
【Java EE进阶 --- SpringBoot】Spring事务传播机制
spring boot·后端·spring·java-ee·事务·事务传播机制
IT考试认证1 小时前
华为人工智能认证 HCIA-AI Solution H13-313 题库
人工智能·华为·题库·hcia-ai·h13-313
AI technophile1 小时前
OpenCV计算机视觉实战(31)——人脸识别详解
人工智能·opencv·计算机视觉
九河云1 小时前
汽车轻量化部件智造:碳纤维成型 AI 调控与强度性能数字孪生验证实践
人工智能·汽车·数字化转型
3DVisionary1 小时前
DIC技术如何重新定义汽车板料成形测试
人工智能·汽车·材料力学性能·dic技术·汽车板料·成形极限图·非接触式测量
5***o5001 小时前
深度学习代码库
人工智能·深度学习