56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
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();
|
|
}
|
|
}
|