package com.seer.teach.admin.service;

import com.fasterxml.jackson.databind.JsonNode;
import com.seer.teach.teacher.module.entity.AiScenarioConfigEntity;

import java.util.Map;

/**
 * AI模型调用策略接口
 * 用于根据不同场景处理不同的入参和出参
 *
 * @author System
 * @since 2025-10-28
 */
public interface AiModelCallStrategy {

    /**
     * 构建请求参数
     *
     * @param scenarioConfig 场景配置
     * @param params 业务参数
     * @return 构建后的请求参数
     */
    Map<String, Object> buildRequestParams(AiScenarioConfigEntity scenarioConfig, Map<String, Object> params);

    /**
     * 解析响应结果
     *
     * @param responseBody 响应体
     * @return 解析后的结果
     */
    Object parseResponse(String responseBody);

    /**
     * 获取支持的场景编码
     *
     * @return 场景编码
     */
    String getSupportedScenarioCode();
}