// 配置管理文件 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, }; }