在用spring-ai对接ollama本地大模型时,@Autowired OllamaChatModel 注入的对象为null

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
    <version>1.0.0-M6</version>
</dependency>

spring:
  ai:
    ollama:
      base-url: http://localhost:11434/v1/
      api-key: ollama
      chat:
        model: deepseek-r1:7b

@Autowired
    private OllamaChatModel ollamaChatModel;

@ApiOperation("流式调用")
    @PostMapping(value = "/ask/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public Flux<String> stream(@RequestBody AiDto dto) {
        System.out.println(ollamaChatModel);
        return ollamaChatModel.stream(dto.getMsg());//aiService.stream(msg).flatMapSequential(Flux::just);
    }

输出为:null
我用了1.0.0-M6的包后,项目可以启动,但ollamaChatModel对象为null。

看下项目结构是不是类没有被扫描到,没注入spring容器

你不如直接把你的整过项目上传到 Github/Gitee,然后在这里把连接发出来。

项目链接:aibot: AI项目
调试的类我写在ruoyi-admin项目里,就在下面的AiController 类:

你这居然是个 spring boot 2 的项目,spring boot 2 早就停止维护了,马上 spring boot 4 都要出了你居然还在用。

换成 spring boot 3.4.2 及其以上。

spring-ai 官方仓库,对 spring-boot 的依赖写得很清楚:

<spring-boot.version>3.4.2</spring-boot.version>

https://github.com/spring-projects/spring-ai/blob/b0668700ec9ffe39e320297a956a48f7a05825a2/pom.xml#L244

我改了一版,将这个项目从springboot2升级到了springboot3,需要的话git加一下权限,我push个分支上来,用户:gntlee

已经添加

push了,原来的代码你还有吧,被push到主分支了

嗯,有。感谢!

接口文档swagger我处理下

加了个新分支,接口文档升级了,项目下有个UPGRADE.MD里面有简单说明

:+1:

:+1: 嗯,非常感谢!我没有了解Spring-ai对版本的要求。