汎用モデル API

すべての AI モデルの基盤を提供するために、汎用モデル API が作成されました。これにより、共通のパターンに従うことで、Spring AI に新しい AI モデルのサポートを簡単に提供できるようになります。次のセクションでは、この API について説明します。

クラス図

spring ai generic model api

モデル

モデルインターフェースは、AI モデルを呼び出すための汎用 API を提供します。これは、リクエストの送信とレスポンスの受信のプロセスを抽象化することで、さまざまな型の AI モデルとのやり取りを処理するように設計されています。このインターフェースは、Java ジェネリクスを使用してさまざまな種類のリクエストとレスポンスに対応し、さまざまな AI モデルの実装にわたる柔軟性と適応性を高めます。

インターフェースは以下のように定義されています。

public interface Model<TReq extends ModelRequest<?>, TRes extends ModelResponse<?>> {

	/**
	 * Executes a method call to the AI model.
	 * @param request the request object to be sent to the AI model
	 * @return the response from the AI model
	 */
	TRes call(TReq request);

}

StreamingModel

StreamingModel インターフェースは、ストリーミングレスポンスで AI モデルを呼び出すための汎用 API を提供します。リクエストの送信とストリーミングレスポンスの受信のプロセスを抽象化します。このインターフェースは、Java ジェネリクスを使用してさまざまな種類のリクエストとレスポンスに対応し、さまざまな AI モデルの実装にわたる柔軟性と適応性を高めます。

public interface StreamingModel<TReq extends ModelRequest<?>, TResChunk extends ModelResponse<?>> {

	/**
	 * Executes a method call to the AI model.
	 * @param request the request object to be sent to the AI model
	 * @return the streaming response from the AI model
	 */
	Flux<TResChunk> stream(TReq request);

}

ModelRequest

AI モデルへのリクエストを表すインターフェース。このインターフェースには、(ジェネリクス型 T の) 命令または入力、追加のモデルオプションなど、AI モデルと対話するために必要な情報がカプセル化されています。これは、AI モデルにリクエストを送信するための標準化された方法を提供し、必要なすべての詳細が確実に含まれ、簡単に管理できるようにします。

public interface ModelRequest<T> {

	/**
	 * Retrieves the instructions or input required by the AI model.
	 * @return the instructions or input required by the AI model
	 */
	T getInstructions(); // required input

	/**
	 * Retrieves the customizable options for AI model interactions.
	 * @return the customizable options for AI model interactions
	 */
	ModelOptions getOptions();

}

ModelOptions

AI モデルのインタラクションのカスタマイズ可能なオプションを表すインターフェース。このマーカーインターフェースを使用すると、AI モデルの動作と出力に影響を与える可能性があるさまざまな設定とパラメーターを指定できます。さまざまな AI シナリオで柔軟性と適応性を提供するように設計されており、特定の要件に応じて AI モデルを微調整できるようになります。

public interface ModelOptions {

}

ModelResponse

AI モデルから受信したレスポンスを表すインターフェース。このインターフェースは、レスポンスメタデータとともに、AI モデルによって生成された主な結果または結果のリストにアクセスするためのメソッドを提供します。これは、AI モデルからの出力をカプセル化して管理するための標準化されたメソッドとして機能し、生成された情報の簡単な検索と処理を保証します。

public interface ModelResponse<T extends ModelResult<?>> {

	/**
	 * Retrieves the result of the AI model.
	 * @return the result generated by the AI model
	 */
	T getResult();

	/**
	 * Retrieves the list of generated outputs by the AI model.
	 * @return the list of generated outputs
	 */
	List<T> getResults();

	/**
	 * Retrieves the response metadata associated with the AI model's response.
	 * @return the response metadata
	 */
	ResponseMetadata getMetadata();

}

ModelResult

このインターフェースは、AI モデルの主な出力と、この結果に関連付けられたメタデータにアクセスするためのメソッドを提供します。AI モデルによって生成された出力を処理および解釈するための標準化された包括的なメソッドを提供するように設計されています。

public interface ModelResult<T> {

	/**
	 * Retrieves the output generated by the AI model.
	 * @return the output generated by the AI model
	 */
	T getOutput();

	/**
	 * Retrieves the metadata associated with the result of an AI model.
	 * @return the metadata associated with the result
	 */
	ResultMetadata getMetadata();

}