Spring-AI简单实践

目录

[1. Spring-AI是什么](#1. Spring-AI是什么)

[2. Spring-AI架构](#2. Spring-AI架构)

[3. spring-AI项目实践](#3. spring-AI项目实践)

[3.1 Spring-AI Ailibaba是什么](#3.1 Spring-AI Ailibaba是什么)

[3.2 引入依赖和配置](#3.2 引入依赖和配置)

[3.2 Spring-AI Ailibaba创建会话](#3.2 Spring-AI Ailibaba创建会话)


1. Spring-AI是什么

Spring AI 项目由 Spring 官方开源并维护的AI 应用开发框架,该项目目标是简化包含人工智能(AI)功能的应用程序的开发,避免不必要的复杂性。该项目从著名的 Python 项目(例如 LangChain 和 LlamaIndex)中汲取灵感,但 Spring AI 并非这些项目的直接移植,该项目的成立基于这样的信念:下一波生成式 AI 应用将不仅面向 Python 开发人员,还将遍及多种编程语言。从本质上讲,Spring AI 解决了 AI 集成的基本挑战:Connecting your enterprise Data and APIs with the AI Models。

2. Spring-AI架构

3. spring-AI项目实践

本文使用Spring-AI Alibaba,详细接入文档:Spring AI Alibaba 概述-阿里云Spring AI Alibaba官网官网

各大公司在Spring-AI的基础上都有一套快速开发AI应用的框架。

3.1 Spring-AI Ailibaba是什么

Spring AI Alibaba 开源项目基于 Spring AI 构建 ,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。

3.2 引入依赖和配置

配置大模型:application.yml

java 复制代码
spring:
  application:
    name: SpringAI-Demo
#AI配置
  ai:
    ollama:    #AI提供商,也可以是openai
      base-url: http://localhost:11434   #如果是远程第三方服务方,需要申请和填写api-key
      chat:
        model: deepseek-r1:1.6b
          

如果使用阿里的大模型接口,需要配置dashscope

复制代码
spring.ai.dashscope.api-key=${AI_DASHSCOPE_API_KEY}
spring.ai.dashscope.chat.options.model=qwen-max

引入依赖

java 复制代码
<dependency>
  <groupId>com.alibaba.cloud.ai</groupId>
  <artifactId>spring-ai-alibaba-starter</artifactId>
  <version>1.0.0-M5.1</version>
</dependency>
<dependency>  
    <groupId>org.springframework.ai</groupId>  
    <artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>

若使用阿里的模型接口

复制代码
<dependency>
	<groupId>com.alibaba.cloud.ai</groupId>
	<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>

3.2 Spring-AI Ailibaba创建会话

创建chatClient,设置默认参数

chatClient是面向对话式AI模型的客户端接口,提供API与AI会话模型交互,该接口封装了请求构建、调用、响应处理等流程,支持同步、流式调用。

java 复制代码
public ChatClient chatClient(String userInput) {

        //此处设置的都是默认参数,可在自己的智能体中覆盖掉
        return chatClient
                .defaultSystem()                
                .defaultAdvisors(
                    new VectorStoreChatMemoryAdvisor(vectorStore)), //Chat Memory
                    new QuestionAnswerAdvisor(vectorStore), // RAG
                    new SimpleLoggerAdvisor(),//日志
                )                
                .call()          //调用大模型      
                .content();        //输出字符串结果
    }

注意:chatClient是单例,如果引入ollama模型调用商,就不能引入其它的例如openai

相关推荐
_Evan_Yao3 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
irislinAmelia4 小时前
缺陷检测AI关键点在哪
人工智能·嵌入式硬件·1024程序员节
Ai-_Man4 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
安托智造4 小时前
MBD:从二维图纸到三维模型的制造革命(下)
大数据·人工智能·制造·mbd
火山引擎开发者社区4 小时前
VeOps 深度调查:让 AI 排障从“能用”走向“可靠”
人工智能
梓豪csd4 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼4 小时前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
王中阳Go4 小时前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
武天旭4 小时前
AI安全--AI大模型的隐私保护与法律法规
人工智能·安全
Solange__4 小时前
影视预演怎么用AI生成3D场景?从分镜、Blockout到镜头交付的完整流程
人工智能·游戏·3d·ai·自然语言处理·aigc·游戏策划