[Season 2] Spring AI実戦:Multi AIエージェントシステム開発
bitcocom
Spring AI Router Pattern + RAG + MCPを活用した「インテリジェント協業」専門家エージェントチーム構築 単一エージェントを超えてアーキテクチャへ:Routerパターンとエージェント分離(Isolation)設計の定石
초급
Spring Boot, RAG, AI Agent
Spring BootとReactを使用している開発者、そして企業環境でAIシステムの導入を検討している開発者の方々に、Spring AIを強くお勧めします。 本コースでは、単なるライブラリの紹介にとどまらず、Spring AIの核心概念と内部構造を理解した上で、多様な実習例を通じて直接実装しながら実務への適用能力を強化します。 Spring AI 1.1.xバージョンを基準に説明し、今後のバージョンアップにも対応できるよう、継続的な技術サポートと拡張の方向性を共に提示します。 また、MCP(Model Context Protocol)を活用してドメイン間のコンテキスト統合や分散環境でのAI連携、そしてエンタープライズ環境に適したAIアーキテクチャ設計を実現することで、Spring AI技術の活用価値を一段と高めます。 企業環境で実際に導入可能なAIシステムの構築を目標に、理論と実習をバランスよく扱う実践中心のガイドとなるでしょう。
Spring Bootを活用した多様なAIモデル連動システムの開発
Spring AIが提供するコアライブラリの実習中心の活用
MCPシステム構築を通じた企業内AIサービスの開発および適用
Spring Boot MVCベースの教育を進め、React連携まで拡張
本講義はSpring AIを活用した企業向けAIアプリケーション開発コースであり、
大規模言語モデル(LLM)、プロンプトエンジニアリング、RAG(Retrieval-Augmented Generation)、Tool/Function Callingなど、実務中心のAIサービス実装技術を学習できるように構成されています。
本コースはSpring Bootベースのバックエンド開発者を主な対象として設計されており、
Springエコシステムの強みであるDI、Bean管理、モジュール化アーキテクチャをそのまま維持しながら、
AI機能を自然に統合する方法を扱います。
講義では、次のような内容が含まれます。
Spring AIのアーキテクチャおよびコアコンセプトの理解
ChatClient、Prompt、Advisor、Memory構造の実習
LLM連携(OpenAIなど)およびプロンプト設計戦略
マルチモーダルAPI – 画像とビジョン、オーディオと音声
Vector Storeを活用したRAGシステムの構築
Tool / Function Calling および MCP(Model Context Protocol)の活用
Spring BootベースのAIサービス設計およびテスト(Mockitoベースのテストを含む)
企業環境を考慮した拡張性と保守戦略
講義を受講した後は
単なるAI APIの呼び出しレベルを超え、
Springベースの安定的で拡張可能なAIシステムを自ら設計・実装できる能力を身につけることができます。
これにより、企業内へのAI導入、社内知識検索システム、AIチャットボット、業務自動化サービスなど、
実際の現場ですぐに適用可能なAIバックエンド開発能力を確保できます。
💡本過程の核心内容
Spring Bootを活用した多様なAIモデル連携システムの開発
Spring AIが提供するコアライブラリの実習中心の活用
MCPシステムの構築を通じた企業内AIサービスの開発および適用
Spring Boot MVCベースの教育進行、React連携拡張
💡本コースの特徴
今後Spring AIのバージョンがアップグレードされれば、カリキュラムもアップグレードされます。
授業ではFrontendにThymeleafを使用し、Reactでも実装してみます。
MCPとtoolを同時に使用して、Spring AIを拡張することができます。
💡学習内容。
SpringBoot 開発設定および Spring AI コースを進めるための環境設定
教育進行のためのプロジェクト生成および教案セッティング
実習プロジェクトに教本が添付されており、実習時にいつでも教本の内容を参照することができます。
1. 開発環境および授業内容の説明
2. 授業環境および教本の設定
3. OpenAI キーの発行
4. Gemini キーの発行
5. Spring AI Setting
6. PostgreSQL Setting
7. Spring AIとは
アプリケーションにAIベースの対화補完機能を統合できるようにします。GPT(Generative Pre-trained Transformer)のような事前学習済み言語モデルを利用してユーザーの入力を解釈し、自然な応答を生成した後、アプリケーションでこれを処理できるようにします。応答処理はNon-Streaming方式とStreaming方式に分けて開発します。
1. Chat (Zero-Shot Prompting): Zero-Shot Promptingは、ユーザーが渡したプロンプトのみに基づいてLLMが応答を生成する方式
2. Chat Stream: Reactive Streams(Project Reactor) ベースでストリーミングする方式
3. Chat (Few-Shot Prompting): モデルが特定のタスクをより正確に実行できるように、複数の例(Input/Output Pair)をプロンプトに含める方式
4. Chat (Chain-of-Thought Prompting): LLMが問題を解決する過程で、中間の推論過程を自ら段階的に展開するように誘導するプロンプティング方式
5. Chat Memory: LLMとの対話コンテキストをメモリに保存し、後続のリクエスト時にこれを再度呼び出すことで、持続的かつ自然なコンテキストベースの対話を可能にする機能
Prompt Template & Structured Output Converterを利用して、AIモデルが特定の目的に沿った結果を生成するように誘導します。プロンプトの構成方式と設計品質は、モデルの回答の正確性、一貫性、および活用度に大きな影響を与えます。本チャプターでは、多様なプロンプトテンプレートの活用について学習します。
1. Prompt Template: ユーザーが入力した自然な文章、簡単な命令、パラメータなどに基づき、構造化されたプロンプト(Prompt String)を動的に生成する機能
2. ListOutputConverter: JavaのList
3. MapOutputConverter: JavaのMap
4. BeanOutputConverter: 指定されたJava Beanオブジェクトに変換するConverter
5. ParameterizedType: List
Advisors APIは、アプリケーション内部でAIモデルとの相互作用をインターセプト、変換、および強化できるように設計されたフレームワークです。これにより、共通の生成AI処理ロジックをカプセル化し、入出力フローを精巧に制御しながら、再利用可能なAIコンポーネントを作成してみましょう。
1. Advisor: 様々なAdvisorを利用してLLMと疎通
2. Advisor: Stream: 様々なAdvisorをReactive Streamsを利用してLLMと疎通
3. Recursive Advisors: 特定の条件が満たされるまで、LLMを再帰的または反復的に呼び出し
マルチモーダル大規模言語モデル(MLLM: Multimodal Large Language Model)を利用して、テキストだけでなく画像、オーディオ、ビデオなど多様なデータを同時に受け入れ、これらを総合的に分析して高品質なテキストベースの応答を生成できるようになりました。本章では、画像分析、画像生成について学んでいきます。
1. Generate Image for URL: ユーザーが入力したプロンプトに基づいて画像URLを生成
2. Generate Image: ユーザーが入力したプロンプトに基づいて画像ファイルを生成
3. Image Analysis: 画像の内容、状況、要素の分析など、多様なビジョンベースの認識
4. Video Analysis: 映像の特定のフレームに対する分析
マルチモーダル大規模言語モデル(MLLM: Multimodal Large Language Model)を利用することで、テキストだけでなく画像、オーディオ、ビデオなど多様なデータを同時に受け入れ、これらを総合的に分析して高品質なテキストベースの応答を生成できるようになりました。本章では、オーディオ分析とオーディオ生成について詳しく見ていきましょう。
1. Text to Speech: ユーザーが入力したテキストを音声データ(Audio)に変換
2. Text to Speech: Chat: ユーザーの入力テキストをLLMに伝達して音声回答を生成
3. Text to Speech: Stream: ユーザー入力テキストをLLMに伝達し、リアルタイムで音声回答を生成
4. Speech to Text: ユーザーが話した音声入力(Audio)をテキストに変換
5. Speech to Text: Chat: ユーザーが話した音声入力(Audio)をテキストに変換した後、回答を生成
6. Speech to Text: Chat Voice: ユーザーが話した音声入力(Audio)をテキストに変換した後、音声回答を生成
ツール呼び出し(Tool Calling)、または関数呼び出し(Function Calling)は、AIモデルが外部APIやソフトウェアツールと相互作用して機能を拡張できるようにします。これにより、モデルが単なるテキスト応答を超えて、実際の機能実行、データ検索、システム制御など、さまざまなタスクを自動化できる環境を構築してみましょう。
1. 日時
DateTimeTools: 現在の時間データを作成します。
CurrentWeatherTools: 現在の天気データを経度と緯度に基づいて作成します。
ForecastWeatherTools: 天気予報の情報を経度と緯度に基づいて作成します。
2. Customer Inquiry: 顧客情報をツールを利用してLLMと連携し、照会します。
CustomerTools: 顧客情報をCustomerオブジェクトタイプに基づいてJSON形式で返します。
CustomerStringTools: 顧客情報をCustomerオブジェクトタイプに基づいてString形式でリターンします。
CustomerToolCallResultConverter: Toolで作成されたデータをJSONまたはStringに変換します。
3. Recommendation: ToolContextを利用して、特定のIDに基づいた顧客の購入リストから製品を推薦するシステムです。
4. Access System: カメラを通じて社員証を認識し、社員証にあるID番号に基づいて出入りを許可するシステムです。
埋め込み(Embedding)は、テキスト、画像、ビデオなどのデータを意味ベースのベクトル形式(浮動小数点数の配列)に変換し、入力間の関係や意味的な類似性を数値的に表現する技術です。このベクトル配列の長さをベクトル次元(Vector Dimension)と呼びます。
Spring AIは、埋め込みを活用したRAG(Retrieval Augmented Generation)アーキテクチャを直接構築したり、Springが提供する標準的なRAGフローを使用したりできるように、事前知識として学習していきます。
1. Text Embedding: テキストデータをEmbeddingモデルを通じて高次元ベクトル(Vector Representation)に変換し、変換されたベクトルをVector Storeに保存した後、ユーザーの質問をEmbeddingして類似度検索(Semantic Search)で関連ドキュメントを照会する方式です。
2. Hotel Data Embedding: ホテルの名前、場所、アメニティ、価格、レビューなど、ホテル関連のマルチフィールドデータをEmbeddingしてVector Storeに保存した後、ユーザーの検索を実行します。
3. Chat Memory PGvector: LLMの対話履歴をリアルタイムでEmbeddingし、PGVector(PostgreSQL Vector Extension)に保存
4. Chat Memory JDBC: LLMの対話フローをリレーショナルデータベース(JDBC)ベースで保存する方式です。
RAGは、大規模言語モデル(LLM)が長文処理、事実の正確性、外部知識の認識などにおいて抱える限界を補完するために考案された技術であり、検索された関連データをプロンプトに結合することで、より正確で信頼性の高い応答を生成できるようにします。
1. ETL Pipeline: ユーザーがアップロードしたファイル(TXT、PDF、DOCなど)を処理してVector Storeに保存/削除
2. RAG Chat: Vector Storeに保存されたデータに基づいてLLMと対話
3. RAG Chat: template: RAG Chat機能にPromptTemplateを適用
4. Retrieval Augmentation Advisor: Vector Storeに正確な検索結果がなくても、LLMが柔軟に対話を続けられるよう支援
5. Compression Query Transformer: 会話履歴と後続の質問を圧縮し、会話の核心を捉えた独立したクエリに再構成
6. Rewrite Query Transformer: ユーザーの質問が冗長であったり曖昧な場合、質問を明確に書き換え
7. Translation Query Transformer: ユーザーの質問を特定の言語に翻訳し、多言語対話を可能にするよう支援
8. Multi Query Expander: ユーザーの質問を多様なバリエーション(Query Expansion)に変換して対話
Model Context Protocol(MCP)は、AIモデルが外部ツール、データ、リソースと構造化された方法で相互作用できるようにする標準化されたプロトコルです。これを通じて、モデルと現実世界(データベース、API、ファイルシステムなど)を繋ぐ統合的なAIシステムを開発してみましょう。
1. MCP Chat: 様々なMCPサーバーと連携してLLMと対話できるように支援する機能
Standard Input/Output (STDIO) MCP Server: 天気予報
SSE WebMVC MCP Server: 현재 날씨
SSE WebFlux MCP Server: 현재 시간
2. MCP Access: カメラを通じて社員証を認識した後、社員証にあるID番号に基づいて出入りを許可するシステム
Tool CallingとMCP Serverを同時に構成
SSE WebFlux MCP Server: 従業員の社員番号を全従業員の社員番号と比較(Tool Calling方式への変換も含む)
SSE WebMVC MCP Server: 社員番号の一致状況に応じて出入り口を制御
SpringBoot MVCをReactに変換
フロントエンド構成
React 19.2.0 + TypeScript
Vite (ビルドツール)
React Router 7.10.1
Axios / Fetch API (API 通信)
オペレーティングシステムおよびバージョン(OS): Windows、macOS、Linuxなど、すべてのOSが可能です。
使用ツール: JDK, Intellij(Ultimate or Community), PostgreSQL & Docker, Node.js, VSCode
PCスペック:インターネット接続が可能な標準的なスペックのPC
提供する学習資料の形式:教育環境プロジェクト、教案など、多様な形式の資料を提供
分量および容量:各セクションごとに学習資料を提供
HTML、CSS、JavaScriptの基本知識をお持ちの方。
Java, SpringBoot 開発経験者
ご質問は掲示板に投稿していただければ、すぐに回答できるようにいたします。
本講義の著作権は(株)トネソルに帰属し、無断配布および複製を禁止します。学習資料も著作権があり、個人的な学習目的以外での使用を禁止します。
学習対象は
誰でしょう?
Spring Bootバックエンド開発者として、AI技術を実務に適用したい方
Spring AIを活用して企業内AIシステムを設計・構築しようとする開発者
様々なAIサービス(LLM、Embedding、Vector DBなど)との連携を通じて、実際のサービスを開発したい方
MCP(Model Context Protocol)を活用してドメイン間のコンテキストを統合し、分散環境においてAIシステムを有機的に連携・拡張したい方
前提知識、
必要でしょうか?
HTML, CSS, JavaScriptの基礎知識
Java、SpringBootシステム開発経験者
こんにちは
知識共有者のイ・ジンマン(ニックネーム tootoo)です。
長い間、教室で皆さんとコミュニケーションをとってきました。
これからはオンライン上で皆さんとコミュニケーションが取れるよう、質の高いコンテンツを作っていきたいと思います。
ありがとうございます。
全体
62件 ∙ (15時間 41分)
講座資料(こうぎしりょう):
1. 1. 開発環境および授業内容の説明
06:45
2. 2. 授業環境および教案の設定
26:55
3. 3. OpenAIキーの発行
08:17
4. 4. Geminiキーの発行
04:18
5. 5. Spring AI の設定
09:19
6. 6. PostgreSQLの設定
13:39
期間限定セール
¥4,915
34%
¥7,548
同じ分野の他の講座を見てみましょう!