零成本,不联网,一台普通办公本就能跑。


你需要准备

  • JDK 17+

  • 8GB 以上内存

  • 4G以上显卡(虽然ollama可以用cpu,但是token吞吐太慢了)


第一步:装 Ollama,拉模型

ollama.com 下载安装,然后:

ollama pull qwen3.5:0.8b

500MB,几分钟下完。验证一下:

ollama run qwen3.5:0.8b
>>> 你好

能回你,继续。如果出现错误参考我上一篇文章


第二步:版本别搞错(我一开始就搞错版本了,总是包找不到)

Spring Boot

Spring AI

3.4.x

1.0.x

3.5.x 1.1.x

4.0.x

2.0.x

本文用 Spring Boot 3.4.4 + Spring AI 1.0.8


第三步:贴代码

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.4</version>
</parent>

<properties>
    <java.version>17</java.version>
    <spring-ai.version>1.0.8</spring-ai.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>${spring-ai.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

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

application.yml

spring:
  ai:
    ollama:
      base-url: http://localhost:11434 #默认端口
      chat:
        model: qwen3.5:0.8b
        options:
          temperature: 0.7

AiConfig.java

@Configuration
public class AiConfig {
    @Bean
    public ChatClient chatClient(ChatClient.Builder builder) {
        return builder
                .defaultSystem("用简洁中文回答。") //指令
                .build();
    }
}

ChatController.java

@RestController
public class ChatController {
    private final ChatClient chatClient;

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

    @GetMapping("/chat")
    public String chat(@RequestParam String msg) {
        return chatClient.prompt().user(msg).call().content();
    }
}

业务代码就一行。

StreamController.java(流式)

@RestController
public class StreamController {
    private final ChatClient chatClient;

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

    @GetMapping(value = "/chat/stream",
                produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public Flux<String> stream(@RequestParam String msg) {
        return chatClient.prompt().user(msg).stream().content();
    }
}

第四步:跑起来

mvn spring-boot:run

日志看到这行就对了:

Ollama chat model initialized with model: qwen3.5:0.8b

第五步:测试

# 对话
curl "http://localhost:8080/chat?msg=用Java写个冒泡排序"

# 翻译
curl "http://localhost:8080/chat?msg=把'今天天气真好'翻译成英文"

# 流式(浏览器打开看逐字输出)
http://localhost:8080/chat/stream?msg=写一首五言绝句

踩坑速查

报错

解决

Connection refused: 11434

Ollama 没启动

model not found ollama pull qwen3.5:0.8b
NoClassDefFoundError

版本没对上,回第二步查表

响应慢

正常,CPU 推理 0.8B 就这速度


快来试一试把,快速搭建属于自己的AI应用

    项目结构

    ai-demo/
    ├── pom.xml
    ├── src/main/java/com/example/demo/
    │   ├── DemoApplication.java
    │   ├── config/AiConfig.java
    │   └── controller/
    │       ├── ChatController.java
    │       └── StreamController.java
    └── src/main/resources/application.yml
    Logo

    欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

    更多推荐