package com.infoepoch.pms.agent.platform.model.adapter.out.ai;

import com.infoepoch.pms.agent.platform.model.domain.AiModelConfig;
import org.springframework.ai.chat.model.ChatModel;

/**
 * AI Provider ChatModel Builder Strategy.
 */
public interface ProviderChatModelBuilder {

    /**
     * @param providerType The type of the AI Model Provider (e.g. "DASHSCOPE").
     * @return true if this builder supports the given provider type.
     */
    boolean supports(String providerType);

    /**
     * Builds a Spring AI ChatModel based on the configuration.
     *
     * @param config the AI model config.
     * @return the constructed ChatModel.
     */
    ChatModel build(AiModelConfig config);
}
