2025-08-09
对话记忆什么是对话记忆AI记忆
AI模型本身是无状态的,是不会保留历史交互信息。
当需要与AI多轮交互时,如果无法保持上下文(对话记忆),则AI模型可能会出现理解错误的情况。
这一特性也算是AI模型的一个局限点,只能应用系统自行实现上下文保持。
SpringAI主要通过记忆、存储、检索三块来实现与AI保持上下文。
记忆,并非历史记录
对话记忆:
主要是围绕...
阅读全文
2025-08-02
ModelAI模型
Model是SpringAI对AI模型的抽象。学习中一直使用的ChatModel是对聊天模型的抽象。
SpringAI除了聊天模型ChatModel,还抽象了比如嵌入模型、图像、音频模型等等。下面是官方的模型层次图:
StreamingModel本质是与Model一致的,只是对支持流式响应的模型的抽象。
ChatModel
Ch...
阅读全文
2025-08-02
DeepSeek 模型Spring boot starter
SpringAI 为封装的 DeepSeek 聊天模型提供 Spring Boot 自动配置。通过添加下面依赖即可:
1234<dependency> <groupId>org.springframework.ai</groupId> <artifactI...
阅读全文
2025-08-02
非聊天模型ImageModel
非聊天模型没有像聊天模型那样有ChatClient的使用,而是直接使用相应的Model来进行交互。
比如图像模型ImageModel。当然也对应有提示ImagePrompt和选项参数ImageOptions。
提示词是通过ImageMessage来进行封装,整体思想与聊天模型基本一致。
简单实用一下OpenAiImage...
阅读全文
2025-07-10
工具调用AI的工具能力AI的短板
AI模型通过训练具备了逻辑推理、数据处理、内容生成等能力,但也存在一些短板。比如以下这些场景
向AI询问今天的天气如何。
让AI制定了旅游计划,让其帮忙预订机票。
因为缺少天气数据的支撑,AI无法给出准确的天气信息。
同样因为缺少预订机票可执行的系统支撑,也无法完成预定。
工具的作用
针对上述两个场景,AI提供梨工具调...
阅读全文
2025-07-10
函数工具调用函数即工具
在方法即工具中有一项限制是参数和返回类型不得是函数式类型(如 Function、Supplier、Consumer)。
SpringAI为函数式类型单独提供了构建工具的方式。
使用 FunctionToolCallback
可以通过FunctionToolCallback将Java中的函数式类型(Function、Supplier、...
阅读全文
2025-07-10
SpringAI-工具的特性工具的生命周期生命周期
SpringAI默认会自动执行AI模型对工具调用的请求,并将工具执行结果返回给AI模型。
整个过程由ChatModel(SpringAI与AI模型交互的核心实现)及ToolCallingManager(工具调用的核心管理器)共同完成。(ChatModel后续会深入学习和记录)
下图是官方的工具执行的生命...
阅读全文
2025-07-06
多模态AI模型的多模态
在前面的学习中我们只使用到了文本内容的输入与AI进行交互,那文本输入就算是一种模态。
那如果某个AI不仅仅能理解文本,还能理解图像、音频、视频等输入,那这个AI模型就支持了多模态。
现在能支持多模态的AI模型,在SpringA的文档上看到如下:
例如 OpenAI 的GPT-4o、Google 的Vertex AI Gemini...
阅读全文
2025-07-01
结构化输出如何引导AI结构化输出
AI模型输出响应并非像传统程序那样默认按某种结构化响应来输出,而是按照自然语言进行输出。
AI模型是可以按照输入的指令、需求来进行特定的处理和输出。那么可以利用这一点,要求AI按照指定的格式结构输出。
所以在调用AI之前,需要在提示词中加入明确、精准的格式指令,且最好是给出格式的例子来进行引导。如果输入的指令不够明确,也会存...
阅读全文
2025-06-29
MessageAI提示词
提示词是引导AI进行特定的处理及生成的输入,高效的提示词可以显著提升AI的处理及响应。
这里要记录的并不是提示词深入的概念,也不是如何设计高效的提示词,最起码首要目标不是这些。
而是学习和记录如何使用SpringAI提供的API快速的、灵活的将提示词编入程序与AI进行交互。
其实早在入门篇中就已经记录到了,且在过去的案例里面也基本都...
阅读全文