Skip to content

Latest commit

 

History

History
137 lines (103 loc) · 5.44 KB

README-zh.md

File metadata and controls

137 lines (103 loc) · 5.44 KB

Spring AI Alibaba

Spring AI Alibaba 是一款 Java 语言实现的 AI 应用开发框架,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。Spring AI Alibaba 基于 Spring AI 开源项目构建,默认提供阿里云基础模型服务、开源及商业生态组件的集成与最佳实践。

English | 日本語

快速开始

请参考快速开始 了解如何使用 Spring AI Alibaba 快速开发生成式 AI 应用。

总的来说,使用 Spring AI Alibaba 开发应用与使用普通 Spring Boot 没有什么区别,只需要增加 spring-ai-alibaba-starter 依赖,将 ChatClient Bean 注入就可以实现与模型聊天了。

因为 Spring AI Alibaba 基于 Spring Boot 3.x 开发,因此对 JDK 要求 17 及以上版本。

  1. 在项目中加入 spring-ai-alibaba-starter 依赖。
<dependency>
 <groupId>com.alibaba.cloud.ai</groupId>
 <artifactId>spring-ai-alibaba-starter</artifactId>
 <version>1.0.0-M6.1</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>

补充:如果您的本地 maven settings.xml 中的 mirrorOf 标签配置了通配符 * ,请根据以下示例修改。

<mirror>
  <id>xxxx</id>
  <mirrorOf>*,!spring-milestones</mirrorOf>
  <name>xxxx</name>
  <url>xxxx</url>
</mirror>
  1. 注入 ChatClient
@RestController
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();
 }
}

示例

请在 spring-ai-alibaba-examples 查看更多 Example 示例。

  • Hello World
  • Chat Model
  • Multi Model
  • Function Calling
  • Structured Output
  • Prompt
  • RAG
  • Flight Booking Playground,一个贴近实际使用场景,综合运用了 prompt template、function calling、chat memory 和 rag 等的智能机票助手应用。

特性

以下是 Spring AI Alibaba 支持的核心能力,未来更多高级功能将以这些核心能力为基础。请参考官网文档 Spring AI Alibaba 核心概念以及 AI 应用开发最佳实践

  • 开发复杂 AI 应用的高阶抽象 Fluent API -- ChatClient
  • 提供多种大模型服务对接能力,包括主流开源与阿里云通义大模型服务(百炼)等
  • 支持的模型类型包括聊天、文生图、音频转录、文生语音等
  • 支持同步和流式 API,在保持应用层 API 不变的情况下支持灵活切换底层模型服务,支持特定模型的定制化能力(参数传递)
  • 支持 Structured Output,即将 AI 模型输出映射到 POJOs
  • 支持矢量数据库存储与检索
  • 支持函数调用 Function Calling
  • 支持构建 AI Agent 所需要的工具调用和对话内存记忆能力
  • 支持 RAG 开发模式,包括离线文档处理如 DocumentReader、Splitter、Embedding、VectorStore 等,支持 Retrieve 检索

Roadmap

Spring AI Alibaba 提供 AI 开源框架以及与阿里巴巴整体开源生态的深度适配,以帮助 Java 开发者快速构建原生 AI 应用架构。

  • Prompt Template 管理
  • 事件驱动的 AI 应用程序
  • 更多 Vector Database 支持
  • 函数计算等部署模式
  • 可观测性建设
  • AI 代理节点开发能力,如绿网、限流、多模型切换等
  • 开发者工具集

ai-native-architecture

贡献指南

请参考 贡献指南 了解如何参与 Spring AI Alibaba 的开发。

参考资料

联系我们

  • 钉钉群:请通过群号 64485010179 搜索入群
  • 微信公众号:请扫描一下二维码关注公众号

Credit

本项目的一些想法和代码受到以下项目的启发或重写于以下项目,非常感谢那些创建和开源这些项目的开发者。

  • Spring AI,一款面向 Spring 开发者的 AI 智能体应用开发框架,提供 Spring 友好的 API 和抽象。基于 Apache License V2 开源协议。
  • Langgraph,一个用于使用LLM构建有状态、多参与者应用程序的库,用于创建代理和多代理工作流。基于 MIT 开源协议。
  • Langgraph4J,[LangGraph]项目的 Java 移植版本。基于 MIT 开源协议。