type
status
date
slug
summary
tags
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!