ジェネレーティブAI入門 - Javaエディション
July 2, 2026 · View on GitHub
学べること
- LLM、プロンプトエンジニアリング、トークン、埋め込み、ベクトルデータベースを含むジェネレーティブAIの基礎
- Azure OpenAI SDK、Spring AI、OpenAI Java SDKを含むJavaのAI開発ツールの比較
- AIエージェント間の通信におけるModel Context Protocolの役割とその理解
目次
Introduction
ジェネレーティブAI初心者向け - Javaエディションの最初の章へようこそ!この基礎レッスンではジェネレーティブAIのコア概念と、それをJavaで扱う方法を紹介します。Large Language Models(LLMs)、トークン、埋め込み、AIエージェントなどAIアプリケーションの基礎となる構成要素について学びます。また、本コースで使用する主要なJavaツールについても探ります。
ジェネレーティブAIの概念の簡単な復習
ジェネレーティブAIは、データから学習したパターンや関係を基にテキスト、画像、コードなどの新しいコンテンツを生成する人工知能の一種です。ジェネレーティブAIモデルは人間のような応答を生成し、文脈を理解し、時には人間らしいコンテンツを作り出すことさえあります。
JavaによるAIアプリ開発では、ジェネレーティブAIモデルを使ってコンテンツを作成します。ジェネレーティブAIモデルが持つ主な能力には次のようなものがあります:
- テキスト生成:チャットボット、コンテンツ生成、テキスト補完のための人間らしいテキスト作成
- 画像生成と解析:リアルな画像の生成、写真の強化、物体検出
- コード生成:コードスニペットやスクリプトの作成
タスクに合わせて最適化されたモデルのタイプがあります。例えば、テキスト生成には小規模言語モデル(SLM)と大規模言語モデル(LLM)の両方が使えますが、複雑なタスクではLLMの方が性能が良いことが多いです。画像関連のタスクでは、専門のビジョンモデルやマルチモーダルモデルを使います。

もちろん、モデルの応答は常に完璧というわけではありません。モデルが「幻覚」的に誤った情報を威厳を持って生成することもあります。しかし、明確な指示や文脈を提供することで、より良い応答を生成するようモデルを導くことができます。ここで登場するのがプロンプトエンジニアリングです。
プロンプトエンジニアリングの復習
プロンプトエンジニアリングは、AIモデルを望ましい出力に導く効果的な入力を設計する技術です。これには以下が含まれます:
- 明確さ:指示を明確かつ曖昧さなくすること
- 文脈:必要な背景情報を提供すること
- 制約:任意の制限やフォーマットを指定すること
プロンプトエンジニアリングのベストプラクティスには、プロンプト設計、明確な指示、タスクの分解、ワンショット・フューショット学習、プロンプトチューニングがあります。異なるプロンプトをテストして、特定の用途に最適なものを見つけることが不可欠です。
アプリ開発時にはさまざまなタイプのプロンプトを扱います:
- システムプロンプト:モデルの振る舞いの基本ルールや文脈を設定
- ユーザープロンプト:アプリケーションユーザーからの入力データ
- アシスタントプロンプト:システムとユーザープロンプトに基づくモデルの応答
トークン、埋め込み、エージェント
ジェネレーティブAIモデルを扱うときに、トークン、埋め込み、エージェント、およびModel Context Protocol (MCP) という用語に出会います。これらの概念を詳しく説明します。
- トークン:モデル内でテキストの最小単位です。単語、文字、またはサブワードが含まれます。トークンはモデルが理解できる形式でテキストデータを表現します。例えば、「The quick brown fox jumped over the lazy dog」という文は、トークン化戦略によって ["The", " quick", " brown", " fox", " jumped", " over", " the", " lazy", " dog"] や ["The", " qu", "ick", " br", "own", " fox", " jump", "ed", " over", " the", " la", "zy", " dog"] のようにトークンに分解されます。

トークン化はテキストをこれらの小単位に分解する処理です。モデルは生テキストではなくトークンを操作するため、重要な処理となります。プロンプト内のトークン数は応答の長さや品質に影響を与えます。モデルには文脈ウィンドウのトークン制限があり(例:GPT-4oの合計文脈は128Kトークン、入力と出力を含む)、これを超えることはできません。
Javaでは、OpenAI SDKのようなライブラリを使い、AIモデルへのリクエスト時にトークン化を自動的に扱えます。
- 埋め込み:トークンの意味を捉えたベクトル表現です。通常は浮動小数点数の配列で表現され、単語間の意味的な関連性をモデルが理解できるようにします。類似した単語は類似した埋め込みを持ち、同義語や意味的関係を扱うことが可能です。

JavaではOpenAI SDKや埋め込み生成をサポートする他のライブラリを使って埋め込みを生成できます。これらは意味的検索のように意味に基づき類似したコンテンツを見つけるタスクに不可欠です。
- ベクトルデータベース:埋め込みを効率的に保存・検索できる特殊なストレージシステムです。これにより厳密なテキストマッチングではなく意味的類似性に基づく大規模データセットからの関連情報検索が効率化されます。Retrieval-Augmented Generation (RAG) パターンで特に重要です。

注意:本コースではベクトルデータベース自体は扱いませんが、実際のアプリケーションで一般的に使われているため紹介しています。
- エージェント & MCP:モデルやツール、外部システムと自律的にやりとりするAIコンポーネントです。Model Context Protocol(MCP)は、エージェントが外部データソースやツールに安全にアクセスするための標準化された方法を提供します。詳細は MCP for Beginners コースで学べます。
JavaのAIアプリケーションでは、テキスト処理にトークン、意味検索やRAGに埋め込み、データ検索にベクトルデータベース、知的なツール連携にエージェントとMCPを利用します。

JavaのAI開発ツールとライブラリ
Javaは優れたAI開発用ツールを備えています。本コースで扱う主要な3つのライブラリは、OpenAI Java SDK、Azure OpenAI SDK、Spring AIです。
以下は各章の例で使用されるSDKのリファレンステーブルです:
| 章 | サンプル | SDK |
|---|---|---|
| 02-SetupDevEnvironment | basic-chat-azure | Spring AI Azure OpenAI |
| 03-CoreGenerativeAITechniques | examples | Azure OpenAI SDK |
| 04-PracticalSamples | petstory | OpenAI Java SDK |
| 04-PracticalSamples | foundrylocal | OpenAI Java SDK |
| 04-PracticalSamples | calculator | Spring AI MCP SDK + LangChain4j |
SDKドキュメントリンク:
OpenAI Java SDK
OpenAI SDKはOpenAI APIの公式Javaライブラリで、OpenAIのモデルとの対話を簡単かつ一貫したインターフェースで提供し、JavaアプリケーションへAI機能を統合しやすくします。第4章のPet StoryアプリケーションおよびFoundry Local例ではOpenAI SDKを使ったAzure AI Foundryとの連携を実演しています。
Spring AI
Spring AIは、さまざまなAIプロバイダー間で一貫した抽象レイヤーを提供し、SpringアプリケーションにAI機能をもたらす包括的なフレームワークです。Springエコシステムとシームレスに連携し、企業向けJavaアプリに理想的な選択肢です。
Spring AIの強みは、依存性注入や設定管理、テストフレームワークなど馴染みのあるSpringパターンでプロダクションレベルAIアプリを容易に構築できる点にあります。第2章と第4章では、OpenAIとModel Context Protocol(MCP)を組み合わせたSpring AIライブラリを使用してアプリケーションを作成します。
Model Context Protocol (MCP)
Model Context Protocol (MCP) は、AIアプリケーションが外部データソースやツールと安全にやりとりするための新たな標準です。MCPは、AIモデルが文脈情報に安全にアクセスし、アプリケーション内でアクションを実行するための標準化された方法を提供します。
第4章では、基本的なツール統合とサービスアーキテクチャを示す簡単なMCP電卓サービスをSpring AIで構築し、MCPの基礎を体験します。
Azure OpenAI Java SDK
Azure OpenAIのJavaクライアントライブラリは、OpenAIのREST APIをアダプトし、Azure SDKエコシステムに適したイディオマティックなインターフェースおよび統合を提供します。第3章ではAzure OpenAI SDKを使ったチャットアプリ、関数呼び出し、RAG(Retrieval-Augmented Generation)パターンのアプリを構築します。
注意:Azure OpenAI SDKは機能面でOpenAI Java SDKに遅れを取っているため、今後のプロジェクトではOpenAI Java SDKの使用を検討してください。
まとめ
ここまでで基礎を学びました!理解した内容は:
- ジェネレーティブAIのコア概念—LLMやプロンプトエンジニアリングからトークン、埋め込み、ベクトルデータベースまで
- Java AI開発のツールキットの選択肢:Azure OpenAI SDK、Spring AI、OpenAI Java SDK
- Model Context Protocolの概要と、外部ツールと連携するAIエージェントの仕組み
次のステップ
免責事項: 本書類は AI 翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期していますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知おきください。原文の原語版が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や解釈違いについても、当方は責任を負いかねます。