Hugging Face チャット

Hugging Face 推論エンドポイントを使用すると、機械学習モデルをクラウドにデプロイして提供し、API 経由でアクセスできるようになります。

前提条件

Hugging Face に推論エンドポイントを作成し、エンドポイントにアクセスするための API トークンを作成する必要があります。詳細については、こちら (英語) を参照してください。Spring AI プロジェクトでは、spring.ai.huggingface.chat.api-key という構成プロパティが定義されており、これを Hugging Face から取得した API トークンの値に設定する必要があります。また、Hugging Face でモデルをプロビジョニングするときに取得した推論エンドポイント URL に設定する必要がある spring.ai.huggingface.chat.url という構成プロパティもあります。これは、こちらにある (英語) 推論エンドポイントの UI で確認できます。環境変数をエクスポートすることは、これらの構成プロパティを設定する 1 つの方法です。

export SPRING_AI_HUGGINGFACE_CHAT_API_KEY=<INSERT KEY HERE>
export SPRING_AI_HUGGINGFACE_CHAT_URL=<INSERT INFERENCE ENDPOINT URL HERE>

リポジトリと BOM の追加

Spring AI アーティファクトは、Spring マイルストーンおよびスナップショットリポジトリで公開されます。これらのリポジトリをビルドシステムに追加するには、リポジトリセクションを参照してください。

依存関係の管理を支援するために、Spring AI は BOM (部品表) を提供し、一貫したバージョンの Spring AI がプロジェクト全体で使用されるようにします。Spring AI BOM をビルドシステムに追加するには、"依存関係管理" セクションを参照してください。

自動構成

Spring AI は、Hugging Face チャットクライアント用の Spring Boot 自動構成を提供します。これを有効にするには、プロジェクトの Maven pom.xml ファイルに次の依存関係を追加します。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-huggingface-spring-boot-starter</artifactId>
</dependency>

または、Gradle build.gradle ビルドファイルに保存します。

dependencies {
    implementation 'org.springframework.ai:spring-ai-huggingface-spring-boot-starter'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。

チャットのプロパティ

プレフィックス spring.ai.huggingface は、Hugging Face のチャットモデル実装を構成できるプロパティプレフィックスです。

プロパティ

説明

デフォルト

spring.ai.huggingface.chat.api-key

推論エンドポイントで認証するための API キー。

-

spring.ai.huggingface.chat.url

接続する推論エンドポイントの URL

-

spring.ai.huggingface.chat.enabled

Hugging Face チャットモデルを有効にします。

true

サンプルコントローラー (自動構成)

新しい Spring Boot プロジェクトを作成し、spring-ai-huggingface-spring-boot-starter を pom (または gradle) の依存関係に追加します。

src/main/resources ディレクトリに application.properties ファイルを追加して、Hugging Face チャットモデルを有効にして構成します。

spring.ai.huggingface.chat.api-key=YOUR_API_KEY
spring.ai.huggingface.chat.url=YOUR_INFERENCE_ENDPOINT_URL
api-key と url を Hugging Face の値に置き換えます。

これにより、クラスに挿入できる HuggingfaceChatModel 実装が作成されます。以下は、テキスト生成にチャットモデルを使用する単純な @Controller クラスの例です。

@RestController
public class ChatController {

    private final HuggingfaceChatModel chatModel;

    @Autowired
    public ChatController(HuggingfaceChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/ai/generate")
    public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", chatModel.call(message));
    }
}

手動構成

HuggingfaceChatModel [GitHub] (英語) は ChatModel インターフェースを実装し、[ 低レベル API] を使用して Hugging Face 推論エンドポイントに接続します。

spring-ai-huggingface 依存関係をプロジェクトの Maven pom.xml ファイルに追加します。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-huggingface</artifactId>
</dependency>

または、Gradle build.gradle ビルドファイルに保存します。

dependencies {
    implementation 'org.springframework.ai:spring-ai-huggingface'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。

次に、HuggingfaceChatModel を作成し、テキスト生成に使用します。

HuggingfaceChatModel chatModel = new HuggingfaceChatModel(apiKey, url);

ChatResponse response = chatModel.call(
    new Prompt("Generate the names of 5 famous pirates."));

System.out.println(response.getGeneration().getResult().getOutput().getContent());