news 2026/5/28 19:54:02

Java后端拥抱AI开发之个人学习路线 - - Spring AI【第一期】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java后端拥抱AI开发之个人学习路线 - - Spring AI【第一期】

Ollama私有化部署和对接本地大模型

一、Ollama本地大模型部署

(一) Ollama是什么?能干什么?

类似于docker的管理工具,但是是用来管理大模型LLM的在本地部署,默认端口号11434

(二) Ollama如何安装部署各种大模型

命令跟docker很类似,ollama pull xxx(大模型)| ollama run xxx(大模型)

二、微服务对接本地大模型

在项目中pom文件中引入依赖

配置yml文件


对话模型

一、ChatClient vs ChatModel

  • ChatClient提供了与AI模型通信的Fluent API,它支持同步和反应式(Reactive)编程模型。
  • ChatMemory等原子API相比,使用ChatClient可以将与LLM及其他组件交互ChatModel、 Message、的复杂性隐藏在背后,因为基于LLM的应用程序通常要多个组件协同工作(例如,提示词模板、聊天记忆、LLMModel、输出解析器、RAG组件:嵌入模型和存储),并且通常涉及多个交互,因此协调它们会让编码变得繁琐。
  • 当然使用ChatModel等原子API可以为应用程序带来更多的灵活性,成本就是您需要编写大量样板代码。
  • ChatClient类似于应用程序开发中的服务层,它为应用程序直接提供AI服务,开发者可以使用ChatClient Fluent API快速完成一整套AI交互流程的组装
private final ChatClient dashScopeChatClient; // ChatClient不支持自动输入 // 依赖ChatModel对象接口, ChatClient.builder(dashscopeChatModel).build(); public ChatClientController(ChatModel dashScopeChatModel) { this.dashScopeChatClient = ChatClient.builder(dashScopeChatModel).build(); } @GetMapping("/chatclient/dochat") public String doChat(@RequestParam(name = "msg",defaultValue = "您好") String msg) { return dashScopeChatClient.prompt().user(msg).call().content(); }


SSE

一、流式输出

  • 是一种逐步返回大模型生成结果的技术,生成一点返回一点,允许服务器将响应内容分批次实时传输给客户端,而不是等待全部内容生成完毕后再一次性返回。
  • 这种机制能显著提升用户体验,可以让客户尽快看到结果,尤其适用于大模型响应较慢的场景(如生成长文本或复杂推理结果)。
  • 有两种实现方式:
    • 通过ChatModel实现stream实现流式输出
    • 通过ChatClient实现stream实现流式输出

二、SSE(Server-Sent Events)服务器发送事件

  1. Server-Sent Events (SSE)是一种允许服务端可以持续推送数据片段(如逐词或逐句)到前端的 Web技术。通过单向的HTTP长连接,使用一个长期存在的连接,让服务器可以主动将数据"推"给客户端,SSE是轻量级的单向通信协议,适合AI对话这类服务端主导的场景。
  2. 核心概念
    • SSE的核心思想是:客户端发起一个请求,服务器保持这个连接打开并在有新数据时,通过这个连接将数据发送给客户端
    • 这与传统的请求-响应模式(客户端请求一次,服务器响应一次,连接关闭)有本质区别。(SSE的下一代Stream able Http)
  1. SSEWebSocket的区别?

  1. SSE的适用场景:非常适合需要服务器向客户端实时推送更新的场景
    • 实时通知:股票行情、新闻推送、聊天应用(仅接收消息)、系统告警。
    • 状态更新:长时间运行的任务进度(如文件上传、后台处理)。
    • 实时数据流:传感器数据、监控仪表盘。
    • 协作应用:显示其他用户的在线状态或操作(但不包括发送操作)

三、多模型共存

  1. 如何同时存在多种大模型产品在系统里共存使用?
    • 第一种:通过ChatModel实现Stream实现流式输出
    • 第二种:通过ChatClient实现Stream实现流式输出以达到共存
    • 为每种大模型定义不同的Bean(需指定名字,以防止自动注入报错)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 2:01:36

革新性突破:Mac百度网盘下载速度解放方案

革新性突破:Mac百度网盘下载速度解放方案 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS BaiduNetdiskPlugin-macOS是一款专为Mac用户设计的…

作者头像 李华
网站建设 2026/5/23 2:01:16

用Python和OpenCV复现MOSSE目标跟踪算法:从频域理解到代码实战

用Python和OpenCV复现MOSSE目标跟踪算法:从频域理解到代码实战 在计算机视觉领域,目标跟踪一直是个既基础又关键的课题。想象一下,你正在开发一个智能监控系统,需要实时追踪画面中的行人;或者你正在设计一个AR应用&…

作者头像 李华
网站建设 2026/5/23 2:01:15

RPFM:重塑Total War模组开发的5大技术突破

RPFM:重塑Total War模组开发的5大技术突破 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt5 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: https://gitcode.com/gh…

作者头像 李华
网站建设 2026/5/28 18:07:45

实测Qwen3-ASR-1.7B:17亿参数语音识别模型,转写准确率惊艳

实测Qwen3-ASR-1.7B:17亿参数语音识别模型,转写准确率惊艳 1. 开篇实测体验 当我第一次测试Qwen3-ASR-1.7B时,一段清晰的普通话录音在3秒内就被准确转写成了文字。更令人惊讶的是,当我切换成英语、日语测试时,这个17…

作者头像 李华
网站建设 2026/5/23 2:01:27

3个强力游戏手柄映射技巧:让无手柄支持游戏秒变控制器操作

3个强力游戏手柄映射技巧:让无手柄支持游戏秒变控制器操作 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/G…

作者头像 李华