Java AI转型实战(三):第一次调用大模型API,拿到AI回复

从配置到运行,一个请求拿到AI的第一句回复

01 上篇回顾

上一篇,我搭建好了Spring AI的学习"沙盒"项目。pom.xml配好了,依赖下载好了,项目结构也整理清楚了。但项目不能只是个空壳,得让它真正跑起来。

这一篇的目标很明确:写一个接口,调用大模型,拿到回复。

02 配置API Key

第一步,在 application.yml 中配置阿里百炼的API Key和模型:

注意:

  • api-key 换成你自己在阿里百炼控制台创建的那个,注意是DashScope的API Key,不是阿里云账号的AccessKey
  • model 可以是 qwen-max(最强)、qwen-plus(平衡)、qwen-turbo(最快),新手先用 qwen-max 体验完整能力
  • 缩进必须用空格,不能用Tab,冒号后面要加一个空格

03 写Service层

创建一个 AIService.java,封装调用逻辑:

这段代码做了什么?

  • ChatClient.Builder 是Spring AI自动注入的构建器,已经帮你配置好了连接信息(从 application.yml 读取)
  • prompt(question) 把用户的问题传进去
  • .call().content() 发起同步调用并获取返回的文本内容

04 写Controller层

创建一个 AIController.java,暴露HTTP接口:

05 踩坑:@RequestParam的坑

第一次启动后访问接口,报了这个错:

错误原因:

我一开始写的是 @RequestParam String question,没有指定参数名。Spring在解析URL参数时,需要通过反射获取参数名,但编译时默认不保留参数名信息,导致Spring不知道这个参数叫什么名字。

解决方案:

在 @RequestParam 中显式指定参数名:

改完之后重启项目,问题解决。

06 见证时刻:第一次拿到AI回复

启动项目,打开浏览器,输入:

bash 复制代码
http://localhost:8080/api/ai/ask?question=你好,请用一句话介绍自己

等待一两秒,浏览器里返回了这样的内容:

看到这句话时,说实话还是有点小激动的。虽然只是调用了一个现成的API,但这是第一次用自己写的Java代码,通过Spring Boot,成功拿到了大模型的回复。从配置到代码,每一步都是自己亲手完成的。

07 小结

这一篇完成了三件事:

  1. ✅ 在 application.yml 中配置了API Key和模型
  2. ✅ 写了Service层(封装ChatClient)和Controller层(暴露HTTP接口)
  3. ✅ 解决了 @RequestParam 的参数名问题,成功拿到AI回复

现在我可以自豪地说:我的Java项目,已经能和大模型对话了。

下期预告

目前只是最基础的"一问一答",每次请求都是独立的,AI不记得前面聊过什么。

接下来,我要给AI加上记忆能力------让它能记住上下文,实现多轮对话。这才是真正"像聊天"的体验。

另外,请求方式目前还是同步阻塞的,对一个高延迟的外部接口来说,响应时间可能不够理想。后面也会考虑引入 SSE(Server-Sent Events)流式输出 ,实现类似ChatGPT的逐字打字效果,并支持异步/虚拟线程来优化性能。

一步一步来,下期见。


📌 我是超超不吵吵,10年Java全栈,正在转型AI应用开发。

每周一篇实战笔记,不贩卖焦虑,只分享能落地的技术。

掘金/CSDN同名,欢迎关注。

相关推荐
卷无止境10 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
狼爷11 小时前
从零用 Java 构建 AI Agent 框架:JavaManus 设计与实现深度解析
后端·langchain·aigc
郑州光合科技余经理11 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源11 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源11 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆66612 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
周杰伦fans12 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
小蒜学长13 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
IT_陈寒13 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
打工仔折腾 AI14 小时前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战