使用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=请自我介绍

相关推荐
罗超驿9 小时前
Java数据结构_栈_算法题
java·数据结构·
no_work9 小时前
yolo摄像头下的目标检测识别集合
人工智能·深度学习·yolo·目标检测·计算机视觉
希望永不加班9 小时前
SpringBoot 主启动类解释:@SpringBootApplication 到底做了什么
java·spring boot·后端·spring
一只叫煤球的猫9 小时前
为什么不用 RAG 做记忆系统 ——压缩上下文与 memory.md 的架构选择
人工智能·后端·ai编程
智能工业品检测-奇妙智能9 小时前
国产化系统的性价比对比
人工智能·spring boot·后端·openclaw·奇妙智能
咚咚王者9 小时前
人工智能之语言领域 自然语言处理 第十九章 深度学习框架
人工智能·深度学习·自然语言处理
独隅9 小时前
Python AI 全面使用指南:从数据基石到智能决策
开发语言·人工智能·python
啊巴矲9 小时前
小白从零开始勇闯人工智能:机器学习汇总(复习大纲篇)
人工智能
耶叶9 小时前
如何在AndroidStudio里面接入你的AI助手
人工智能·android-studio
OpenBayes贝式计算9 小时前
教程上新丨基于 GPU 部署 OpenClaw,轻松接入飞书/Discord 等社交软件
人工智能·深度学习·机器学习