SpringAI学习笔记(一)SpringAI入门案例
文章目录SpringAI学习笔记一、SpringAI入门案例调用本地ollama部署的大模型1.1 环境准备1.2 代码案例SpringAI学习笔记一、SpringAI入门案例调用本地ollama部署的大模型1.1 环境准备需要下载ollama并且拉取一个大模型到本地详见教程本地部署大模型使用ollama框架版本Spring AI1.0.0Spring Boot3.4.5JDK17大模型调用三件套获取Api-key本地简单搭建的大模型不需要这个获取模型名获取base Url开发地址1.2 代码案例步骤一、新建Module如下步骤二、配置依赖?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.4.5/versionrelativePath/!-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIddemo1/artifactIdversion0.0.1-SNAPSHOT/versionnamedemo1/namedescriptiondemo1/descriptionurl/propertiesjava.version17/java.versionspring-ai.version1.0.0/spring-ai.version/propertiesdependencies!--Java Web依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--Ollama依赖--dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-model-ollama/artifactId/dependency!--MySQL数据库依赖--dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.42/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion${spring-ai.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project步骤三、配置配置文件application.yaml文件配置如下spring:application:name:demo-aiai:ollama:#ollama没有apiKey如果链接的是阿里云百炼平台那些是需要配置apiKey的base-url:http://localhost:11434#本地ollama的端口号默认是11434chat:options:temperature:0.7model:qwen3.5:0.8b#模型名称#大模型对话中文乱码使用UTF-8编码处理server:servlet:encoding:enabled:trueforce:truecharset:UTF-8配置ChatClient给Spring管理我们再写个配置文件CommonConfiguration.java如下packagecom.example.demo1.config;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.ai.ollama.OllamaChatModel;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;ConfigurationpublicclassCommonConfiguration{//将我们本地模型通过配置直接交给Spring容器做管理方便使用BeanpublicChatClientchatClient(OllamaChatModelchatModel){returnChatClient.builder(chatModel).defaultSystem(你是一个傻白甜属性的AI助手你的名字叫小七请以小七的口吻来回答用户的问题)//系统设定.build();}}步骤四、开放接口给用户使用packagecom.example.demo1.controller;importjakarta.annotation.Resource;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importreactor.core.publisher.Flux;RestControllerRequestMapping(/ai)publicclassChatController{ResourceprivateChatClientchatClient;//阻塞式响应RequestMapping(/callChat)publicStringcallChat(Stringrequest){returnchatClient.prompt().user(request).call().content();}//流式响应RequestMapping(/streamChat)publicFluxStringstreamChat(Stringrequest){returnchatClient.prompt().user(request).stream().content();}}启动项目游戏开始了想要查看流式的输出形式那么访问网址http://localhost:8080/ai/streamChat?request输入你的问题想要查看阻塞式的输出形式那么访问网址http://localhost:8080/ai/callChat?request输入你的问题

相关新闻

从此告别拖延!备受追捧的降AIGC平台 —— 千笔·降AIGC助手

从此告别拖延!备受追捧的降AIGC平台 —— 千笔·降AIGC助手

在AI技术席卷学术写作的今天,越来越多的学生、研究人员和职场人士选择借助AI辅助完成论文、报告和学术材料。然而,随之而来的“AI率超标”问题却成为横亘在学术道路上的隐形障碍——知网、维普、万方等主流查重系统纷纷升级算法,严打AI生成内…

2026/5/17 9:27:22 阅读更多 →
2026软著软件名称怎么起?最新命名规则与降低重名风险实操

2026软著软件名称怎么起?最新命名规则与降低重名风险实操

导语 进入2026年,随着数字资产确权意识的普及,中国版权保护中心收到的软件著作权登记申请量持续攀升。在初审环节,因“软件名称不规范”而被下发补正通知的比例并未下降,反而因为审查标准的细化而有所上升。许多开发者和中小企业…

2026/5/17 9:27:22 阅读更多 →
PanelAI开源版后端基本完成!熊哥一天肝出官网前端原型:一行代码部署+资源市场+我的工作台,商业版付费/权限全解锁

PanelAI开源版后端基本完成!熊哥一天肝出官网前端原型:一行代码部署+资源市场+我的工作台,商业版付费/权限全解锁

大家好,我是关注本地AI基础设施的开发者。最近熊哥(AIStarter & PanelAI 作者)更新视频,PanelAI后端基本就位,年前/年初即将放出开源版!今天重点分享官网前端原型设计功能拆解,对想私有化部…

2026/7/4 8:43:41 阅读更多 →

最新新闻

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图 【免费下载链接】hexo-tag-aplayer Embed aplayer in Hexo posts/pages 项目地址: https://gitcode.com/gh_mirrors/he/hexo-tag-aplayer hexo-tag-aplayer是一款强大的Hexo标签插件,…

2026/7/5 18:35:29 阅读更多 →
网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案

网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案

网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中…

2026/7/5 18:33:28 阅读更多 →
如何扩展Runno:添加自定义编程语言运行时的完整指南

如何扩展Runno:添加自定义编程语言运行时的完整指南

如何扩展Runno:添加自定义编程语言运行时的完整指南 【免费下载链接】runno Sandboxed runtime for programming languages and WASI binaries. Works in the browser, on your server, or via MCP. 项目地址: https://gitcode.com/gh_mirrors/ru/runno Runn…

2026/7/5 18:33:28 阅读更多 →
对字符串排序的影响

对字符串排序的影响

字符串的大小比较并不是如C那样按照字符串字符内码大小顺序从头到尾来比较的。由于我是从C/C转过来的,我一直以来都以为.net 下字符串的比较规则和C是一样的,直到有一天我的程序在英文操作系统下出错。 .net 下,字符串的排序受 System.Threa…

2026/7/5 18:29:28 阅读更多 →
Runno高级调试技巧:解决复杂代码执行问题的完整方法

Runno高级调试技巧:解决复杂代码执行问题的完整方法

Runno高级调试技巧:解决复杂代码执行问题的完整方法 【免费下载链接】runno Sandboxed runtime for programming languages and WASI binaries. Works in the browser, on your server, or via MCP. 项目地址: https://gitcode.com/gh_mirrors/ru/runno Runn…

2026/7/5 18:29:28 阅读更多 →
Instatic集群部署:负载均衡与会话共享配置指南

Instatic集群部署:负载均衡与会话共享配置指南

Instatic集群部署:负载均衡与会话共享配置指南 【免费下载链接】Instatic Instatic is a modern self-hosted visual CMS - get it running in 1 minute 项目地址: https://gitcode.com/GitHub_Trending/in/Instatic Instatic作为一款现代自托管视觉CMS&…

2026/7/5 18:25:26 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻