使用Spring-ai实现同步响应和流式响应

文章目录


application.yaml配置文件

yml 复制代码
server:
  port: 8080
  servlet:
    encoding:
      charset: utf-8  # 解决流式响应的乱码问题
      force: true
      enabled: true

spring:
  ai:
    zhipuai:
      api-key: ${ZHIPU_KEY} # 配置 API Key
      base-url: "https://open.bigmodel.cn/api/paas"  # 配置模型地址
      chat:
        options:
          model: glm-4-flash

ZhipuChatController.java

java 复制代码
package org.example.controller;

import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.zhipuai.ZhiPuAiChatOptions;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

import java.util.List;

@RestController
@RequestMapping("/zhipuai")
public class ZhipuChatController {

    private final ChatModel chatModel;

    // 通过构造器注入ChatModel
    public ZhipuChatController(ChatModel chatModel) {
        this.chatModel = chatModel;
    }

    // 同步响应
    @GetMapping("/simple")
    public String simpleChat(@RequestParam(name = "query") String query) {
        // 调用模型
        return chatModel.call(query);
    }

    // 流式响应
    @GetMapping("/stream/chat")
    public Flux<String> streamChat(@RequestParam(name = "query") String query) {
        // 调用模型
        return chatModel.stream(query);
    }
}

使用浏览器访问接口才能看到效果

访问:127.0.0.1:8080/zhipuai/stream/chat?query=请自我介绍

相关推荐
Codebee5 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
曹牧6 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
聆风吟º6 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys6 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56786 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子6 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
爬山算法7 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
智驱力人工智能7 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_160144877 小时前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能
Howie Zphile7 小时前
全面预算管理难以落地的核心真相:“完美模型幻觉”的认知误区
人工智能·全面预算