概念
Spring AI Alibaba 作为开发 AI 应用程序的基础框架,定义了以下抽象概念与 API,并提供了 API 与通义系列模型的适配。
- 开发复杂 AI 应用的高阶抽象 Fluent API — ChatClient
- 提供多种大模型服务对接能力,包括主流开源与阿里云通义大模型服务(百炼)等
- 支持的模型类型包括聊天、文生图、音频转录、文生语音等
- 支持同步和流式 API,在保持应用层 API 不变的情况下支持灵活切换底层模型服务,支持特定模型的定制化能力(参数传递)
- 支持 Structured Output,即将 AI 模型输出映射到 POJOs
- 支持矢量数据库存储与检索
- 支持函数调用 Function Calling
- 支持构建 AI Agent 所需要的工具调用和对话内存记忆能力
- 支持 RAG 开发模式,包括离线文档处理如 DocumentReader、Splitter、Embedding、VectorStore 等,支持 Retrieve 检索
| 以上框架功能可让您实现常见 AI 应用的快速开发,例如 “通过文档进行问答” 或 “通过文档进行聊天” 等
核心特性
专属Spring开发者的AI框架
基于Spring AI官方开源项目,原生支持Spring Boot体系,为bean带来生成式AI能力
Model,Prompt,RAG,Tools
兼具提示词模版、函数调用、格式化输出等低层次抽象与RAG、智能体、对话记忆等高层次抽象
阿里云大模型与云原生最佳时间
通义系列 AI 模型驱动,深度集成网关 、 模版管理 、serverless、可观测等云原生应用基础设施。
接入步骤
| 注意:因为 Spring AI Alibaba 基于 Spring Boot 3.x 开发,因此本地 JDK 版本要求为 17 及以上。
- 添加依赖
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter</artifactId>
<version>1.0.0-M2</version>
</dependency>
| 注意:由于 spring-ai 相关依赖包还没有发布到中央仓库,如出现 spring-ai-core 等相关依赖解析问题,请在您项目的 pom.xml 依赖中加入如下仓库配置。
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
- application.properties 指定API-KEY
spring.application.name=helloworld-example
spring.ai.dashscope.api-key=${YOUR_API_KEY}
- 注入ChatClient
@RestController
@RequestMapping("/ai")
public class ChatController {
private final ChatClient chatClient;
public ChatController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/chat")
public String chat(String input) {
return this.chatClient.prompt()
.user(input)
.call()
.content();
}
}
Prompt提示词
- 代码中显式设定Prompt
String systeText = """
这是需要指定的Prompt
""";
SystemPromptTemplate s = new SystemPromptTemplate(systemText);
Message message = s.createMessage();
Prompt p = new Prompt(s)
chatModel.call(p).getResults();
- 从本地文件夹在Prompt配置
@Value('classpath:/prompts/system-qa.st')
private Resource systemSource;
- 从Nacos动态监听Prompt配置