汎用モデル API
すべての AI モデルの基盤を提供するために、汎用モデル API が作成されました。これにより、共通のパターンに従うことで、Spring AI に新しい AI モデルのサポートを簡単に提供できるようになります。次のセクションでは、この 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
The ModelOptions
interface represents the customizable options for AI model interactions. This marker interface allows for the specification of various settings and parameters that can influence the behavior and output of AI models. It is designed to provide flexibility and adaptability in different AI scenarios, ensuring that the AI models can be fine-tuned according to specific requirements.
public interface ModelOptions {
}
ModelResponse
The ModelResponse
interface represents the response received from an AI model. This interface provides methods to access the main result or a list of results generated by the AI model, along with the response metadata. It serves as a standardized way to encapsulate and manage the output from AI models, ensuring easy retrieval and processing of the generated information.
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
The ModelResult
interface provides methods to access the main output of the AI model and the metadata associated with this result. It is designed to offer a standardized and comprehensive way to handle and interpret the outputs generated by AI models.
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();
}