正式リリースされたSpring AI——JavaはついにAIの波に乗れるのか?
AI技術が急速に進化する中で、JavaはこれまでAI分野で目立った存在ではありませんでした。しかし、Springフレームワークに新たに追加されたモジュール「Spring AI」によって、Javaでも手軽にAI機能を活用できる時代が到来しました。本記事では、Spring AIの概要とその使用方法について、プロジェクト作成から実装、実際の動作までをステップバイステップで紹介します。わずか数分でAIアプリを構築できるその手軽さを、Java開発者ならぜひ体験してみてください。
はじめに
ここ数年、AIの発展はまさに目覚ましく、わずか半年間目を離しただけで、新しい大規模言語モデルが登場し、その性能が想像を超えてくることも珍しくありません。
しかし、長い間JavaはこのAIの流れにうまく乗れていないという印象がありました。そんな中、Springから新たに「Spring AI」というモジュールが登場しました。果たしてこれによってJavaもAIの世界で存在感を示せるようになるのでしょうか?
Spring AIとは?
以下の画像は、Springの公式サイトからのスクリーンショットです。私たちがよく知るSpringファミリーの一員として、新たに「Spring AI」というセクションが追加されています。
公式サイト(https://spring.io/projects/spring-ai)で詳細を確認できます。
この記事を書いている時点での最新の安定バージョンは 0.8.1、そして開発中の 1.0.0-SNAPSHOT バージョンも公開されています。
Spring AIが目指しているのは、他のSpringモジュールと同様に「開発者が最小限の労力でAIを利用できる」ようにすることです。
公式ドキュメントを見ると、チャットモデル、テキストから画像生成、音声認識(音声からテキスト)、埋め込みモデルなど、さまざまなAI機能に対応したAPIが用意されています。ここからは実際にSpring AIを使った簡単な例を見ていきましょう。
プロジェクトの作成
まず、Spring Initializrを使って新しいSpringプロジェクトを作成します。ただし、Spring AIを使用するためには最低でも JDK17 が必要なので、プロジェクト作成時にはJDK17を選択してください。
次のステップでは「Web」スターターを選択し、AIモジュールとしては「OpenAI」を選択します。今回はOpenAIの使用例を中心に解説します。
すべて選択したら、プロジェクトを生成しましょう。Spring Bootベースのプロジェクトが自動的に作成されます。
作成されたpom.xml
を確認すると、次のような依存関係が含まれています:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
コードの実装
次は、公式サイトのサンプルコードをベースに簡単なアプリケーションを作ってみましょう。まず、application.properties
ファイルに以下の設定を追加します:
spring.ai.openai.api-key=あなたのOpenAIのAPIキー
spring.ai.openai.chat.options.model=gpt-3.5-turbo
ここでは、OpenAIのAPIキーと使用するモデルを設定しています。次に、APIを呼び出すためのRESTコントローラーを作成します。
import org.springframework.ai.openai.OpenAiChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
public class ChatController {
private final OpenAiChatClient chatClient;
@Autowired
public ChatController(OpenAiChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", chatClient.call(message));
}
}
このコードでは、OpenAiChatClient
をコンストラクタインジェクションで注入し、call
メソッドを使ってユーザーからのメッセージに対するAIの返答を生成しています。
アプリケーションを起動し、Postmanなどのツールで/ai/generate
エンドポイントにアクセスすれば、簡単なAIチャットボットを体験できます。
まとめ
Springは本当に「開発者にご飯を食べさせてくれる」フレームワークだと言えるでしょう。
Spring AIを使えば、わずか5分でAIアプリケーションのプロトタイプを作成できます。もし興味があれば、他のAIモデル(Anthropic、Cohere、Azureなど)を試してみるのもおすすめです。Spring公式サイトには、それぞれのモデルの使い方が丁寧に解説されています。