为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

相关文章

Java 反射机制:原理、用途与实践

技术背景在软件开发中,有些情况下程序需要在运行时动态地获取对象的信息并操作对象,而不是在编译时就确定所有的对象和操作。Java 反射机制应运而生,它允许程序在运行时检查类、接口、字段和方法等,并且可以...

Java反射机制:神奇的幕后操控者

Java反射机制:神奇的幕后操控者Java反射机制,这个听起来像是科幻电影里的黑科技,在日常的编程中却扮演着不可或缺的角色。它就像一位精通Java内部运作的大师,能够在程序运行时动态地获取类的信息、构...

Java反射机制:揭开动态世界的神秘面纱

Java反射机制:揭开动态世界的神秘面纱在Java编程的世界里,反射机制是一种非常特别的存在,它像一把神奇的钥匙,可以打开任何类的大门,让我们随意查看它的内部构造,甚至还能动态创建实例、调用方法。简单...

Java 反射与注解详解

一、反射(Reflection)反射允许程序在运行时动态获取类的信息(如类名、方法、字段、构造器等),并操作类或对象(如创建实例、调用方法、访问字段)。它是实现框架(如Spring、MyBatis)和...

Java中跳出嵌套循环的方法

技术背景在Java编程中,我们经常会遇到嵌套循环的情况。当满足特定条件时,我们可能需要跳出整个嵌套循环结构。然而,普通的break语句只能跳出当前所在的内层循环,无法直接跳出外层循环。因此,需要一些特...

聊聊Mybatis的初始化之Mapper.xml映射文件的解析

聊聊Mybatis的初始化之Mapper.xml映射文件的解析解析完全局配置文件后接下来就是解析Mapper文件了,它是通过XMLMapperBuilder来进行解析的解析Mapper文件入口XMLM...