自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 SpringAI系列|第四篇 4.1:Embedding基础

我第一次接触 Embedding 的时候,完全搞不懂这玩意儿是干嘛的。“把文本变成向量?然后呢?直到做了第一个语义搜索功能,我才明白 Embedding 的厉害之处。它让计算机能"理解"文字的意思,而不是简单地匹配关键词。这篇从概念到代码,把 Embedding 讲透。Embedding 就是把文字、图片、音频这些东西,转换成一组数字(向量)。比如,"苹果"这个词会被转成 1536 个数字组成的数组,"香蕉"也是,"手机"也是。这些数字不是随机的,语义相近的词,向量也相近。

2026-06-23 08:46:11 215

原创 Spring AI 实战系列 | 第 3.3 篇:文生图与语音

我去年给一个教育类 App 做功能,需要把课文内容自动生成配图。以前得找设计师一张一张画,现在用 AI 几分钟就能出图。还有语音功能:把文字转成语音朗读,或者把用户的语音转成文字输入。这些 Spring AI 都内置了支持。这篇把 ImageModel 和 Audio 模型的用法讲清楚。多模态能力让 AI 应用从"文字交互"升级到了"全感官交互"。图片、语音、文字的互相转换,打开了无数新的应用场景。下一篇进入Embedding 与向量数据库,这是 RAG 的基础,也是企业级 AI 应用的核心技术。

2026-06-08 14:17:34 152

原创 Spring AI 实战系列 | 第 3.2 篇:多模态输入

去年有个需求让我印象深刻:用户上传一张发票照片,AI 要自动提取发票金额、开票日期、税号这些信息。以前这种需求得接 OCR 服务,再写一堆正则提取。现在有了多模态大模型,直接把图片丢给 AI,它就能告诉你图里有啥。Spring AI 从 1.0 开始就支持多模态输入,这篇把图片理解和文档解析讲清楚。@Service// 1. 读取 PDF// 2. 合并所有页面内容// 3. 让 AI 总结.system("你是一位文档分析专家。请用中文总结以下文档的核心内容。")

2026-06-08 14:16:41 353

原创 Spring AI 实战系列 | 第 3.1 篇:结构化输出

我做过的第一个 AI 项目,需要让 AI 从用户评论中提取情感评分和关键词。.user("分析这条评论的情感和关键词:" + comment).call().content();// 然后用正则表达式从 response 里提取数据...// 结果 AI 每次格式都不一样,正则根本写不完后来才发现 Spring AI 有,能让 AI 直接返回 JSON,自动映射成 Java 对象。这篇把这个功能讲透。) {}如果内置的转换器不够用,可以实现接口自定义。

2026-06-07 18:17:30 248

原创 Spring AI 实战系列 | 第 2.3 篇:Prompt 工程化

String prompt = "请帮我总结一下这段文字:" + text;然后抱怨 AI 输出不稳定、格式不对、答非所问。问题不在 AI,在 Prompt。写好 Prompt 是一门手艺,而工程化管理 Prompt 是生产环境的刚需。这篇从基础到进阶,把 Spring AI 里 Prompt 的用法全部过一遍。Prompt 工程化是个持续迭代的过程。没有一劳永逸的完美 Prompt,只有不断优化的更好版本。建议从简单开始,先跑通功能,再逐步加入结构化、版本管理、A/B 测试这些工程化能力。

2026-06-07 18:16:48 227

原创 Spring AI 实战系列 | 第 2.2 篇:多模型提供商接入与配置详解

我去年接了个项目,客户一开始用 OpenAI,后来政策原因要切国产模型。我当时的代码里OpenAiApi写得到处都是,改起来简直是噩梦。如果当时用了 Spring AI,这事根本不会发生。这篇把 OpenAI、DeepSeek、通义千问、智谱 GLM、Ollama 本地模型的接入方式全部过一遍。看完你就知道,换模型真的只需要改配置。这篇把主流模型提供商的接入方式都过了一遍。核心结论就一句话:Spring AI 的抽象层做得足够好,换模型真的只需要改配置。下一篇讲Prompt 工程化。

2026-06-06 09:12:05 356

原创 Spring AI 实战系列 | 第 2.1 篇:ChatClient 详解

上一篇的 Controller 里,ChatClient.call().content();看着简单,对吧?但真到项目上,你会发现事情没那么轻松。同一个项目里要切换 OpenAI 和 DeepSeek,怎么配?想让 AI 回答得保守一点,temperature 调到多少合适?流式输出前端怎么接?对话历史怎么带进去?这些问题,说到底都是ChatClient的配置和使用方式。这篇挨个解决。这篇把ChatClient的核心用法过了一遍。

2026-06-06 09:01:38 365

原创 Spring AI 实战系列 | 第 1.3 篇:核心概念速览

前两篇文章,环境搭好了,第一个对话也跑通了。但说实话,如果你跟我一样,第一次看 Spring AI 的文档,大概率会被一堆名词搞晕。Model、Prompt、Embedding、Token……这些概念到底啥关系?它们在整个 AI 应用里扮演什么角色?这篇不敲新代码,就把这几个核心概念给你捋清楚。搞懂这些,后面学 ChatClient、RAG、Tool Calling 的时候,你会轻松很多。Embedding 是把文本转换成向量的技术。举个例子,“猫"和” kitten"这两个词,意思很接近。

2026-06-05 13:00:03 536

原创 Spring AI 实战系列 | 第 1.2 篇:环境准备与第一个项目

上篇文章聊完 Spring AI 是啥,评论区收到最多的留言就是:「别光说不练,到底怎么跑起来?这篇就来填坑。我会从最基础的环境准备开始,一步步带你搭好项目,最后让 AI 跟你说上第一句话。整个过程大概 15 分钟。JDK 装好的同学可能 10 分钟就够了。到这儿,你的第一个 Spring AI 项目应该已经跑起来了。确认 JDK 17+用 Spring Initializr 创建项目加了 Spring AI OpenAI Starter配了 DeepSeek 的 API Key。

2026-06-05 08:59:02 249

原创 Spring AI 实战系列 | 第 1 篇:Spring AI 概述与快速上手

> 系列说明:本文是《Spring AI 实战系列》第 1 篇,面向 Java 开发者,从零开始掌握 Spring AI。> 前置知识:熟悉 Spring Boot、了解基本 AI 概念即可。---## 前言说实话,我第一次听说 Spring AI 的时候,内心是有点抗拒的。作为一个写了多年 Java 的老码农,AI 这块一直给我一种「Python 专属」的刻板印象。LangC

2026-06-04 14:32:17 341

原创 Spring验证器错误消息-使用AOP动态替换验证器错误消息中的占位符

Pointcut 注解定义了一个切点,匹配所有执行验证的约束验证器的 isValid 方法。使用 execution 表达式来精确匹配方法签名,并通过 args 参数指定方法参数。context.disableDefaultConstraintViolation() 方法禁用默认的错误消息。context.buildConstraintViolationWithTemplate(message).addConstraintViolation() 方法构建并添加新的错误消息。

2024-11-09 12:15:16 595

原创 生成一个自签名的 SSL/TLS 证书及其对应的私钥

• /emailAddress=: 证书所有者的电子邮件地址(localadmin@localhost)。• -subj 选项用于指定证书的主体信息,其中包括证书创建对象的详细信息。• DNS:*.localhost: 证书对 localhost 的任意子域名有效。• /O=: 组织名称(Local Technologies Inc.)。• 指定自签名证书的输出文件。• /CN=: 公共名称(通常是域名,此处为 localhost)。• DNS:localhost: 证书对 localhost 有效。

2024-09-02 17:06:07 680

原创 Docker 快速部署单节点RocketMQ

【代码】Docker 快速部署单节点RocketMQ。

2024-08-23 11:09:44 698 1

原创 Jackson自定义序列化注解之 保留小数位数 (默认2位小数 四舍五入)

此文章需要先看。

2024-02-26 09:39:24 1631

原创 Jackson自定义序列化注解之 获取COS预签名地址,标注在属性上

【代码】Jackson自定义序列化注解之 获取COS预签名地址,标注在属性上。

2024-02-22 16:22:13 1060

原创 Jackson自定义序列化注解 (支持同时使用多个自定义序列化注解)

目录1. 自定义序列号包扫描配置2. JacksonBaseSerialize注解类3. Jackson 序列化处理接口4. Jackson 序列化注解自定义实现 JacksonBaseSerialize注解类 Jackson 序列化处理接口

2024-02-22 15:27:20 1706

原创 [部署] Docker 安装Yapi

账号 : yapiadmin@163.com。密码 : yapiadminpassword。

2023-08-15 18:37:35 331

原创 [部署] Docker 安装可视化工具 Portainer + 汉化

目录1. 拉取镜像2. 创建 portainer 工作目录3. 进入Portainer文件夹4. 下载汉化文件5. 解压汉化文件6 .启动镜像

2023-08-15 15:39:31 10429 10

原创 [Linux] CentOS 7 安装RTL8125B驱动程序 (网卡驱动)

【代码】[Linux] CentOS 7 安装RTL8125B驱动程序 (网卡驱动)

2023-08-15 12:10:48 7068

原创 [部署] Docker 安装Jenkins

[部署] Docker 安装Jenkins

2022-07-13 15:02:12 1409 1

原创 [Linux] CentOS 7 安装Docker

[Linux] CentOS 7 安装Docker

2022-05-09 00:35:13 645

原创 [Linux] CentOS 7 更换阿里源

[Linux] CentOS 7 更换阿里源

2022-05-09 00:21:01 3297 2

原创 [Linux] CentOS 7 安装yum

[Linux] CentOS 7 安装yum

2022-05-08 22:43:25 1022 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除