汎用モデル API

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

クラス図

spring ai generic model api

モデル

Model インターフェースは、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

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

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

public interface ModelOptions {

}

ModelResponse

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

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();

}