初识Spring AI Alibaba

Dcr 1月前 ⋅ 204 阅读

概念

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 及以上。

  1. 添加依赖
<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>
  1. application.properties 指定API-KEY
spring.application.name=helloworld-example
spring.ai.dashscope.api-key=${YOUR_API_KEY}
  1. 注入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配置

Spring AI Alibaba 做了什么事情

springaialibaba.jpg

全部评论: 0

    我有话说: