package com.pavis.admin.aigc.core.llm.provider.build;

import com.pavis.admin.aigc.model.resp.ModelResp;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.chat.StreamingChatLanguageModel;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.model.image.ImageModel;

/**
 * @author GB
 * @since 2024-08-18 09:57
 */
public interface ModelBuildHandler {

    /**
     * 判断是不是当前模型
     */
    boolean whetherCurrentModel(ModelResp model);

    /**
     * basic check
     */
    boolean basicCheck(ModelResp model);

    /**
     * streaming chat build
     */
    StreamingChatLanguageModel buildStreamingChat(ModelResp model);

    /**
     * chat build
     */
    ChatLanguageModel buildChatLanguageModel(ModelResp model);

    /**
     * embedding config
     */
    EmbeddingModel buildEmbedding(ModelResp model);

    /**
     * image config
     */
    ImageModel buildImage(ModelResp model);

}
