正式リリースされた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公式サイトには、それぞれのモデルの使い方が丁寧に解説されています。


0 / 800
0
0
Tổng cộng bình luận