JeecgBoot框架集成spring ai并进行同步调用异步调用模板

来源项目:星辰wms

一.引入依赖

SpringAI完全适配了SpringBoot的自动装配功能,而且给不同的大模型提供了不同的starter,比如:

模型/平台 starter
Anthropic <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-anthropic-spring-boot-starter</artifactId> </dependency>
Azure OpenAI <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> </dependency>
DeepSeek <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> </dependency>
Hugging Face <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-huggingface-spring-boot-starter</artifactId> </dependency>
Ollama <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-ollama-spring-boot-starter</artifactId> </dependency>
OpenAI <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> </dependency>

1.版本

复制代码
<spring-ai.version>1.0.0-M6</spring-ai.version>

2.依赖管理

复制代码
<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>

3.引入所需依赖

复制代码
<dependency>
   <groupId>org.springframework.ai</groupId>
   <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.ai</groupId>
   <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

4.将ai模块依赖引入到主体项目依赖中

复制代码
ependency>
    <groupId>org.jeecgframework.boot</groupId>
    <artifactId>jeecg-boot-module-airag</artifactId>
    <version>3.8.1</version>
</dependency>

二.修改配置

复制代码
spring:
  ai:
    ollama:
      base-url: http://localhost:11434 # ollama服务地址, 这就是默认值
      chat:
        model: deepseek-r1:7b # 模型名称
        options:
          temperature: 0.8 # 模型温度,影响模型生成结果的随机性,越小越稳定
    openai:
      base-url: https://dashscope.aliyuncs.com/compatible-mode
      api-key: ${OPENAI_API_KEY}
      chat:
        options:
          model: qwen-max-latest # 可选择的模型列表 https://help.aliyun.com/zh/model-studio/getting-started/models

三.创建ChatClient配置类

复制代码
@Configuration
public class ChatConfiguration {
    @Bean
    public ChatClient OllamaChatClient(OllamaChatModel model) {
        return ChatClient.builder(model)
                .build();
    }
    @Bean
    public ChatClient OpenAIChatClient(OpenAiChatModel model){
        return ChatClient.builder(model)
                .build();
    }
}

四.同步调用

复制代码
@RestController
@RequestMapping("/ai")
public class ChatController {
    @Resource(name = "chatClientOllama")
    private ChatClient chatClient;
    @RequestMapping("/chat")
    public String chat(String prompt){
        return chatClient
                .prompt(prompt)
                .call()
                .content();
    }
}

五.流式调用

复制代码
@RestController
@RequestMapping("/ai")
public class ChatController {
    @Resource(name = "chatClientOpenAI")
    private ChatClient chatClient;
    @RequestMapping(value = "/chat",produces = "text/html;charset=UTF-8")
    public Flux<String> chat(String prompt){
        return chatClient
                .prompt(prompt)
                .stream()
                .content();
    }
}

六.日志Advisor

SpringAI基于AOP机制实现与大模型对话过程的增强、拦截、修改等功能。所有的增强通知都需要实现Advisor接口。

创建chatClient时加入advisors

复制代码
@Configuration
public class ChatConfiguration {
    @Bean
    public ChatClient chatClientOllama(OllamaChatModel model) {
        return ChatClient.builder(model)
                .defaultAdvisors(new SimpleLoggerAdvisor())
                .build();
    }
    @Bean
    public ChatClient chatClientOpenAI(OpenAiChatModel model){
        return ChatClient.builder(model)
                .defaultAdvisors(new SimpleLoggerAdvisor())
                .build();
    }
}

修改日志级别

复制代码
logging:
  level:
    org.springframework.context.support.PostProcessorRegistrationDelegate: error
    org.flywaydb: debug
    org.jeecg.modules.system.mapper: info
相关推荐
XD742971636几秒前
科技晚报|2026年5月13日:AI 开始补全库审查、移动入口和弹性调度
人工智能·科技·开发者工具·科技晚报
卷Java16 分钟前
2026年4月AI军备竞赛全景:DeepSeek V4 vs GPT-5.5 vs Gemini vs Claude
人工智能·gpt·大模型
Byron Loong16 分钟前
【c++】为什么有了dll和.h,还需要包含lib
java·开发语言·c++
人月神话-Lee27 分钟前
【图像处理】亮度与对比度——图像的线性变换
图像处理·人工智能·ios·ai编程·swift
shchojj35 分钟前
Generative AI applications -- Chatting
人工智能
易观Analysys1 小时前
重构与崛起——OpenClaw时代的中国Agent产业生态报告
人工智能
kishu_iOS&AI1 小时前
NLP —— 英译法实例
人工智能·ai·自然语言处理
hexu_blog1 小时前
vue+java实现图片批量压缩
java·前端·vue.js
头歌实践平台1 小时前
Hadoop开发环境搭建
java·大数据·hadoop
Alter12301 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能