type
Post
status
Published
date
Jul 30, 2025
slug
spring-ai
summary
spring ai
tags
spring-ai
category
技术分享
icon
password
原文
模型
使用 Ollama 部署本地模型,本地模型有开放的 API服务,Cherry Studio可以接入本地、云端模型。
使用云端模型,可以申请 API Key 方式接入。云端模型平台有很多如阿里的百炼。
对于文生图,文生语音需要对应的大模型支持。
响应输出
以本地模型为例,本地模型部署完成后启动后会开启一个 WEB 服务,用于 client 与之通信,框架已经封装了与模型之间通信的细节。调用服务输出响应时,框架支持了不同的响应格式。
流式响应
Stream 流式调用。可以使大模型的输出信息实现打字机效果。使用注解声明响应输出的格式(produces)。
结构化输出
在需要特定响应输出的时,也是需要提示词或用户输入去构建规则,框架本身也是拿到模型的文本输出(ChatResonse)来构建对应的响应格式。
模型返回的响应,可以指定格式或者指定对应的实体类去接收。返回的格式可以为 ChatResponse 、entity 、String、JSON 或自定义等。
带有推理逻辑的模型的输出
由于有的模型会自带推理逻辑,在生成响应时会输出 think信息,会导致模型输出的结果没办法转换成指定的实体类,会报错 JSON 转换异常。如果模型没有办法关闭输出 think 逻辑(TODO 找寻关闭 think 方式),这里的解决办法更改接受模型响应,取出对应的content做转换处理。
如果没有办法关闭 think 的输出,可以使用文本接受模型输出的结果,去除不需要的内容,再进行转换成对应的格式。
模型记忆
本身大模型不具有记忆功能,可将之前的对话内容存入
本地内存(ChatMemory)、Redis 或 MySQL中。在编写API 时,需要
CONVERSATION_ID (对话Id),本次对话的唯一ID。在存储时会将用户问题和响应都存入。
Prompt
prompt 是引导 AI 模型生成特定输出的输入格式。
Spring ai alibaba 中支持动态传参或用模板。
- 动态传参指的是请求参数,代码中采用占用位替换原则。
- 模板指的是使用模板文件,使用PromptTemplate 去加载模板文件(.st)。如果提示词复杂或较大可以使用这种方式。
RAG
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索与生成式 AI的技术框架,核心是让大语言模型(LLM)在生成回答时,先从外部知识库中检索相关信息,再基于这些信息生成内容,从而解决纯大模型存在的 “知识过时”“幻觉生成”(编造错误信息)等问题。
Rag 分为两个阶段(离线处理、在线处理)
- 离线处理阶段
文档可以是 pdf、doc 、txt 等文本类型也可以是 mp3 这种音频或视频资源。视频音频等资源需大模型支持。
文本文档分块后向量后存入向量数据库。
这里会涉及到嵌入模型(Embedding Models),不同的大模型之间可能需要的嵌入模型有所不同。
嵌入模型的作用是将文本向量化,之后存储到特定地方(这一步需要自行处理)。(特定地方可以是 Redis 、MySQL、本地内存等)。
存储向量需要对应存储的应用的支持,例如使用 Redis这种方式则需要安装 RedisStack 。
NOTE: 这里的源数据处理、分词、向量化的工作都已由嵌入模型完成。
在使用云端大模型时实现这部分功能时,向量化存储是接入到云端的。
2.在线处理
发送请求后,先去向量库检索相关信息,将相关信息在本地整理成 Promat,发送给大模型,最后由大模型返回结果。
Tool calling
允许语言模型调用外部函数或 API 来执行特定任务或获取实时数据,例如调用天气 API 查询实时天气,调用数据查询接口执行查询。
本质上扩展模型的交互能力,使其能执行操作或获取结构化数据,而非依赖内部知识。
有的地方也叫 function calling。

用户发起了查询请求,大模型会去调用相关接口,将查询的接口数据进行返回。
这里要注意的是大模型支不支持 Tool Calling 这种调用方式,我本地部署了 deepseek-r1:7b模型来编写该API,发现会有如下报错。
"error":"registry.ollama.ai/library/deepseek-r1:7b does not support tools
发现不支持该种Tool Calling 方式调用。
本地部署的qwen3:8b模型支持这种方式调用。
NOTE: 是否能使用tool calling 需要模型支持。
QUESTION: 查询资料发现是否具有该功能,取决于部署的平台知否支持工具调用。能否本地修改配置以支持,这个问题先记录下。
- Author:newrain-zh
- URL:https://alex.sh.cn/article/spring-ai
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!

