大模型开发 - 02 Spring AI Concepts - 详解

news/2025/11/1 21:08:51/文章来源:https://www.cnblogs.com/slgkaifa/p/19183848

大模型开发 - 02 Spring AI Concepts - 详解

文章目录

  • Pre
  • 引言
  • 1. 模型(Models):AI 的“大脑”
  • 2. 提示(Prompts):与 AI 对话的艺术
  • 3. 提示模板(Prompt Templates):动态生成提示
  • 4. 嵌入(Embeddings):语义的向量化表达
  • 5. 令牌(Tokens):AI 的“计费单位”
  • 6. 结构化输出(Structured Output)
  • 7. 引入外部数据:三大策略
    • (1)微调(Fine-tuning)
    • (2)提示填充(Prompt Stuffing)→ 即 RAG
    • (3)工具调用(Tool Calling)
  • 8. 检索增强生成(RAG):让 AI “读”你的文档
    • 阶段一:ETL 预处理
    • 阶段二:问答时检索
  • 9. 评估 AI 响应:确保输出质量
  • 结语

在这里插入图片描述

Pre

大模型开发 - 01 Spring AI 核心特性一览

引言

在当今人工智能技术飞速发展的背景下,Spring AI 作为 Spring 生态系统对 AI 能力的官方集成,为 Java 开发者提供了一套简洁、高效且可扩展的 AI 应用开发框架。本文将深入解析 Spring AI 中的核心概念,帮助开发者理解其设计思想与实现原理,从而更高效地构建智能应用。


1. 模型(Models):AI 的“大脑”

AI 模型本质上是能够处理和生成信息的算法,它们通过在大规模数据集上学习模式与规律,模拟人类的认知能力,从而完成预测、文本生成、图像合成等任务。

Spring AI 当前支持以下几类输入/输出组合的模型:

在这里插入图片描述

特别值得注意的是,像 GPT 这样的模型之所以强大,关键在于其 “预训练”(Pre-trained) 特性。这意味着开发者无需具备深厚的机器学习背景,也能直接利用这些通用模型构建应用,极大降低了 AI 技术的使用门槛。


2. 提示(Prompts):与 AI 对话的艺术

提示(Prompt)是引导 AI 模型生成特定输出的输入文本。在 ChatGPT 等现代大模型中,提示远不止是一段简单的字符串——它通常由多个带有“角色”的消息组成:

  • system:设定模型行为准则与上下文(如“你是一个专业的法律顾问”)
  • user:用户的真实提问
  • assistant:模型的历史回复(用于多轮对话)

这种结构化的提示方式使得对话更自然、可控。而如何设计高效提示,已发展为一门独立学科——提示工程(Prompt Engineering)

有趣的是,研究表明,像 “Take a deep breath and work on this step by step”(深呼吸,一步一步来)这样的提示语,竟能显著提升模型推理准确性。这说明与 AI 交流更像与人对话,而非编写 SQL 查询。


3. 提示模板(Prompt Templates):动态生成提示

在实际开发中,我们常需将用户输入动态插入提示中。Spring AI 借助开源库 StringTemplate 实现了提示模板功能,类似于 Spring MVC 中的“视图”(View)。

例如,定义一个模板:

Tell me a {adjective} joke about {content}.

通过传入 Map<String, Object>(如 {"adjective": "funny", "content": "Spring Boot"}),即可渲染出完整提示:

Tell me a funny joke about Spring Boot.

这种方式极大提升了提示的可维护性与复用性。


4. 嵌入(Embeddings):语义的向量化表达

嵌入(Embedding)是将文本、图像等内容转换为高维浮点数向量的技术。这些向量能捕捉语义信息:语义越相近的内容,其向量在空间中的距离越近

例如,在一个语义空间中,“猫”和“狗”的向量距离,会比“猫”和“汽车”更近。
在这里插入图片描述

Spring AI 对嵌入的支持,为 检索增强生成(RAG) 等高级应用场景奠定了基础。开发者无需深究背后的数学原理,只需理解:嵌入 = 语义的数字指纹


5. 令牌(Tokens):AI 的“计费单位”

AI 模型以 令牌(Token) 为基本处理单元。在英文中,1 个 token 大约等于 0.75 个单词。例如,莎士比亚全集约 90 万词,对应约 120 万 tokens。

在这里插入图片描述

关键点:

Spring AI 提供了分块(chunking)策略,帮助开发者自动将长文本切分,适配模型上下文限制。


6. 结构化输出(Structured Output)

尽管我们可以要求模型“返回 JSON”,但其输出本质上仍是 字符串,而非真正的 JSON 对象。这导致解析不可靠,尤其在生产环境中。

在这里插入图片描述

Spring AI 通过 结构化输出转换器(Structured Output Converter) 解决此问题:

  • 使用精心设计的提示引导模型输出规范格式
  • 自动将字符串解析为 Java 对象(如 POJO)
  • 支持多轮交互以确保格式正确

这大大简化了 AI 输出与业务逻辑的集成。


7. 引入外部数据:三大策略

大模型的知识截止于训练数据(如 GPT-3.5 截至 2021 年 9 月),如何让其“知道”你的私有数据?Spring AI 支持三种方式:

(1)微调(Fine-tuning)

修改模型内部参数,成本高、技术门槛高,且部分模型不开放此功能。

(2)提示填充(Prompt Stuffing)→ 即 RAG

将相关数据动态插入提示中。受限于 token 上限,需结合向量数据库检索最相关内容。

在这里插入图片描述

(3)工具调用(Tool Calling)

注册自定义服务(如数据库查询、API 调用),让模型在需要时主动调用。

在这里插入图片描述

Spring AI 通过 @Tool 注解极大简化了实现:

@Tool("获取当前天气")
public String getWeather(String city) {
// 调用天气 API
}

模型可自动识别工具、传参、执行并整合结果。


8. 检索增强生成(RAG):让 AI “读”你的文档

RAG 是当前最实用的私有数据集成方案,其流程分为两阶段:

在这里插入图片描述

阶段一:ETL 预处理

  1. 提取:从 PDF、Word、数据库等源读取文档
  2. 切分:按语义边界(如段落、表格)分割文本,避免截断
  3. 嵌入:将每段文本转为向量
  4. 存储:写入向量数据库(如 Pinecone、Milvus)

阶段二:问答时检索

  1. 用户提问 → 转为向量
  2. 向量数据库检索最相似的文档片段
  3. 将问题 + 相关片段拼入提示,发送给大模型
  4. 模型基于上下文生成准确回答

Spring AI 提供了完整的 RAG 支持,包括 QuestionAnswerAdvisor 和向量存储集成。


9. 评估 AI 响应:确保输出质量

AI 输出是否准确、相关、连贯。 Spring AI 提供 Evaluator API,支持以下评估策略:

这为构建可靠、可信的 AI 应用提供了质量保障。


结语

Spring AI 不仅封装了大模型的复杂性,更通过模板、工具调用、RAG、评估等机制,为 Java 开发者提供了一套完整的 AI 应用开发范式。理解这些核心概念,是构建下一代智能应用的关键一步。

提示:AI 不是魔法,而是工程。最好的结果,往往来自对提示的精心设计、对数据的合理组织,以及对模型能力的清晰认知。

欢迎探索 Spring AI 官方文档,开启你的智能应用之旅!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/953010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 11 月降膜蒸发器,结晶蒸发器,真空浓缩器厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读

为帮助企业精准挑选降膜蒸发器、结晶蒸发器、真空浓缩器,本次推荐由十家行业专业机构联合开展测评,聚焦厂家资质、实际案例与售后服务三大核心维度。测评中,机构对各厂家的生产资质、技术认证等进行严格核查,确保符…

2025 年 11 月废水蒸发器,多效蒸发器,低温蒸发器厂家最新推荐,产能、专利、环保三维数据透视

为助力企业精准选择废水蒸发器、多效蒸发器、低温蒸发器产品,本次测评联合行业权威协会开展,采用 “产能 - 专利 - 环保” 三维数据评估体系。测评过程中,对各厂家近三年产能规模、设备交付效率进行量化分析,核查专…

Java方法——可变参数

Java方法——可变参数可变参数 可变参数也称不定项参数 在方法声明中,在指定参数类型后加一个省略号... 一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数都需要在其之前声明 public class d…

2025 年 11 月曝气器厂家最新推荐,专业制造与品牌保障口碑之选

在环保水处理行业,曝气器的专业制造水平决定产品性能底线,品牌口碑则反映市场长期认可程度。为帮助采购方精准锁定兼具专业实力与良好口碑的厂家,行业权威协会于 2025 年 11 月开展曝气器厂家专项测评。本次测评以 …

sigmoid函数求导

sigmoid函数求导\[f(x)=\frac{1}{1+e^{-x}}=\frac{e^x}{e^x+1}=1-(e^x+1)^{-1}\\f(x)=\frac{e^x}{(e^x+1)^2}=\frac{e^xe^{-2x}}{(1+e^{-x})^2}=\frac{1}{1+e^{-x}}\frac{e^{-x}}{1+e^{-x}}=f(x)(1-f(x)) \]

[20251028]SQLPlus的行编辑器.txt

[20251028]SQLPlus的行编辑器.txt--//学习SQLPlus的行编辑器.看了一个网上的教学视频,对方使用SQLPlus的行编辑器,估计许多人基本不会,感觉有时候利用它效率还--//是很高的,查一些资料做一个记录。--//基本就5个命…

【深基7.例4】歌唱比赛

【深基7.例4】歌唱比赛P5738 【深基7.例4】歌唱比赛 题目描述 n(n≤100)名同学参加歌唱比赛,并接受 m(m≤20)名评委的评分,评分范围是0到10分。这名同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩…

2025 年 11 月曝气器厂家最新推荐,聚焦资质、案例、售后的优质品牌深度解读

在环保水处理设备采购中,曝气器厂家的资质合规性、项目案例丰富度及售后服务完善性,是保障设备长期稳定运行的关键。为帮助采购方避开选择误区,行业权威协会于 2025 年 11 月启动曝气器厂家专项测评,本次测评创新性…

美团多智能体WOWService智能系统概要

美团多智能体WOWService智能系统概要我们都曾被“人工智障”客服惹恼过 相信很多人都有过这样的经历:满怀希望地向在线客服求助,结果却遇到一个只会重复“您的问题我无法理解”或提供牛头不对马嘴答案的聊天机器…

Python 潮流周刊#125:个人 AI 笔记本工具

本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 温馨提…

Java方法——方法的重载、命令行传参

Java方法——方法的重载、命令行传参方法的重载 定义:重载就是在一个类中,有相同的函数名称,但形参不同 方法的重载规则:方法名称需要相同; 参数列表必须不同(个数不同,类型不同,参数排列顺序不同) 方法的返回…

2025 年 11 月石灰料仓厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读

随着环保行业对药剂存储设备要求的不断提升,石灰料仓作为污水及污泥处理环节的核心设备,其质量与服务水平备受关注。为帮助行业用户精准筛选优质厂家,本次推荐基于专业环保设备协会最新测评数据,从厂家资质认证、实…

2025 年 11 月石灰料仓厂家最新推荐,技术实力与市场口碑深度解析

在环保药剂存储设备领域,石灰料仓的技术可靠性与厂家市场口碑直接影响污水、污泥处理效率。为助力行业用户精准选型,本次推荐依托专业环保设备协会最新测评结果,从技术实力与市场口碑两大核心维度构建评估体系。测评…

Ubuntu 22.04 LTS 安装 gitlab

ubuntu 22.04 安装 gitlab 1. 前置条件。已安装 Docker(建议 20.10 + 版本)和 Docker Compose(可选,用于简化配置)。。服务器至少 4GB 内存(生产环境建议 8GB+,否则可能因内存不足启动失败)。。开放必要端口:…

SecureCRT 9.6.4 中文便携+绿色版 - 终端工具

一、简介 SecureCRT 和 SecureFX 是由 VanDyke Software 开发的专业工具,分别专注于安全的终端仿真与文件传输。SecureCRT 提供高效的终端仿真和多协议支持,是网络管理和系统配置的首选工具;SecureFX 则致力于安全的…

Day28-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\IPDemo\BSDemo+TCP

TCPpackage Basic.src.com.IPDemo.TCPDemo.Demo01;import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket;public class Client {public static void m…

Linux桌面折腾小记

Linux桌面折腾小记安装系统时不走寻常路,Debian+KDE. 原因:以前用过kdevelop,长得像Visual Studio. 卸载原因:kdevelop,长得像Visual Studio,而我喜欢VC6 装了Code::Blocks,长得像VC6. 又卸了:下定决心不写C+…

CSP-S邮寄

Day x 初赛通过,准备复赛 Day 1 上午刚打完J,中午回家复习了一下线段树,出发去考试 (路上看见了xpy) 进场,又坐在2坐 发题,看T1,感觉很水,打了个唐氏小代码,样例不过,重新分析了一下题目,发现是类似dp的贪…