一、Spring AI 对接 Ollama

1、创建springboot项目

spring initialiar 官网:https://start.spring.io/,通过官网,快速生成工程

spring ai 官网:Ollama Chat :: Spring AI Reference

注意:

jdk >= 17

spring boot 推荐 3.3.x 版本

2、引入依赖

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

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
  <version>${spring-ai.version}</version>
</dependency>

3、配置

server:
  port: 8080
spring:
  ai:
    ollama:
      init:
        pull-model-strategy: always
        timeout: 60s
        max-retries: 1
      base-url: http://127.0.0.1:11434
      chat:
        options:
          model: deepseek-r1:7b

4、Sample Controlle

  • 创建实现类 LangChainController 文件。
package com.xdrs.st.controller;

import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import java.util.Map;


@RestController
public class LangChainController {

    @Autowired
    private OllamaChatModel chatModel;


    @GetMapping("/ai/generate")
    public Map<String,String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", this.chatModel.call(message));
    }

    @GetMapping("/ai/generateStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        return this.chatModel.stream(prompt);
    }

}
  • 启动后台服务
  • 打开浏览器访问,验证

备注:实现spring ai 前提是 ollama 环境安装完成,没有问题方可使用。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐