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,
|
||
};
|
||
}
|