概述
Spring AI 基于 Spring 生态系统的可观测性功能,提供对 AI 相关操作的深入洞察。它为以下核心组件提供指标(Metrics)和链路追踪(Tracing)能力:
- ChatClient(包括 Advisor)
- ChatModel
- EmbeddingModel
- ImageModel
- VectorStore
请参考 Spring Boot Metrics 和 Spring Boot Tracing 文档,以在应用中启用指标和追踪支持。
A thousand miles begins with a single step .
Spring AI 基于 Spring 生态系统的可观测性功能,提供对 AI 相关操作的深入洞察。它为以下核心组件提供指标(Metrics)和链路追踪(Tracing)能力:
请参考 Spring Boot Metrics 和 Spring Boot Tracing 文档,以在应用中启用指标和追踪支持。
翻译自官方文档:https://docs.spring.io/spring-ai/reference/concepts.html
AI 模型是旨在处理和生成信息的算法,通常模仿人类的认知功能。通过学习大规模数据集中的模式和洞察,这些模型可以进行预测、生成文本、图像或其他输出,从而增强各行各业的各种应用。
AI 模型有许多不同的类型,每种都适用于特定的用例。虽然 ChatGPT 及其生成式 AI 能力通过文本输入和输出吸引了大量用户,但许多模型和公司提供了多样化的输入和输出形式。在 ChatGPT 之前,许多人就对 Midjourney 和 Stable Diffusion 等文本生成图像模型着迷。
下表根据输入和输出类型对几种模型进行了分类:
| 输入 | 输出 | 示例 |
|---|---|---|
| 文本 | 文本 | ChatGPT |
| 文本 | 图像 | Midjourney、Stable Diffusion |
| 文本 | 音频 | ElevenLabs |
| 图像 | 文本 | OCR、图像描述 |
| 文本 | 嵌入(数字) | Embedding 模型 |
Spring AI 目前支持处理语言、图像和音频作为输入和输出的模型。上表中最后一行(接受文本作为输入并输出数字)通常被称为文本嵌入(Embedding),代表了 AI 模型内部使用的数据结构。Spring AI 支持嵌入功能,以实现更高级的用例。
GPT 等模型的独特之处在于其预训练特性——正如 GPT 中的 “P” 所表示的那样:Chat Generative Pre-trained Transformer(对话生成式预训练 Transformer)。这种预训练特性使 AI 转变为一种通用的开发者工具,无需深厚的机器学习或模型训练背景即可使用。
Spring AI 的 Advisors API 提供了一种灵活而强大的方式,用于在 Spring 应用中拦截、修改和增强 AI 驱动的交互。通过 Advisors API,开发者可以构建更复杂、可复用且易维护的 AI 组件。
主要优势:
推荐注册方式:官方建议在构建时使用 ChatClient 的 defaultAdvisors() 方法注册 Advisor:
1 | ChatClient.builder(chatModel) |
同时Advisor 也会加入 Observability(可观测性)栈,你可以查看其执行的指标(Metrics)和链路追踪(Traces)。
随着 AI Agent 连接的服务增多(Slack、GitHub、Jira、MCP 服务器等),工具库迅速膨胀。一个典型的多服务器设置很容易拥有 50+ 工具,在对话开始之前就消耗 55,000+ Token。当模型面对 30+ 名称相似的工具时,工具选择准确性也会下降。
工具搜索工具模式通过按需工具发现解决这个问题:
Spring AI 在2.0版本提供了该机制,可用于实现Tool的渐进加载,更好的为agent服务
这实现了显著的 Token 节省,同时保持对大型工具目录的访问。
工具调用(Tool Calling,也称为 函数调用 Function Calling)是 AI 应用中的一种常见模式,允许模型与一组 API 或”工具”交互,从而扩展模型的能力。
工具主要用于以下场景:
虽然通常称”工具调用”是模型的能力,但实际上由客户端应用程序提供工具调用逻辑。模型只能请求调用工具并提供输入参数,应用程序负责执行工具并返回结果。模型永远不会直接接触被注册为工具的 API。
以前OSSRH在运营的时候,曾整理过一篇发布开源项目的操作文档 《如何将开源项目发布到Maven中央仓库》,现在OSSRH废弃后已不再适用。
官方已经给出新方式的相关文档资料以及如何将个人名下的历史项目进行迁移,地址如下:
https://central.sonatype.org/publish/publish-portal-maven/#usage
而此处主要是列出针对性变化 !