Integration Problem

Spring AI プロジェクトは、不必要に複雑にすることなく、人工知能機能を組み込んだアプリケーションの開発を合理化することを目的としています。

このプロジェクトは、LangChain や LlamaIndex などの著名な Python プロジェクトからインスピレーションを得ていますが、Spring AI はそれらのプロジェクトを直接移植したものではありません。このプロジェクトは、生成 AI アプリケーションの次の波が Python 開発者だけのものではなく、多くのプログラミング言語にわたって普及するだろうとの信念のもと設立されました。

Spring AI は、AI 統合の基本的な課題である Connecting your enterprise Data and API with the AI Models に対処します。
相互の作用

Spring AI は、AI アプリケーション開発の基盤となる抽象化を提供します。これらの抽象化には複数の実装があり、最小限のコード変更で簡単にコンポーネントを交換できます。

Spring AI は次の機能を提供します。

  • チャット、テキストからイメージへの変換、埋め込みモデル用の AI プロバイダー全体にわたるポータブル API サポート。同期 API オプションとストリーミング API オプションの両方がサポートされています。モデル固有の機能へのアクセスも利用できます。

  • Anthropic、OpenAI、Microsoft、Amazon、Google、Ollama など、すべての主要な AI モデルプロバイダーをサポートします。サポートされるモデル型は次のとおりです。

  • 構造化された出力 - AI モデル出力の POJO へのマッピング。

  • Apache Cassandra、Azure Vector Search、Chroma、Milvus、MongoDB Atlas、Neo4j、Oracle、PostgreSQL/PGVector、PineCone、Qdrant、Redis、Weaviate など、すべての主要なベクトルデータベースプロバイダーをサポートします。

  • 新しい SQL のようなメタデータフィルター API を含む、ベクトルストアプロバイダー間で移植可能な API。

  • ツール / 関数呼び出し - モデルがクライアント側のツールと関数の実行をリクエストし、必要に応じて必要なリアルタイム情報にアクセスできるようにします。

  • 可観測性 - AI 関連の操作に関するインサイトを提供します。

  • データエンジニアリング用のドキュメントインジェクション ETL フレームワーク

  • AI モデル評価 - 生成されたコンテンツを評価し、幻覚的な反応から保護するためのユーティリティ。

  • Spring Boot AI モデルとベクトルストアの自動構成とスターター。

  • ChatClient API - AI チャットモデルと通信するための Fluent API。慣用的には WebClient および RestClient API に似ています。

  • アドバイザー API - 繰り返し発生する生成 AI パターンをカプセル化し、言語モデル (LLM) との間で送受信されるデータを変換し、さまざまなモデルやユースケース間での移植性を実現します。

  • チャット会話メモリおよび検索拡張生成 (RAG) のサポート。

この機能セットを使用すると、「ドキュメントに対する Q&A」や「ドキュメントとのチャット」などの一般的な使用例を実装できます。

概念セクションでは、 AI の概念と Spring AI でのその表現の概要を説明します。

入門セクションでは、最初の AI アプリケーションを作成する方法を説明します。後続のセクションでは、コードに焦点を当てたアプローチで各コンポーネントと一般的な使用例を詳しく説明します。