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
相关推荐
qq_348231852 小时前
企业级避坑指南
人工智能·学习
X journey2 小时前
机器学习进阶(22):朴素贝叶斯
人工智能·机器学习
大模型最新论文速读2 小时前
RACER:无需训练,让大模型推理速度翻倍
论文阅读·人工智能·深度学习·机器学习·自然语言处理
easy_coder2 小时前
Agent 学习路线:从 ReAct 到微型框架实现
人工智能·云计算
百度Geek说2 小时前
你写的 Skill,及格了吗?
人工智能
suke2 小时前
马斯克 600 亿美元收购 Cursor!史上最贵「分手费」100 亿,xAI 代码能力要起飞了
人工智能·ai编程
京师20万禁军教头2 小时前
30面向对象(中级)-super关键字
java
mit6.8242 小时前
越使用 AI,越不担忧
人工智能
前端双越老师2 小时前
为什么现在 RAG 越少越少提及了
人工智能·agent