当前位置: 首页 > news >正文

Spring Boot 3 + Spring AI 实战:十分钟集成 OpenAI API 构建智能应用

集成 OpenAI API 的准备工作

确保开发环境已安装 JDK 17+ 和 Maven/Gradle,并创建一个新的 Spring Boot 3 项目。在pom.xml中添加 Spring AI 和 OpenAI 的依赖:

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.8.1</version> </dependency>

配置 OpenAI API 密钥

application.propertiesapplication.yml中配置 OpenAI 的 API 密钥和模型参数:

spring.ai.openai.api-key=your-api-key spring.ai.openai.model=gpt-3.5-turbo

创建 AI 服务接口

定义一个服务类封装 AI 交互逻辑。例如,创建一个AIService类,注入OpenAiChatClient并实现对话功能:

import org.springframework.ai.chat.ChatClient; import org.springframework.stereotype.Service; @Service public class AIService { private final ChatClient chatClient; public AIService(ChatClient chatClient) { this.chatClient = chatClient; } public String generateResponse(String prompt) { return chatClient.call(prompt); } }

实现控制器暴露 API

创建 REST 控制器提供外部访问接口,接收用户输入并返回 AI 生成的响应:

import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/ai") public class AIController { private final AIService aiService; public AIController(AIService aiService) { this.aiService = aiService; } @PostMapping("/chat") public String chat(@RequestBody String prompt) { return aiService.generateResponse(prompt); } }

测试与验证

启动应用后,通过curl或 Postman 测试接口:

curl -X POST http://localhost:8080/api/ai/chat -H "Content-Type: text/plain" -d "Spring Boot 3有哪些新特性?"

预期返回 OpenAI 生成的文本响应,例如对 Spring Boot 3 新特性的总结。

高级配置选项

支持自定义模型参数,如温度(控制随机性)和最大 token 数:

spring.ai.openai.options.temperature=0.7 spring.ai.openai.options.max-tokens=500

可通过OpenAiChatOptions在运行时动态调整参数:

OpenAiChatOptions options = OpenAiChatOptions.builder() .withTemperature(0.5f) .withMaxTokens(200) .build(); chatClient.call(new Prompt("你的提示", options));
http://www.cnnetsun.cn/news/820293.html

相关文章:

  • 轨道小车无线控制系统设计与实现
  • 三菱PLC 与组态王打造变频器恒压供水系统控制
  • 探索MD500E伺服驱动器代码的奇妙世界
  • Ubuntu 24 通关 MySQL:从本地安装到 root 远程登录的一站式实操指南
  • 如何绑定自己的域名生成专属短链接
  • 火语言 RPA:英数图形验证码自动化处理案例
  • 企模板就是企业网站模板
  • 罗德与施瓦茨SMW200A单双通道3G6G信号发生器
  • WGCLOUD使用说明 - 如何监控主机的网络配置信息
  • C#操作Word文档:如何精准插入与格式化段落?
  • 生成式知识图谱构建综述
  • PrintPage 打印 绿色版发票打印工具 批量打印 多维度设置更实用
  • Java毕设选题推荐:基于springboot的服务商后台管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Ella陈嘉桦「艾拉主意」巡演上海站两晚连唱,乘风2023的姐姐们组团打call
  • Java计算机毕设之基于springboot的二手滑板交易系统(完整前后端代码+说明文档+LW,调试定制等)
  • HBase在电商领域的应用:海量用户行为数据存储方案
  • 【工厂出海】有货源没美工,怎么做跨境?AI 批量“洗图”神器,让 1688 工厂图直通亚马逊!
  • 【省钱攻略】一套产品图要花 3000?揭秘 AI 如何把“中文样机”直接修成“欧美大片”,摄影师都看不出真假!
  • WEB前端3道练习题的运用
  • Java毕设项目:基于springboot的机票预订系统(源码+文档,讲解、调试运行,定制等)
  • 【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
  • 社会网络仿真软件:Gephi_(1).Gephi入门与基础操作
  • 如何打造摄影作品集?
  • 2026年度硬核盘点原创音乐人必备的5款AI编曲软件
  • 手机电脑都能用!跨平台体验最佳的视频提取文字在线免费网站盘点
  • 向量数据库:RAG系统的核心引擎
  • hot100 437.路径总和Ⅲ
  • 代码混淆大赛(IOCCC)里的 C++ 代码能有多变态?
  • 当蝗虫玩起了概率游戏:HCUGOA的整活现场
  • 代码通胀时代,AI生成的代码需要 12 倍审查成本?