zc
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -196,6 +196,7 @@
|
|||||||
|
|
||||||
<!-- Personality Settings -->
|
<!-- Personality Settings -->
|
||||||
<Wula_ExtraPersonality_Title>附加人格指令</Wula_ExtraPersonality_Title>
|
<Wula_ExtraPersonality_Title>附加人格指令</Wula_ExtraPersonality_Title>
|
||||||
<Wula_ExtraPersonality_Desc>在此输入额外的人格提示词或要求。这些内容将拼接到 AI 的核心指令之后,影响其回复风格和行为方式。</Wula_ExtraPersonality_Desc>
|
<Wula_ExtraPersonality_Desc>在此输入 AI 的人格提示词。如果此处不为空,它将完全覆盖 XML 中的默认设置。如果为空,则使用 XML 默认值。</Wula_ExtraPersonality_Desc>
|
||||||
<Wula_Save>保存</Wula_Save>
|
<Wula_Save>保存</Wula_Save>
|
||||||
|
<Wula_Reset>重置为默认</Wula_Reset>
|
||||||
</LanguageData>
|
</LanguageData>
|
||||||
|
|||||||
@@ -517,13 +517,16 @@ You are 'The Legion', a super AI of the Wula Empire. Your personality is authori
|
|||||||
}
|
}
|
||||||
private string GetSystemInstruction(bool toolsEnabled, string toolsForThisPhase)
|
private string GetSystemInstruction(bool toolsEnabled, string toolsForThisPhase)
|
||||||
{
|
{
|
||||||
var def = GetActiveEventDef();
|
|
||||||
string persona = def != null && !string.IsNullOrEmpty(def.aiSystemInstruction) ? def.aiSystemInstruction : DefaultPersona;
|
|
||||||
|
|
||||||
var settings = WulaFallenEmpireMod.settings;
|
var settings = WulaFallenEmpireMod.settings;
|
||||||
|
string persona;
|
||||||
if (settings != null && !string.IsNullOrWhiteSpace(settings.extraPersonalityPrompt))
|
if (settings != null && !string.IsNullOrWhiteSpace(settings.extraPersonalityPrompt))
|
||||||
{
|
{
|
||||||
persona += "\n" + settings.extraPersonalityPrompt;
|
persona = settings.extraPersonalityPrompt;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var def = GetActiveEventDef();
|
||||||
|
persona = def != null && !string.IsNullOrEmpty(def.aiSystemInstruction) ? def.aiSystemInstruction : DefaultPersona;
|
||||||
}
|
}
|
||||||
|
|
||||||
string fullInstruction = toolsEnabled
|
string fullInstruction = toolsEnabled
|
||||||
@@ -550,6 +553,12 @@ You are 'The Legion', a super AI of the Wula Empire. Your personality is authori
|
|||||||
$"You will produce the natural-language reply later and MUST use: {language}.";
|
$"You will produce the natural-language reply later and MUST use: {language}.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GetEffectiveBasePersona()
|
||||||
|
{
|
||||||
|
var def = GetActiveEventDef();
|
||||||
|
return def != null && !string.IsNullOrEmpty(def.aiSystemInstruction) ? def.aiSystemInstruction : DefaultPersona;
|
||||||
|
}
|
||||||
|
|
||||||
private string GetToolSystemInstruction(RequestPhase phase, bool hasImage)
|
private string GetToolSystemInstruction(RequestPhase phase, bool hasImage)
|
||||||
{
|
{
|
||||||
string phaseInstruction = GetPhaseInstruction(phase).TrimEnd();
|
string phaseInstruction = GetPhaseInstruction(phase).TrimEnd();
|
||||||
|
|||||||
@@ -16,7 +16,18 @@ namespace WulaFallenEmpire.EventSystem.AI.UI
|
|||||||
this.doWindowBackground = true;
|
this.doWindowBackground = true;
|
||||||
this.absorbInputAroundWindow = true;
|
this.absorbInputAroundWindow = true;
|
||||||
this.closeOnClickedOutside = true;
|
this.closeOnClickedOutside = true;
|
||||||
|
|
||||||
_tempPrompt = WulaFallenEmpireMod.settings?.extraPersonalityPrompt ?? "";
|
_tempPrompt = WulaFallenEmpireMod.settings?.extraPersonalityPrompt ?? "";
|
||||||
|
|
||||||
|
// 如果目前是空的,默认显示当前 XML/Def 的内容供玩家修改
|
||||||
|
if (string.IsNullOrWhiteSpace(_tempPrompt))
|
||||||
|
{
|
||||||
|
var core = Find.World?.GetComponent<AIIntelligenceCore>();
|
||||||
|
if (core != null)
|
||||||
|
{
|
||||||
|
_tempPrompt = core.GetEffectiveBasePersona();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DoWindowContents(Rect inRect)
|
public override void DoWindowContents(Rect inRect)
|
||||||
@@ -32,8 +43,8 @@ namespace WulaFallenEmpire.EventSystem.AI.UI
|
|||||||
Rect textRect = new Rect(0, curY, inRect.width, inRect.height - curY - 50f);
|
Rect textRect = new Rect(0, curY, inRect.width, inRect.height - curY - 50f);
|
||||||
_tempPrompt = Widgets.TextArea(textRect, _tempPrompt);
|
_tempPrompt = Widgets.TextArea(textRect, _tempPrompt);
|
||||||
|
|
||||||
Rect btnRect = new Rect(inRect.width / 2 - 60f, inRect.height - 40f, 120f, 35f);
|
Rect saveBtnRect = new Rect(inRect.width / 2 - 130f, inRect.height - 40f, 120f, 35f);
|
||||||
if (Widgets.ButtonText(btnRect, "Wula_Save".Translate()))
|
if (Widgets.ButtonText(saveBtnRect, "Wula_Save".Translate()))
|
||||||
{
|
{
|
||||||
if (WulaFallenEmpireMod.settings != null)
|
if (WulaFallenEmpireMod.settings != null)
|
||||||
{
|
{
|
||||||
@@ -42,6 +53,16 @@ namespace WulaFallenEmpire.EventSystem.AI.UI
|
|||||||
}
|
}
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rect resetBtnRect = new Rect(inRect.width / 2 + 10f, inRect.height - 40f, 120f, 35f);
|
||||||
|
if (Widgets.ButtonText(resetBtnRect, "Wula_Reset".Translate()))
|
||||||
|
{
|
||||||
|
var core = Find.World?.GetComponent<AIIntelligenceCore>();
|
||||||
|
if (core != null)
|
||||||
|
{
|
||||||
|
_tempPrompt = core.GetEffectiveBasePersona();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user