All checks were successful
		
		
	
	Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3m36s
				
			
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // 配置管理文件
 | ||
| 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,
 | ||
|   };
 | ||
| } 
 |