3. Ollama 安装,流式输出,多模态,思考模型 - Rainbow

3. Ollama 安装,流式输出,多模态,思考模型

@

目录
  • 3. Ollama 安装,流式输出,多模态,思考模型
      • 接入ollama本地模型
        • 本地大模型安装
        • 基于spring-ai使用 上我们在 Ollama 本地模型部署的大模型
        • 关闭 thingking
        • ollama 流式输出
        • 多模态
  • 最后:

接入ollama本地模型

ollama是大语言模型的运行环境 , 支持将开源的大语言模型以离线的方式部署到本地,进行私有化部署。 这也是企业中常用的方案, 因为本地化部署能保证企业级的数据安全, 降低企业使用成本。

可以将我们的 ollama 理解为是我们的 Docker 容器(Docker 拉取的是镜像),而 Ollama 拉取的就是大模型的镜像,同时运行大模型

本地大模型安装

  1. https://ollama.com/download

  2. 点击下载, 一直下一步即可非常简单

  1. 安装完后运行cmd --> ollama list 查看已安装的大模型(开始肯定什么都没有)
  2. 拉取模型 ollama run qwen3:4b

https://ollama.com/library/qwen3

1. 这里的4b=40亿参数 对应gpu显存差不多是4G ,当然8B也可以只是比较卡
  1. 测试

基于spring-ai使用 上我们在 Ollama 本地模型部署的大模型

  1. 添加依赖(添加 ollama 的 SDK 依赖)
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>
  1. 配置(配置 ollama 的配置,注意:ollama 是不需要配置 api_key 的,因为只有云端大模型才需要根据你的 api_key 计费算钱,授权。本地大模型是不需要的)。ollama 的默认端口 11434 。

ollama 是可以拉取配置运行多个本地大模型的,所以这里需要配置指明我们使用的是 ollama 本地当中的那个大模型

ollama list # 查看 ollama 当前含有配置拉取的有那些大模型
spring.ai.ollama.base-url= http://localhost:11434  # 默认端口是:11434
spring.ai.ollama.chat.model= qwen3:4b
  1. 测试
/*** @author */
@SpringBootTest
public class OllamaTest {@Testpublic void testChat(// 自动装配了 OllamaChatModel 配置类@Autowired OllamaChatModel ollamaChatModel) {String text = ollamaChatModel.call("你是谁");System.out.println(text);}
}

关闭 thingking

因为我们的 qwen3 大模型是一个思考模型(存在一个深度思考的过程),所以可能会思考的比较久,这里我们可以关闭 ollama 当中的大模型思考(深度思考)模式

可以通过 在提示词结尾加入“/no_think” 指令

String text = ollamaChatModel.call("你是谁/no_think");  // 你的提示词上加上 /no_think 软关闭,深度思考过程System.out.println(text);

但是依然有标签, 暂时可以前端单独处理下

ollama 0.9.0 支持了关闭think。但是在spring1.0版本还不兼容。(就是 ollama 虽然关闭了深度思考,但是我们项目的 Spring 1.0 还不兼容,所以是无效的。就是 OllamaOptions.builder().think()没有这个配置项,应该后面的 Spirng 1.1.x 就可能会有了)

ollama run qwen3:4b # 进入到对应要不关闭深度思考的大模型
/set nothink  #  关闭该大模型的深度思考

https://ollama.com/blog/thinking

ollama 流式输出

stream + tools BUG 修复 spring ai 1.0 ollama 修改了

springai 1.0 小 BUG 使用stream + tools ,会报一个 #3372

@Testpublic void testStream(@Autowired OllamaChatModel chatModel) {Flux<String> stream = chatModel.stream("你是谁/no_think");// 阻塞输出stream.toIterable().forEach(System.out::println);}

ollama 0.8.0之前的版本不支持 stream+ollama

https://ollama.com/blog/streaming-tool 0.8.0+支持stream+ollama . 但是和springai1.0有兼容问题:https://github.com/spring-projects/spring-ai/issues/3369

多模态

注意:多模态是识别,多中不同文件的内容,理解不同文件的内容,而不是生成

目前ollama支持的多模态模型:

  • Meta Llama 4
  • Google Gemma 3
  • Qwen 2.5 VL
  • Mistral Small 3.1
  • and more vision models.

这里我们使用 ollama 拉取一个 gemma3:1b 的大模型测试:附上地址

/*** 多模态  图像识别,  采用的gemma3 * @param ollamaChatModel*/@Testpublic void testMultimodality(@Autowired OllamaChatModel ollamaChatModel) {// 指定读取文件的路径var imageResource = new ClassPathResource("gradle.png");// 指定大模型的配置项,这里使用 ollama 拉取当中的 gemma3 大模型OllamaOptions ollamaOptions = OllamaOptions.builder().model("gemma3").build();// 说明读取的是那个类型的多模态文件类型,这里是图片 imgMedia media = new Media(MimeTypeUtils.IMAGE_PNG, imageResource);ChatResponse response = ollamaChatModel.call(new Prompt(UserMessage.builder().media(media).text("识别图片").build(), // 写明提示词ollamaOptions));System.out.println(response.getResult().getOutput().getText());}

最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#性能优化基础:垃圾回收机制

相信很多C#开发者都没有关注过内存问题,毕竟我们有垃圾自动回收机制,不用像C/C++那样,需要手动去释放。其实关于内存是自动还是手动回收释放,一直也是有争议的,像C/C++这样的开发者认为,内存这么珍贵,就应该让人…

实验报告1

实验任务1 #include <stdio.h> #include <math.h>signed main() {//任务1// printf(" O \n");// printf("<H>\n");// printf("I I\n");//任务1_1// printf(" O …

工业网站开发商电商网站公司

ACM训练总结写这次的训练总结也就意味着这个学期快要结束了&#xff0c;“光阴似箭&#xff0c;日月如梭”&#xff0c;总觉得时间过得很快反而学的很少&#xff0c;但是这个学期待在ACM还是有收获的&#xff0c;从开学接触链表时候的一脸茫然 &#xff0c;到现在已经学完了线段…

2025.9.26——1蓝

提高+/省选- P2331 [SCOI2005] 最大子矩阵 周末的题,当时没写出来。 老师讲完状态之后发现其实不难,就是一个线性DP,只是状态和转移有点难度。

安装python解释器 - Jun

安装python解释器 1. 官方网站 下载地址 https://www.python.org/downloads/windows/ python-3.11.9-amd64.exe2. 右击管理员身份运行 .exe 自定义安装 配置path环境变量 2个 D:\Python311 D:\Python311\Scripts c…

深入解析MySQL InnoDB锁机制 - 教程

深入解析MySQL InnoDB锁机制 - 教程2025-09-26 20:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

根号

一. 根号分治 精髓就是拼接两个暴力 1. 余数根号分治:Remainder Problem 首先直接单点更新O(1),查询暴力跳O(n)。这个暴力的有点在于当查询的x比较大的时候,那么跳的次数就比较少。 另一种暴力思路就是维护c[i][j]为…

如何在 CentOS 7 上安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 文件

如何在 CentOS 7 上安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 文件​bzip2-libs 是 bzip2 压缩工具所需的库文件,很多软件运行时都依赖它。如果你在安装某些程序时提示缺少这个包,按本教程操作即可完成安装。 一、准…

做网站第一步区块链 做网站

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 https://www.geek-workshop.com/thread-1860-1-1.htmlliamjeal电梯直达1# 发表于 2012-9-10 13:41:43 | 只看该作者 |只看大图 因CooCox用户数及影响力越来越大&#xff0c;CooCox团队也逐渐提高了对软件及代码协议的重…

外贸网站 球衣网站查询系统

文章目录 九九乘法表打印三角形改进:控制行数的三角形有空格的三角形 九九乘法表 package com.zhang; /* 打印九九乘法表*/ public class Test8 {public static void main(String[] args) {//i是竖着的 j是横着的for (int i 1; i < 9; i) {for(int j 1; j < 9; j) {i…

建设网站收集加工素材教案鹤壁做网站公司

使用xpath定位元素时&#xff0c;有时候担心元素位置会变&#xff0c;可以考虑使用文本内容来定位的方式。 例如图中的【股市】按钮&#xff0c;只有按钮文本没变&#xff0c;即使位置变化也可以定位到该元素。 xpath内容样例&#xff1a; # 文本内容完全匹配 //button[text(…

【A】杂题选将

P13617 [ICPC 2024 APC] Bit Counting Sequence 考虑进 1 位导致位数和减 1,那么我们找到进位最多的那一次,那么他应该是形如 111..000..0 的一个东西,然后你去判定一下就好了。

有一个[1,5]的等概率随机函数fx(),在不改变fx()函数的情况下,利用fx()函数做出一个[1,7]的等概率随机函数。

有一个[1,5]的等概率随机函数fx(),在不改变fx()函数的情况下,利用fx()函数做出一个[1,7]的等概率随机函数。题目解析首先需要将fx函数转化为一个0,1的等概率的心函数 对要转换的函数的范围分析 通过0,1等概率函数利…

WSL2 磁盘清理

首先清理 apt, snap, 各个包管理器的缓存和系统日志。 然后使用 du 或 ncdu 查看磁盘空间占用,继续清理。 等到释放了空间后,再去重置 vhdx 文件大小。 重置 vhdx 文件大小 以下路径中的用户名和包名请自行修改。 se…

洛阳市做网站的wordpress百度地图使用方法

1.2.6 嵌套表AS TABLE OF嵌套表是表中之表&#xff0c;一个嵌套表是某些行的集合&#xff0c;它在主表中表示为其中的一列。对主表中的每一条记录&#xff0c;嵌套表可以包含多个行。语法如下&#xff1a;CREATE OR REPLACE TYPE table_name AS TABLE OF type;语法说明&#x…

完整教程:1.DHCP服务器

完整教程:1.DHCP服务器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…

关于OneBot的QQ机器人探索2

一个QQ聊天机器人,按照OneBot v11协议进行开发 目前实现的主要功能有: - echo 消息回显 - 搜索歌曲并发送音乐卡片 - AI聊天,概率性主动回复,支持在QQ中使用指令切换AI模型和提示词 - bing每日一图获取并发送 - 群…

一个网站怎样做两个后台网站建设软件培训学校

文章目录 前言1. 安装docker与docker-compose2. 启动容器运行镜像3. 本地访问测试4.安装内网穿透5. 创建公网地址6. 创建固定公网地址 前言 今天和大家分享一款在G站获得了26K的强大的开源在线协作笔记软件&#xff0c;Trilium Notes的中文版如何在Linux环境使用docker本地部署…

德阳网站设计网站 流程优化

如果经常在远程服务器或嵌入式设备中操作图片&#xff0c;要查看图片效果&#xff0c;就要先把图片dump到本地&#xff0c;比较麻烦。可以使用这个工具&#xff0c;直接在终端上显示。类似于这种效果。 imgcat 是一个终端工具&#xff0c;使用 iTerm2 内置的特性&#xff0c;允…

putty

https://www.cnblogs.com/zeoHere/p/18845009