1-人工智能概念

Spring AI 是由 Spring 官方推出的开源框架,旨在将人工智能(AI)功能无缝集成到 Java 应用程序中。它借鉴了 LangChain 和 LlamaIndex 等 Python 项目的设计理念,提供统一的抽象和模块化接口,简化了 AI 模型的接入和管理,降低了开发复杂度。

1 Model

人工智能模型是用于处理和生成信息的算法,通常模仿人类的认知功能。通过从大型数据集中学习模式和洞察,这些模型可以进行预测、文本、图像或其他输出,从而增强各行各业的各种应用。

AI 模型种类繁多,每种模型都适用于特定的用例。虽然 ChatGPT 及其生成式 AI 功能通过文本输入和输出吸引了众多用户,但许多模型和公司也提供多样化的输入和输出。在 ChatGPT 出现之前,许多人对文本转图像生成模型(例如 Midjourney 和 Stable Diffusion)着迷。

Spring AI 目前支持将输入和输出处理为语言、图像和音频的模型。上表中的最后一行接受文本作为输入并输出数字,这通常被称为嵌入文本,代表 AI 模型中使用的内部数据结构。Spring AI 支持嵌入,以实现更高级的用例。

GPT 等模型的独特之处在于其预训练特性,正如 GPT 中的“P”(聊天生成预训练 Transformer)所示。这项预训练功能将 AI 转变为通用的开发工具,无需丰富的机器学习或模型训练背景。

2 Prompt

提示Prompt是基于语言的输入的基础,引导 AI 模型生成特定的输出。对于熟悉 ChatGPT 的人来说,提示可能看起来仅仅是在对话框中输入并发送到 API 的文本。然而,它包含的内容远不止于此。在许多 AI 模型中,提示的文本不仅仅是一个简单的字符串。

ChatGPT 的 API 在一个提示中包含多个文本输入,每个文本输入都被分配一个角色。例如,系统角色用于指示模型如何操作并设置交互的上下文。此外,还有用户角色,通常是来自用户的输入。

制作有效的提示既是一门艺术,也是一门科学。ChatGPT 是为人类对话而设计的。这与使用 SQL 之类的语言“提问”截然不同。人们必须像与人交谈一样与 AI 模型进行交流。

这种交互方式如此重要,以至于“提示工程”一词已发展成为一门独立的学科。目前,有越来越多的技术可以提高提示的有效性。投入时间精心设计提示可以显著提升最终效果。

提示词模板

创建有效的提示涉及建立请求的上下文以及用特定于用户输入的值替换请求的各部分。此过程使用传统的基于文本的模板引擎来创建和管理提示。Spring AI为此使用了 OSS 库: https://www.stringtemplate.org/ 例如,考虑简单的提示模板:

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

在 Spring AI 中,提示模板可以类比为 Spring MVC 架构中的“视图”。 java.util.Map它提供了一个模型对象(通常是 ),用于填充模板中的占位符。“渲染”后的字符串将成为提供给 AI 模型的提示内容。发送给模型的提示的具体数据格式存在相当大的差异。提示最初只是一些简单的字符串,后来演变为包含多条消息,每条消息中的每个字符串都代表着模型的不同角色。

3 Embedding

嵌入是文本、图像或视频的数字表示,用于捕捉输入之间的关系。 嵌入的工作原理是将文本、图像和视频转换为浮点数数组(称为向量)。这些向量旨在捕捉文本、图像和视频的含义。嵌入数组的长度称为向量的维数。 通过计算两段文本的向量表示之间的数值距离,应用程序可以确定用于生成嵌入向量的对象之间的相似性。

作为探索 AI 的 Java 开发者,无需理解这些向量表示背后的复杂数学理论或具体实现。只需了解它们在 AI 系统中的作用和功能即可,尤其是在将 AI 功能集成到应用程序中时。 嵌入在实际应用中尤为重要,例如检索增强生成 (RAG) 模式。它们能够将数据表示为语义空间中的点,语义空间类似于欧氏几何的二维空间,但维度更高。这意味着,就像欧氏几何中平面上的点根据其坐标可以远近一样,在语义空间中,点的接近程度反映了含义的相似性。在这个多维空间中,关于相似主题的句子位置更近,就像图上彼此靠近的点一样。这种接近性有助于文本分类、语义搜索甚至产品推荐等任务,因为它允许 AI 根据相关概念在这个扩展的语义景观中的“位置”来识别和分组它们。 可以把这个语义空间想象成一个向量。

4 Token

token是 AI 模型运作的基石。输入时,模型将单词转换为token。输出时,模型将token转换回单词。 在英语中,一个token大致对应一个单词的 75%。作为参考,莎士比亚全集总计约 90 万字,翻译过来大约有 120 万个token。

或许更重要的是,Token=金钱。在托管AI模型的背景下,你的费用取决于使用的Token数量。输入和输出都会计入Token总量。 此外,模型还受到令牌限制的影响,这会限制单个 API 调用中处理的文本量。此阈值通常称为“上下文窗口”。模型不会处理任何超出此限制的文本。 例如,ChatGPT3 的Token限制为 4K,而 GPT4 则提供 8K、16K 和 32K 等不同选项。Anthropic 的 Claude AI 模型的Token限制为 10 万,而 Meta 的最新研究则提出了 100 万Token限制模型。 要使用 GPT4 总结莎士比亚全集,您需要设计软件工程策略来切分数据,并在模型的上下文窗口限制内呈现数据。

5 结构化输出

即使你要求回复为 JSON 格式, AI 模型的输出通常也会以 JSON的形式出现java.lang.String。它可能是正确的 JSON,但它并非 JSON 数据结构。它只是一个字符串。此外,在提示中要求“需要 JSON”并非 100% 准确。这种复杂性导致了一个专门领域的出现,该领域涉及创建提示以产生预期的输出,然后将生成的简单字符串转换为可用于应用程序集成的数据结构。

6 模型增强

有三种技术可以定制 AI 模型来整合您的数据:

  • 微调:这项传统的机器学习技术涉及调整模型并更改其内部权重。然而,对于机器学习专家来说,这是一个极具挑战性的过程,而且由于 GPT 等模型的规模庞大,会极其耗费资源。此外,某些模型可能不提供此选项。

  • 提示填充:一种更实用的替代方案是将数据嵌入到提供给模型的提示中。考虑到模型的令牌限制,需要采用一些技术在模型的上下文窗口中呈现相关数据。这种方法通俗地称为“填充提示”。Spring AI 库可以帮助您基于“填充提示”技术(也称为检索增强生成 (RAG))实现解决方案。https://docs.spring.io/spring-ai/reference/concepts.html#concept-rag

  • 工具调用:此技术允许注册工具(用户定义的服务),将大型语言模型连接到外部系统的 API。Spring AI 大大简化了支持工具调用所需的代码。

7 评估

有效地评估人工智能系统响应用户请求的输出,对于确保最终应用的准确性和实用性至关重要。一些新兴技术使得预训练模型本身能够实现这一目标。 此评估过程涉及分析生成的响应是否符合用户意图和查询上下文。相关性、连贯性和事实正确性等指标用于衡量 AI 生成的响应的质量。 一种方法是同时呈现用户的请求和 AI 模型的响应,查询响应是否与提供的数据一致。 此外,利用矢量数据库中存储的信息作为补充数据可以增强评估过程,有助于确定响应相关性。 Spring AI 项目提供了一个 EvaluatorAPI,目前支持访问评估模型响应的基本策略。


1-人工智能概念
http://www.zivjie.cn/2025/11/15/spring框架/springAI/SpringAi框架/1-人工智能概念/
作者
Francis
发布于
2025年11月15日
许可协议