尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Spring AI同步调用实战:用一个接口完成AI问答

Spring AI同步调用实战:用一个接口完成AI问答 本文是“Spring AI 智能体实战”系列第 5/30 篇。项目采用 Java 17、Spring Boot 3.4.3 和课程示例所使用的 Spring AI 版本。不同 Spring AI 版本的依赖名称和部分 API 可能存在差异请以自己项目的版本为准。前言编写同步聊天接口掌握 prompt、call 和 content 三个核心调用步骤。本文将沿用同一个实战项目逐步完成相关功能。所有密钥均使用环境变量表示复制代码后请在本地配置真实值不要把 API Key 或数据库密码提交到代码仓库。本文目标理解本节功能解决的实际问题。掌握关键配置、接口与代码结构。完成可验证的运行结果为下一节功能做好准备。同步调用ChatController.java接下来我们定义一个Controller在其中接收用户发送的提示词然后把提示词发送给大模型交给大模型处理拿到结果后返回。代码如下package com.gdcp.ai.controller; import lombok.RequiredArgsConstructor; import org.springframework.ai.chat.client.ChatClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RequiredArgsConstructor RestController RequestMapping(/ai) public class ChatController { private final ChatClient chatClient; // 请求方式和路径不要改动将来要与前端联调 GetMapping(/chat) public String chat(RequestParam(defaultValue 讲个笑话) String prompt) { return chatClient .prompt(prompt) // 传入user提示词 .call() // 同步请求会等待AI全部输出完才返回结果 .content(); //返回响应内容 } }注意基于call()方法的调用属于同步调用需要所有响应结果全部返回后才能返回给前端。启动项目在浏览器中访问http://localhost:8080/ai/chat?prompt你好本文总结完成第一个可访问的 AI 对话 REST 接口同时理解同步调用必须等待完整响应的特点。建议在进入下一篇之前亲自运行本文代码并记录请求参数、控制台日志和最终响应。遇到问题时优先检查依赖版本、模型名称、环境变量和包名是否一致。下一篇预告下一篇Spring AI流式输出让回答像ChatGPT一样逐字返回。
返回列表