Track current personality and warn when the selected one is not active.

This commit is contained in:
Bartosz Taudul
2026-07-23 20:34:59 +02:00
parent 90c6ad80e1
commit 877efe4eda
2 changed files with 9 additions and 1 deletions
+8 -1
View File
@@ -309,6 +309,12 @@ void TracyLlm::Draw( WindowConstraints& constraints )
if( ImGui::RadioButton( ICON_FA_FACE_GRIN " Emotion", &s_config.llmPersonality, 1 ) ) SaveConfig();
ImGui::SameLine();
if( ImGui::RadioButton( ICON_FA_FACE_FROWN " Annoyed", &s_config.llmPersonality, 2 ) ) SaveConfig();
if( s_config.llmPersonality != m_personalityPrompt )
{
ImGui::SameLine();
TextColoredUnformatted( 0xFF00FFFF, ICON_FA_TRIANGLE_EXCLAMATION );
TooltipIfHovered( "Start fresh conversation to apply personality change" );
}
constraints.MarkMinWidth();
ImGui::Checkbox( ICON_FA_EARTH_AMERICAS " Internet access", &m_tools->m_netAccess );
@@ -998,6 +1004,7 @@ void TracyLlm::UpdateSystemPrompt()
for( auto& skill : m_skills ) skills += skill.name + ": " + skill.description + "\n";
auto systemPrompt = std::string( m_systemPrompt->data(), m_systemPrompt->size() );
m_personalityPrompt = std::clamp<size_t>( s_config.llmPersonality, 0, m_personality.size() - 1 );
Replace( systemPrompt, UserToken, userName );
Replace( systemPrompt, TimeToken, m_tools->GetCurrentTime() );
@@ -1007,7 +1014,7 @@ void TracyLlm::UpdateSystemPrompt()
Replace( systemPrompt, ProfileLengthToken, TimeToString( lastTime - firstTime ) );
Replace( systemPrompt, ProfileDescriptionToken, descStr );
Replace( systemPrompt, SkillsToken, skills );
Replace( systemPrompt, PersonalityToken, m_personality[std::clamp<size_t>( s_config.llmPersonality, 0, m_personality.size() - 1 )] );
Replace( systemPrompt, PersonalityToken, m_personality[m_personalityPrompt] );
if( !m_api || m_chatId.load( std::memory_order_acquire ) == 0 )
{
+1
View File
@@ -115,6 +115,7 @@ private:
float m_temperature = 1.0f;
bool m_setTemperature = false;
bool m_allThinkingRegions = false;
int m_personalityPrompt = -1;
char* m_input;
char* m_apiInput;