TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1629 8
Spring AI 实战:用 OpenAI 构建首个应用

本教程带你从零搭建一个基于 Spring Boot 与 OpenAI 的 AI 应用,通过一个简单的 REST 接口,完整走通从项目初始化、配置 API Key、创建 Controller 到发送 Prompt 的全流程。

教程核心步骤:

• 通过 Spring Initializr 创建 Maven 项目并引入 Spring AI OpenAI starter;使用环境变量配置 API Key,避免硬编码进源码;通过 ChatClient.Builder 注入并构建 ChatClient;创建 ChatController 暴露 GET /api/chat 接口;引入 Service 层分离 HTTP 与 AI 交互逻辑;使用 system 消息约束模型行为。教程还梳理了 ChatClient 的 prompt()
• call()
• content() 三个核心操作,并对比了 System Message 与 User Message 的职责差异

常见错误提醒:不要把 API Key 提交到 Git;避免在每个 Controller 中直接调用 AI 模型,应统一经过 Service 层;ChatClient 是面向应用的抽象,底层模型集成由 ChatModel 处理;生产环境应通过 system 指令控制模型行为;初期不要直接引入 RAG、向量数据库、Agent 等复杂架构,按需演进。

教程最后展示了完整的 ChatService、ChatController 与配置示例,并预告下一部分将使用 Ollama 在本地运行 LLM,同一套 ChatClient 代码可无缝切换 OpenAI、Ollama 等不同模型提供商。


#开发者 #工具 #SpringAI #SpringBoot #OpenAI #Java #AI #LLM
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 26, 2026PostgreSQL 复制槽上限参数 max_replication_slots 解析 max_replication_slots 决定共享内存中复制槽数组的长度,仅此而已。它不决…
  2. Sep 26, 2026五仓库架构踩坑:Gitlink 与双 CI Flude 团队复盘了多仓库架构的实践代价。项目从第一分钟起就选择拆分成独立仓库,Pipeline、engine、design-docs…
  3. Sep 26, 2026Xeno Core:TypeScript 后端架构框架 Node.js 复杂系统的架构选型往往决定代码的长期命运。开发者常在两条路之间纠结:要么依赖重度使用实验性装饰器和反射(如…
  4. Sep 25, 2026用 SLO 给 AI Agent 的行为定个预算 Grafana Labs 提出把可靠性工程里的错误预算(error budget)思路用到 AI Agent 上。延迟、token…
  5. Sep 25, 2026Xcode 27.2 改用 JSON 项目格式 Xcode 27.2 用基于 JSON 的 project.xcproj 取代了沿用多年的 project.pbxproj。新建项目…
  6. Sep 25, 2026PostgreSQL 的 max_prepared_transactions 该不该开 prepared transaction 是脱离会话独立存在的两阶段提交事务。执行 PREP…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →