概述

3分钟阅读
Spring AI

简介

Spring AI 项目旨在简化包含人工智能功能的应用程序开发,避免不必要的复杂性。

该项目从著名的 Python 项目(如 LangChain 和 LlamaIndex)中汲取灵感,但 Spring AI 并不是这些项目的直接移植。项目创立的理念是:下一波生成式 AI 应用不应该仅限于 Python 开发者,而应该在多种编程语言中普及。

注意

Spring AI 解决了 AI 集成的根本挑战:将企业数据和 API 与 AI 模型连接起来。

主要特性

Spring AI 提供了用于开发 AI 应用的抽象层。这些抽象有多种实现,使得组件可以轻松切换而只需很少的代码更改。

Spring AI 提供以下功能:

  • 跨 AI 提供商的可移植 API 支持,包括聊天、文本生成图像和嵌入模型。支持同步和流式 API。也可以访问特定模型的功能。
  • 支持所有主要的 AI 模型提供商,如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。支持的模型类型包括:
    • 聊天补全
    • 嵌入
    • 文本生成图像
    • 音频转录
    • 文本转语音
    • 内容审核
  • 结构化输出 - 将 AI 模型输出映射到 POJO
  • 支持所有主要的向量数据库提供商
  • 跨向量存储提供商的可移植 API,包括新颖的类 SQL 元数据过滤 API
  • 工具/函数调用 - 允许模型请求执行客户端工具和函数,从而按需访问必要的实时信息
  • 可观察性 - 提供 AI 相关操作的洞察
  • 用于数据工程的文档注入 ETL 框架
  • AI 模型评估 - 帮助评估生成的内容并防止幻觉响应的工具
  • Spring Boot 自动配置和 AI 模型及向量存储的启动器
  • ChatClient API - 用于与 AI 聊天模型通信的流畅 API,风格类似于 WebClient 和 RestClient API
  • Advisors API - 封装重复的生成式 AI 模式,转换发送到语言模型(LLM)的数据和从其接收的数据,并在各种模型和用例之间提供可移植性
  • 支持聊天对话记忆和检索增强生成(RAG)

这些功能集使您可以实现常见用例,如"文档问答"或"与文档聊天"。

概念部分提供了 AI 概念的高层次概述及其在 Spring AI 中的表示。

入门部分会指导你创建第一个 AI 应用。后续部分将以代码为重点,深入探讨每个组件和常见用例。