// 配置管理文件
export const config = {
  // LLM API配置
  llm: {
    apiKey: 'd012651b-a65b-4b13-8ff3-cc4ff3a29783', // 请替换为实际的API密钥
    model: 'bot-20250730213756-l627w',
  },
  
  // Minimaxi API配置
  minimaxi: {
    apiKey: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJHcm91cE5hbWUiOiLkuIrmtbfpopzpgJTnp5HmioDmnInpmZDlhazlj7giLCJVc2VyTmFtZSI6IuadqOmqpSIsIkFjY291bnQiOiIiLCJTdWJqZWN0SUQiOiIxNzI4NzEyMzI0OTc5NjI2ODM5IiwiUGhvbmUiOiIxMzM4MTU1OTYxOCIsIkdyb3VwSUQiOiIxNzI4NzEyMzI0OTcxMjM4MjMxIiwiUGFnZU5hbWUiOiIiLCJNYWlsIjoiIiwiQ3JlYXRlVGltZSI6IjIwMjUtMDYtMTYgMTY6Mjk6NTkiLCJUb2tlblR5cGUiOjEsImlzcyI6Im1pbmltYXgifQ.D_JF0-nO89NdMZCYq4ocEyqxtZ9SeEdtMvbeSkZTWspt0XfX2QpPAVh-DI3MCPZTeSmjNWLf4fA_Th2zpVrj4UxWMbGKBeLZWLulNpwAHGMUTdqenuih3daCDPCzs0duhlFyQnZgGcEOGQ476HL72N2klujP8BUy_vfAh_Zv0po-aujQa5RxardDSOsbs49NTPEw0SQEXwaJ5bVmiZ5s-ysJ9pZWSEiyJ6SX9z3JeZHKj9DxHdOw5roZR8izo54e4IoqyLlzEfhOMW7P15-ffDH3M6HGiEmeBaGRYGAIciELjZS19ONNMKsTj-wXNGWtKG-sjAB1uuqkkT5Ul9Dunw', // 请替换为实际的API密钥
    groupId: '1728712324971238231', // 请替换为实际的Group ID
  },
  
  // 音频配置
  audio: {
    model: 'speech-02-hd',
    voiceSetting: {
      voice_id: 'yantu-qinggang-3',
      speed: 1,
      vol: 1,
      pitch: 0,
      // emotion: 'happy',
    },
    audioSetting: {
      sample_rate: 32000,
      bitrate: 128000,
      format: 'mp3',
    },
  },
  
  // 系统配置
  system: {
    language_boost: 'auto',
    output_format: 'hex',
    stream: true,
  },
};

// 验证配置是否完整
export function validateConfig() {
  const requiredFields = [
    'llm.apiKey',
    'llm.model',
    'minimaxi.apiKey',
    'minimaxi.groupId'
  ];
  
  const missingFields = [];
  
  for (const field of requiredFields) {
    const keys = field.split('.');
    let value = config;
    for (const key of keys) {
      value = value[key];
      if (!value) break;
    }
    
    if (!value || value === 'your_ark_api_key_here' || value === 'your_minimaxi_api_key_here' || value === 'your_minimaxi_group_id_here') {
      missingFields.push(field);
    }
  }
  
  if (missingFields.length > 0) {
    console.warn('配置不完整，请检查以下字段:', missingFields);
    return false;
  }
  
  return true;
}

// 获取配置的便捷方法
export function getLLMConfig(sceneApiKey = null) {
  return {
    apiKey: config.llm.apiKey, // 如果提供了场景API key，则使用它
    model: sceneApiKey || config.llm.model,
  };
}


// 新增：根据场景获取LLM配置
export async function getLLMConfigByScene() {
  try {
    const response = await fetch('/api/current-scene');
    const sceneData = await response.json();
    
    return {
      apiKey: config.llm.apiKey,
      model: sceneData.apiKey,
      sceneTag: sceneData.tag,
      sceneName: sceneData.name
    };
  } catch (error) {
    console.warn('获取场景配置失败，使用默认配置:', error);
    return getLLMConfig(); // 回退到默认配置
  }
}

export function getMinimaxiConfig() {
  return {
    apiKey: config.minimaxi.apiKey,
    groupId: config.minimaxi.groupId,
  };
}

export function getAudioConfig() {
  return {
    model: config.audio.model,
    voiceSetting: config.audio.voiceSetting,
    audioSetting: config.audio.audioSetting,
    ...config.system,
  };
} 
