SpringAI+Ollama本地模型实现快速对话入门实例

场景

SpringBoot+LangChain4j+Ollama实现本地大模型语言LLM的搭建、集成和示例流程:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/160340066

在上面使用LangChain4j集成Ollama的基础上,如何使用SpringAI快速实现效果。

Spring AI 是什么?

Spring AI 是 Spring 官方推出的 AI 应用开发框架,定位:

像 SpringBoot 封装 Web、MyBatis 封装数据库一样,统一封装大模型、向量库、RAG、Agent、工具调用、MCP 协议,

做到一套代码、无缝切换任意大模型。

支持:

国产模型:通义千问、文心一言、讯飞星火、智谱

海外模型:OpenAI、Anthropic

本地模型:Ollama、LocalAI

协议:

OpenAI 兼容接口、MCP 模型控制协议(Streamable HTTP/SSE)

设计思想:抽象统一接口,底层厂商自由替换,业务代码不用改。

Spring AI 顶层核心架构

分层理解:

应用层:Chat 对话、RAG 知识库问答、Agent 智能体、工作流编排

核心抽象层:ChatModel、EmbeddingModel、Prompt、Advisor、Tool、VectorStore

适配层:对接各厂商(OpenAI/Ollama/ 通义千问 / 阿里云百炼)

基础设施层:向量数据库、MCP 服务、内存、日志、可观测性

ChatModel 对话模型

Spring AI 最核心抽象,所有大模型都实现这个接口。

能力:同步对话、流式对话、多轮上下文、函数调用

实现类举例:

OpenAiChatModel

OllamaChatModel

DashScopeChatModel(通义千问)

特点:切换模型只改配置,不改业务代码

ChatClient 聊天客户端(开发首选)

Spring AI 推荐业务层入口,封装 ChatModel,链式调用。

优势:

内置 Prompt 模板、记忆、工具注入

流式返回、拦截器扩展

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

Spring AI 零基础最小入门 Demo

环境前提

JDK 17

SpringBoot 3.4.5

本地已装 Ollama,并拉取模型:ollama pull qwen2.5:7b-instruct

不用复杂依赖、不搞 MCP,先跑通 Spring AI 核心基础:ChatClient + 普通对话

pom文件

复制代码
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.3</version> <!-- 降级为稳定版,解决冲突 -->
    </parent>

    <groupId>com.example</groupId>
    <artifactId>spring-ai-ollama-demo</artifactId>
    <version>1.0</version>

    <properties>
        <java.version>17</java.version>
        <spring-ai.version>1.0.0-M1</spring-ai.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring AI Ollama 核心 -->
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
            <version>${spring-ai.version}</version>
        </dependency>


    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

application.yml 配置

复制代码
​
server:
  port: 886

spring:
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: qwen2.5:7b-instruct

​

配置类:注册 ChatClient(Spring AI 标准入口)

复制代码
package com.badao.ai.config;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringAiConfig {

    /**
     * 注入统一聊天客户端,全局使用
     */
    @Bean
    public ChatClient chatClient(ChatClient.Builder builder) {
        return builder.build();
    }
}

Controller(最简单对话)

复制代码
package com.badao.ai.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SimpleChatController {

    private final ChatClient chatClient;

    public SimpleChatController(ChatClient chatClient) {
        this.chatClient = chatClient;
    }

    @GetMapping("/chat")
    public String chat(@RequestParam String msg) {
        // 链式调用:发提示词 -> 调用模型 -> 返回内容
        return chatClient.prompt(new Prompt(msg))
                .call()
                .content();
    }
}

测试访问

相关推荐
多年小白4 分钟前
AI 日报 - 2026年7月14日
人工智能·ai
前鼻音太阳熊20 分钟前
【MES系统】MES为什么需要SSE?从设备实时监控谈Spring Boot流式推送设计
java·spring boot·后端
AndrewHZ33 分钟前
【LLM技术全景】混合精度与分布式训练:训练大模型的工程奥秘
人工智能·分布式·深度学习·算法·ai·语言模型·llm
尚早立志43 分钟前
六)Spring Boot 源码研读之prepareContext 准备上下文
java·spring boot·后端·spring
Dovis(誓平步青云)1 小时前
《Linux CPU频率为何忽高忽低:cpufreq、idle状态与性能抖动教程》
linux·运维·服务器·spring boot·后端·生成对抗网络
GPUStack10 小时前
Day 0 实测|在 GPUStack 上部署 GLM-5.2-FP8-DSpark
ai·大模型·模型推理·gpustack
doiito12 小时前
【开源项目】用 Rust 重构中文 TTS!kokoroi-rs 高性能语音合成引擎介绍
ai·rust
GJGCY12 小时前
财务智能体落地实践:RPA、大模型与规则引擎如何构建业财自动化闭环?
经验分享·ai·自动化·财务·智能体
土星云SaturnCloud13 小时前
边缘计算驱动绿氢生产过程智能寻优:电解槽级实时优化技术解析
服务器·人工智能·ai·边缘计算
猫先生Mr.Mao14 小时前
具身智能之 π0.7 详解:可控提示让机器人学会组合——如何把 VLA 推向通用泛化
ai·论文解读·具身智能·vla·机器人基础模型