Lzh on GitHub

简介

Spring AI 项目的目标,是在不引入不必要复杂性的前提下,简化构建具备人工智能功能的应用程序的过程。

Spring AI 项目的目标,是在不引入不必要复杂性的前提下,简化构建具备人工智能功能的应用程序的过程。

该项目借鉴了许多知名的 Python 项目,如 LangChainLlamaIndex,但 Spring AI 并不是这些项目的直接移植。它基于这样一种信念:新一波生成式 AI 应用不会仅限于 Python 开发者,而是将广泛存在于各种编程语言生态中

Spring AI 解决了 AI 集成中的一个核心挑战:将企业的数据和 API 与 AI 模型连接起来

Spring AI 通过提供抽象层,为开发 AI 应用奠定基础。这些抽象拥有多种实现方式,使组件能够在最小化代码变更的情况下轻松替换。

Spring AI 提供如下功能:

  • 为聊天(Chat)、文本生成图像(text-to-image)和向量嵌入(Embedding)模型提供可跨多家 AI 服务商使用的通用 API。支持 同步流式 两种 API 方式,同时也允许访问各模型特有的功能。
  • 支持所有主流的 AI 模型提供商,例如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。支持的模型类型包括:
  • 结构化输出(Structured Outputs) —— 将 AI 模型的输出映射为 POJO(普通 Java 对象)。
  • 支持主流 向量数据库,包括 Apache Cassandra、Azure Cosmos DB、Azure Vector Search、Chroma、Elasticsearch、GemFire、MariaDB、Milvus、MongoDB Atlas、Neo4j、OpenSearch、Oracle、PostgreSQL/PGVector、Pinecone、Qdrant、Redis、SAP Hana、Typesense 和 Weaviate。
  • 跨向量存储提供商的可移植 API,包括一种创新的类似 SQL 的元数据过滤 API。
  • 工具/函数调用(Tools / Function Calling) —— 允许模型请求执行客户端工具或函数,以便按需获取实时信息并采取相应行动。
  • 可观测性(Observability) —— 提供对 AI 相关操作的可视化洞见。
  • 文档摄取 ETL 框架 —— 用于数据工程场景的数据抽取、转换与加载。
  • AI 模型评估 —— 提供评估生成内容的工具,并帮助防止模型输出幻觉(hallucination)。
  • Spring Boot 自动配置与 Starters —— 覆盖 AI 模型与向量存储的自动化配置组件。
  • ChatClient API —— 用于与 AI 聊天模型通信的流畅 API,其风格与 WebClient 和 RestClient 一脉相承。
  • Advisors API —— 封装常见的生成式 AI 模式,对发送给 LLM 的数据及其返回的数据进行转换,并在不同模型和使用场景之间提供可移植性。
  • 支持 聊天会话记忆RAG(检索增强生成)。

这组特性让你能够轻松实现常见的应用场景,例如 “基于文档进行问答(Q&A over your documentation)” 或 “与文档对话(Chat with your documentation)”。

概念章节 提供了 AI 核心概念及其在 Spring AI 中的高层次概览。

快速开始 章节将展示如何创建你的第一个 AI 应用程序。后续章节将以代码为主导,深入讲解各个组件及其常见使用场景。