当前位置: 首页 > news >正文

基于 Spring AI + Ollama + MCP Client 打造纯本地化大模型应用

文章目录

  • 简介
  • Spring Boot
  • Ollama 模型
  • llama3.2 聊天示例
  • MCP 客户端示例
  • MCP 服务端实现

简介

在大模型浪潮席卷各行各业的今天,Java 作为企业级开发的绝对主力,如何无缝接入 AI 能力成为开发者关注的焦点。Spring AI 的诞生,正是为 Java 生态提供了统一、简洁、面向生产的大模型集成方案。

本文将带你从零开始,基于 Spring Boot 3 + Spring AI + Ollama + MCP Client,搭建一个支持 本地大模型调用 与 工具函数调用(Function Calling) 的完整 AI 应用。

  • 如何在本地部署 Ollama 并运行轻量级模型(如 llama3.2:1b、llama3.2:3b)
  • 如何使用 Spring AI 集成 Ollama,实现自然语言对话
  • 如何通过 MCP(Model Context Protocol)Client 实现模型对工具的动态调用,例如查询天气、访问数据库等
  • 无需 GPU、无需联网调用第三方 API、数据完全本地化,真正实现私有化、低延迟、高安全的 AI 能力集成。

Spring Boot

  • https://start.spring.io/

在这里插入图片描述

Ollama 模型

  • https://ollama.com/library/llama3.2/tags
# 模型大小 1.3 GB
ollama pull llama3.2:1b
# 模型大小 2.0GB
ollama pull llama3.2:3b

注: deepseek-r1:1.5b 是不支持 tools 调用;MCP应用推荐使用 llama3.2:1b 模型。

在这里插入图片描述

llama3.2 聊天示例

  • build.gradle
dependencies {implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'org.springframework.ai:spring-ai-starter-model-ollama'testImplementation 'org.springframework.boot:spring-boot-starter-test'testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
  • application.properties
spring.application.name=demo
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=llama3.2:3b
  • DemoApplication.java
@SpringBootApplication
public class DemoApplication {@Autowiredprivate OllamaChatModel chatModel;public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}@Beanpublic ChatResponse runner() {ChatResponse response = chatModel.call(new Prompt(new UserMessage("介绍下Spring AI")));System.out.println(response);return response;}}

在这里插入图片描述

MCP 客户端示例

在这里插入图片描述

  • build.gradle
dependencies {implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'org.springframework.ai:spring-ai-starter-mcp-client'implementation 'org.springframework.ai:spring-ai-starter-model-ollama'testImplementation 'org.springframework.boot:spring-boot-starter-test'testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
  • application.properties
spring.application.name=demo
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=llama3.2:3bspring.ai.mcp.client.name=spring-ai-mcp-client
spring.ai.mcp.client.version=1.0.0
spring.ai.mcp.client.type=sync
spring.ai.mcp.client.sse.connections.server1.url=http://localhost:9800
spring.ai.mcp.client.toolcallback.enabled=true
  • ChatService.java
@Service
public class ChatService {private final ChatClient chatClient;public ChatService(OllamaChatModel ollamaChatModel, List<McpSyncClient> mcpSyncClientList) {var mcpToolCallbackProvider = new SyncMcpToolCallbackProvider(mcpSyncClientList);ToolCallback[] toolCallbacks = mcpToolCallbackProvider.getToolCallbacks();for (ToolCallback toolCallback : toolCallbacks) {System.out.println("toolCallback:" + toolCallback.getToolDefinition());}chatClient = ChatClient.builder(ollamaChatModel).defaultToolCallbacks(toolCallbacks).build();}public String askQuestion(String prompt) {return chatClient.prompt(prompt).call().content();}}
  • DemoApplication.java
@SpringBootApplication
public class DemoApplication {@Autowiredprivate ChatService chatService;public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}@Beanpublic String runner() {String res = chatService.askQuestion("查询姓名:“林俊杰”的用户信息");System.out.println(res);return res;}}

在这里插入图片描述

MCP 服务端实现

  • 将 DeepSeek 集成到 Spring Boot 项目实现通过 AI 对话方式操作后台数据
http://www.lryc.cn/news/621813.html

相关文章:

  • JavaScript(JS)DOM(四)
  • 大模型微调分布式训练-大模型压缩训练(知识蒸馏)-大模型推理部署(分布式推理与量化部署)-大模型评估测试(OpenCompass)
  • MuMu模拟器Pro Mac 安卓手机平板模拟器(Mac中文)
  • 代码随想录Day51:图论(岛屿数量 深搜广搜、岛屿的最大面积)
  • 解决量化模型中的 NaN 问题:为何非量化层应选用 FP32?(41)
  • 波浪模型SWAN学习(1)——模型编译与波浪折射模拟(Test of the refraction formulation)
  • Docker安装——配置国内docker镜像源
  • flutter 跨平台编码库 protobuf 工具使用
  • RAGFlow入门
  • Trae2.0:AI 编程新时代的引领者
  • 反射和类加载机制
  • 智能算法突破动态挑战,效率革命重塑计算未来!
  • (自用)console.log怎么上色
  • 使用转换函数重载布尔值类
  • 读《精益数据分析》:黏性(Stickiness)—— 验证解决方案是否留住用户
  • 自适应UI设计解读 | Fathom 企业人工智能平台
  • 5G工业一体机汽车零部件工厂的无纸化管理
  • HarmonyOS 实战:用 @Observed + @ObjectLink 玩转多组件实时数据更新
  • Go从入门到精通系列学习路线规划
  • Day62--图论--97. 小明逛公园(卡码网),127. 骑士的攻击(卡码网)
  • 智能家居【home assistant】(一)-在Windows电脑上运行home assistant
  • 论文阅读:基于大语言模型的多机器人任务分配与调度的自动 MILP 模型构建
  • GitHub 上 Star 数量前 18 的开源 AI Agent 项目
  • 基于uiautomation的自动化流程RPA开源开发演示
  • Linux网络基础(一)
  • 【补充】数据库中有关系统编码和校验规则的简述
  • 【软件设计模式】前置知识类图、七大原则(精简笔记版)
  • 【SpringBoot】SpringBoot 整合JDBC、Mybatis、Druid
  • Cursor/VSCode/VS2017 搭建Cocos2d-x环境,并进行正常的调试和运行(简单明了)
  • 基于MATLAB的机器学习、深度学习实践应用