为java工程师准备的AI开发框架spring-ai
Spring AI概述
Spring AI 项目为开发人工智能应用提供了一套适配 Spring 框架的 API 和抽象层。其目标是将 Spring 生态系统的设计原则(如可移植性和模块化设计)应用于人工智能领域,并推动将 POJO(普通 Java 对象)作为构建应用程序的基本单元这一理念在 AI 领域的普及。
从核心来看,Spring AI 解决了人工智能集成的根本挑战:将企业数据和 API 与人工智能模型连接起来。
该项目从 LangChain 和 LlamaIndex 等知名 Python 项目中汲取灵感,但 Spring AI 并非这些项目的直接移植版本。该项目创立的理念是:下一代生成式人工智能应用将不仅面向 Python 开发者,而是会在多种编程语言中广泛普及。
Spring AI功能
支持所有主流人工智能模型提供商,如 Anthropic、OpenAI、微软、亚马逊、谷歌和 Ollama。支持的模型类型包括:
- Chat Completion聊天补全
- Embedding 嵌入
- Text to Image 文本转图像
- Audio Transcription 音频转录
- Text to Speech 文本转语音
- Moderation 内容审核
提供跨人工智能提供商的可移植 API,支持同步和流式传输选项,同时也可访问特定于模型的功能。
结构化输出 - 将人工智能模型的输出映射到 POJO(普通 Java 对象)。支持所有主流向量数据库提供商,如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、MongoDB Atlas、MariaDB、Neo4j、Oracle、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate。
跨向量存储提供商的可移植 API,包括新型的类 SQL 元数据过滤 API
工具 / 函数调用 - 允许模型请求执行客户端工具和函数,从而根据需要访问必要的实时信息。
可观测性 - 提供与人工智能相关操作的洞察。
文档注入 ETL 框架(用于数据工程)。
人工智能模型评估 - 帮助评估生成内容并防范幻觉响应的实用工具。
ChatClient API - 用于与人工智能聊天模型通信的流畅 API,习惯上类似于 WebClient 和 RestClient API。
Advisors API - 封装常见的生成式人工智能模式,转换发送到语言模型(LLM)和从语言模型返回的数据,并提供跨各种模型和用例的可移植性。
支持聊天对话记忆和检索增强生成(RAG)。
所有人工智能模型和向量存储的 Spring Boot 自动配置和启动器 - 可使用 start.spring.io 选择所需的模型或向量存储。
项目地址:
spring-projects/spring-ai: An Application Framework for AI Engineering