import { AiCharacters } from "../../schema/schema"; import { ConfigManager } from "../manager/ConfigManager"; /** * 角色配置映射 * 将角色ID映射到对应的System Instruction */ export class RoleConfigLoader { /** * 根据角色ID获取对应的System Instruction * @param roleId 角色ID * @returns System Instruction字符串,如果未找到则返回默认Role_1 */ public static getRoleInstruction(roleId: number): string { const AiCharacter = ConfigManager.tables.TbAiCharacters.get(roleId); const globalPrompt = ConfigManager.tables.TbGlobalConfig.girlBasePrompt; const prompt = globalPrompt + "\n" + AiCharacter.basePrompt + "\n" + AiCharacter.additionPrompt; console.log(AiCharacter.basePrompt); console.log(AiCharacter.additionPrompt); return prompt; } /** * 根据角色ID获取对应的情绪机器人prompt * @param roleId 角色ID * @returns System Instruction字符串,如果未找到则返回默认Role_1 */ public static getEmotionInstruction(roleId: number): string { const AiCharacter = ConfigManager.tables.TbAiCharacters.get(roleId); const globalPrompt = ConfigManager.tables.TbGlobalConfig.EmotionBasePrompt; const prompt = globalPrompt + "\n" + AiCharacter.basePrompt; return prompt; } /** * 检查角色是否存在配置 * @param roleId 角色ID */ public static hasRole(roleId: number): boolean { return ConfigManager.tables.TbAiCharacters.get(roleId) != null; } /** * 获取所有配置的角色ID */ public static getAllRoles(): AiCharacters[] { return ConfigManager.tables.TbAiCharacters.getDataList(); } }