Generic Model API

为了给所有 AI 模型客户端提供基础,创建了通用模型 API。这使得通过遵循通用模式可以轻松地为 Spring AI 提供新的 AI 模型支持。以下部分将介绍此 API。

类图

ModelClient

ModelClient接口提供了调用AI模型的通用API。它旨在通过抽象发送请求和接收响应的过程来处理与各种类型的人工智能模型的交互。该接口使用Java泛型来适应不同类型的请求和响应,增强了不同AI模型实现的灵活性和适应性。

接口定义如下:

public interface ModelClient<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);

}

StreamingModelClient

StreamingModelClient 接口提供了一个通用 API,用于调用具有流响应的 AI 模型。它抽象了发送请求和接收流响应的过程。该接口使用Java泛型来适应不同类型的请求和响应,增强了不同AI模型实现的灵活性和适应性。

public interface StreamingModelClient<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 模型的请求的接口。该接口封装了与 AI 模型交互所需的必要信息,包括指令或输入(通用类型 T)以及其他模型选项。它提供了一种向人工智能模型发送请求的标准化方法,确保包含所有必要的详细信息并且可以轻松管理。

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 模型交互的可自定义选项的界面。该标记界面允许指定可以影响人工智能模型的行为和输出的各种设置和参数。它旨在提供不同人工智能场景的灵活性和适应性,确保人工智能模型可以根据特定要求进行微调。

public interface ModelOptions {

}

ModelResponse

表示从 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 模型的主要输出以及与该结果相关的元数据的方法。它旨在提供一种标准化且全面的方法来处理和解释人工智能模型生成的输出。

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

}
作者:Jeebiz  创建时间:2024-04-05 22:10
最后编辑:Jeebiz  更新时间:2024-07-06 19:00