SpringAI系列2:Spring AI + Ollama 本地大模型入门

SpringAI系列2:Spring AI + Ollama 本地大模型入门

SpringAI系列2:Spring AI + Ollama 本地大模型入门

文章目录


前言

提示:这里可以添加本文要记录的大概内容:

调用大模型需要配置apiKey,需要充钱,作为一名“白嫖党”,这可不能接受,能不能有不花钱还能练手的方式呢?别急,今天就来为大家解密这一“白嫖”方式,使用ollama部署本地大模型并使用SpringAI进行调用,废话不多说,开始我们springAI系列的第二讲《Spring AI + Ollama 本地大模型入门》

📚 Ollama官网:https://ollama.com/download/linux

一、什么是ollama

Ollama 是一个开源项目,旨在让在本地设备(如个人电脑或服务器)上运行大型语言模型(LLMs)变得更加简单和高效
Ollama 允许用户在自己的机器上下载并运行开源大语言模型,无需依赖云端 API,保障数据隐私和离线使用
官方维护了一个模型库 https://ollama.com/library,用户可以一键拉取热门开源模型

二、Windows环境下的安装配置

2.1 系统要求

● 操作系统:Windows 10以上
● 内存建议:
○ 运行 7B 模型:至少 8GB RAM(推荐 16GB+)
○ 运行 13B+ 模型:32GB+ RAM
● 磁盘空间:模型通常占用 4GB–50GB(例如 Llama3 8B 约 4.7GB)
💡 Ollama 会自动利用 NVIDIA GPU(通过 CUDA)或 Intel/AMD 显卡(部分支持),但即使只有 CPU 也能运行。

2.2 安装

2.2.1 访问 https://ollama.com/download/windows

在这里插入图片描述


一路next安装即可,安装完成之后Ollama 会自动在后台启动

在这里插入图片描述

2.3 使用

2.3.1 模型的拉取和运行

访问模型库 https://ollama.com/library?spm=5176.28103460.0.0.96a07551zaeVW4

在这里插入图片描述


使用ollama pull 模型名 拉取需要的模型

在这里插入图片描述


使用ollama run 模型名 即可运行该模型 运行后浏览器访问http://localhost:11434/,显示如下:

在这里插入图片描述


📣 也可以直接执行run命令,如果没有该模型,默认会先拉取

2.3.2 其他常用命令

命令说明
ollama list查看已安装的模型
ollama pull mistral预先下载模型(不立即运行)
ollama rm llama3删除某个模型
ollama run phi3运行微软的轻量模型 Phi-3(适合低配电脑)

2.3.3 对话模式

使用ollama run 模型名运行该模型后即可进去对话模式

在这里插入图片描述

2.3.4 推荐Windows入门模型

模型参数量特点
phi33.8B微软出品,速度快,低资源消耗
gemma:2b2BGoogle 轻量模型,响应快
llama3:8b8B综合能力强,适合日常使用
mistral:7b7B推理能力强,支持长上下文

三、SpringAI接入ollama

3.1 开发环境要求

jdk:17+
maven:3.8+
springboot:3.x
提示:本系列使用的都是maven,如果使用的是Gradle,需自行下载对应版本

3.2 maven pom.xml文件

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.6</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>spring-ai-test</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-ai-test</name><description>spring-ai-test</description><properties><java.version>17</java.version><spring.ai.version>1.1.0-M2</spring.ai.version><spring-ai-alibaba.version>1.0.0.2</spring-ai-alibaba.version></properties><dependencies><!--spring-boot-starter--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Spring AI 对 OpenAI API 标准的客户端支持 (用于兼容 DeepSeek API) --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId></dependency><!-- 阿里百炼 --><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter-dashscope</artifactId></dependency><!-- DeepSeek --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-deepseek</artifactId></dependency><!-- ollama --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId></dependency></dependencies><dependencyManagement><dependencies><!-- 引入 Spring AI BOM 管理依赖版本 --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring.ai.version}</version><type>pom</type><scope>import</scope></dependency><!-- 引入 Spring alibaba AI BOM 管理依赖版本 --><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-bom</artifactId><version>${spring-ai-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--仓库镜像--><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository><!-- 阿⾥云镜像,⽤来下载SpringAI之外的依赖 --><repository><id>aliyun</id><name>aliyun</name><url>https://maven.aliyun.com/repository/public</url></repository><repository><id>embabel-releases</id><url>https://repo.embabel.com/artifactory/libs-release</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository><repository><id>embabel-snapshots</id><url>https://repo.embabel.com/artifactory/libs-snapshot</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-clean-plugin</artifactId><version>2.5</version></plugin></plugins></build></project>

提示:这个文件直接复制替换即可使用,如果没有配置大模型的apikey,配置文件中去掉大模型相关配置即可。

3.3 applicaton.properties配置文件

spring.application.name=spring-ai-test server.port=8088 #deepseek openai 配置 spring.ai.openai.api-key="你自己的deepseek apikey" spring.ai.openai.base-url=https://api.deepseek.com spring.ai.openai.chat.options.model=deepseek-chat #spring.ai.openai.chat.options.model=deepseek-reasoner#deepseek 配置 spring.ai.deepseek.api-key="你自己的deepseek apikey" spring.ai.deepseek.chat.options.model=deepseek-chat #spring.ai.deepseek.model=deepseek-reasoner#阿里百炼 配置 spring.ai.dashscope.api-key="你自己的阿里百炼apikey" spring.ai.chat.client.enabled=false #ollama 配置自己拉取的模型名称 spring.ai.ollama.chat.model = qwen3:0.6b 

提示:这个文件直接复制替换即可使用,如果没有配置大模型的apikey,配置文件中去掉大模型相关配置即可。

3.4 Test springAI ollama

config配置类,增加对应的ChatClient

packagecom.example.springaitest.config;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.ai.chat.model.ChatModel;importorg.springframework.beans.factory.annotation.Qualifier;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassChatClientConfig{@BeanpublicChatClientdashscopeChatClient(@Qualifier("dashscopeChatModel")ChatModel dashscopeModel){returnChatClient.builder(dashscopeModel).build();}@BeanpublicChatClientopenAiChatClient(@Qualifier("openAiChatModel")ChatModel openAiModel){returnChatClient.builder(openAiModel).build();}@BeanpublicChatClientdeepSeekChatClient(@Qualifier("deepSeekChatModel")ChatModel deepSeekModel){returnChatClient.create(deepSeekModel);}@BeanpublicChatClientollamaChatClient(@Qualifier("ollamaChatModel")ChatModel openAiModel){returnChatClient.builder(openAiModel).build();}}

提示:如果没有配置大模型的apikey,去掉非ollama代码即可。

packagecom.example.springaitest;importjakarta.annotation.Resource;importorg.junit.jupiter.api.Test;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.boot.test.context.SpringBootTest;@SpringBootTestpublicclassOllamaTest{@Resource(name ="ollamaChatClient")privateChatClient ollamaChatClient;@TestpublicvoidtestChatOptions1(){String call = ollamaChatClient.prompt().user("你好你是谁").call().content();System.out.println(call);}}
在这里插入图片描述


好了,通过上面的教程,我们就能使用ollama完成本地大模型的部署和使用springAI完成api的调用了!!

🎉四、结语:AI的大门,从此刻开始打开

“白嫖”的滋味是不是很爽?不用花钱,也能完成与AI的对话,这不单单是“白嫖”,更是你转向AI应用开发的道路。

🔜 五、下期预告

只完成简单的对话,API是否能让大模型记住我的话,实现上下文记忆?能否创建我自己的文本让大模型识别?别着急,一切尽在下一期《Spring AI 的进一步探索》
下期,请跟我一起去探索吧!
🎯 小白友好,全程保姆级教程,敬请期待!!!!
💬这里只有干货,没有废话,废话我也不会写,只写你直接复制就能跑起来的代码。

AI 不会取代 程序员,
但会取代不懂 AI 的 程序员。
关注我,走出拥抱AI的第一步。

在这里插入图片描述

Read more

猫头虎AI开源项目推荐:国产开源AI工具爱派(AiPy)|支持本地部署、Python Use自动化操作本地文件的AI办公神器

猫头虎AI开源项目推荐:国产开源AI工具爱派(AiPy)|支持本地部署、Python Use自动化操作本地文件的AI办公神器

猫头虎推荐:国产开源AI工具 爱派(AiPy)|支持本地部署、自动化操作本地文件的AI办公神器 随着AI大模型的迅猛发展,诸如Manus、OpenManus等产品的出现,一款安装即免费使用的AI办公助手成为当下的刚需,各行业正经历着前所未有的数字化转型。尤其对于数据工程师、数据分析师以及日常办公用户而言,如何更高效、更便捷地利用AI工具处理繁琐重复的任务,已成为迫切需要解决的问题。 本文将全面介绍一款领先的国产开源AI工具——爱派(AiPy),它不仅能帮助用户实现数据自动化处理,还能一键赋能AI控制本地文件处理,极大提升工作效率。 背景 作为数据工程师或分析师,你是否经常面对以下困扰? * 频繁处理各种格式的数据文件,包括 CSV、Excel、JSON、HTML、SQLite、Parquet 等; * 数据清洗、转换、聚合、排序、过滤、分析及可视化等工作反复重复,费时费力。 传统的数据处理流程通常十分繁琐: 1. 打开Python环境,输入如import pandas as pd等大量基础代码; 2. 在处理过程中产生许多临时文件;

By Ne0inhk
2026年1月远程工具横评:UU远程以全能六边形战士之姿,重塑行业性能标杆

2026年1月远程工具横评:UU远程以全能六边形战士之姿,重塑行业性能标杆

目录 写在前面:一场关于“效率”的军备竞赛 一、 核心突破:详解UU远程2026年1月重磅升级,如何解决远程协助世纪难题? 1.1 自定义验证码:把“报号码”从技术活变成家常便饭 1.2 客户端安全锁:远程协助时的“定海神针” 1.3 免登录远程协助:打破第一道门槛,实现真正“零门槛” 1.4 UU远程运维版定向开放:命令行批量管控,专为专业场景打造的效率引擎 二、 硬核横评:六大远程软件谁是2026年1月的性能之王? 2.1 性能之王:画质与延迟的终极较量 2.2 功能六边形战士:谁才是真正的全能王? 2.3 价格与限制:免费还是套路? 三、 综合评分与总结:2026年1月,你的最佳选择是谁?

By Ne0inhk
【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据

【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据

做量化交易、财经数据分析、投资复盘的开发者和投资者,经常会遇到核心痛点:付费金融数据接口成本高、免费 API 注册流程繁琐、多市场数据分散难以整合。告别 QMT 回测烦恼!手把手教你搭建 MiniQMT+Backtrader 量化回测框架 本文就给大家详细讲解 Python 量化圈的开源神器AKshare,从安装到核心功能实战全覆盖,代码可直接复制运行,零基础也能一键获取全市场金融行情数据。 一、AKshare 是什么? AKshare 是一款基于 Python 开发的开源金融数据接口库,专为个人投资者、量化爱好者、财经数据分析人员打造,是目前国内生态最完善、维护最活跃的免费金融数据工具之一。 它支持股票、期货、基金、外汇、债券、指数、加密货币等多种主流金融市场的数据获取,核心优势如下: * 免费开源:完全开源免费,无隐藏收费,个人非商用零成本使用,无需开通付费会员 * 数据覆盖全面:A 股、

By Ne0inhk
python101-高校学生宿舍报修系统vue3

python101-高校学生宿舍报修系统vue3

目录 * 系统概述 * 核心功能模块 * 技术实现要点 * 扩展性与优化方向 * 开发技术路线 * 相关技术介绍 * 核心代码参考示例 * 结论 * 源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统概述 Python101-高校学生宿舍报修系统基于Vue3前端框架开发,专为高校宿舍管理场景设计,实现学生在线提交报修请求、管理员处理工单、状态跟踪等功能。系统采用前后端分离架构,后端通常搭配Python(如Django或Flask)提供API支持。 核心功能模块 学生端功能 * 报修申请:填写故障类型、位置、描述并上传图片。 * 工单查询:实时查看报修进度(待处理/处理中/已完成)。 * 评价反馈:对已完成的维修服务进行评分或留言。 管理员端功能 * 工单分配:将报修任务指派给维修人员。 * 进度更新:修改工单状态并通知学生。 * 数据统计:分析故障高频类型及维修效率。 技术实现要点 * 前端技术栈:Vue3 + TypeScript + Element Plus/Pinia(

By Ne0inhk