From 770afa4a2345c0b5591cdf7b33f4e0b9a880eb09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Sat, 15 Mar 2025 22:42:26 -0300 Subject: [PATCH] Minor modifications. --- .../plugins/aiassistant/aiassistantplugin.cpp | 9 +++++++++ .../plugins/aiassistant/aiassistantplugin.hpp | 4 ++++ src/tools/ecode/plugins/aiassistant/chatui.cpp | 15 ++++++++------- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/tools/ecode/plugins/aiassistant/aiassistantplugin.cpp b/src/tools/ecode/plugins/aiassistant/aiassistantplugin.cpp index 739e51934..fab2e1bd3 100644 --- a/src/tools/ecode/plugins/aiassistant/aiassistantplugin.cpp +++ b/src/tools/ecode/plugins/aiassistant/aiassistantplugin.cpp @@ -124,6 +124,15 @@ AIAssistantPlugin::~AIAssistantPlugin() { getPluginContext()->getConfig().removeTabWidgetType( "llm_chatui" ); } +std::string AIAssistantPlugin::getPluginStatePath() const { + return getManager()->getPluginsPath() + "state" + FileSystem::getOSSlash() + "aiassistant" + + FileSystem::getOSSlash(); +} + +std::string AIAssistantPlugin::getConversationsPath() const { + return getPluginStatePath() + "chats" + FileSystem::getOSSlash(); +} + void AIAssistantPlugin::load( PluginManager* pluginManager ) { Clock clock; AtomicBoolScopedOp loading( mLoading, true ); diff --git a/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp b/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp index 9fc40fb55..e04dd7257 100644 --- a/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp +++ b/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp @@ -30,6 +30,10 @@ class AIAssistantPlugin : public PluginBase { const LLMProviders& getProviders() { return mProviders; } + std::string getPluginStatePath() const; + + std::string getConversationsPath() const; + protected: LLMProviders mProviders; bool mUIInit{ false }; diff --git a/src/tools/ecode/plugins/aiassistant/chatui.cpp b/src/tools/ecode/plugins/aiassistant/chatui.cpp index 0f836f9bc..3fc74fe8c 100644 --- a/src/tools/ecode/plugins/aiassistant/chatui.cpp +++ b/src/tools/ecode/plugins/aiassistant/chatui.cpp @@ -13,6 +13,7 @@ #include #include +#include #include using namespace EE::System; @@ -412,6 +413,9 @@ nlohmann::json LLMChatUI::serialize() { nlohmann::json j; j["uuid"] = mUUID.toString(); j["chat"] = serializeChat( mCurModel ); + j["provider"] = mCurModel.provider; + j["timestamp"] = std::chrono::system_clock::to_time_t( std::chrono::system_clock::now() ); + j["summary"] = mSummary; return j; } @@ -421,13 +425,10 @@ void LLMChatUI::saveChat() { auto plugin = getPlugin(); if ( plugin == nullptr ) return; - - std::string pluginsStatePath( plugin->getManager()->getPluginsPath() + "plugins_state" + - FileSystem::getOSSlash() + "aiassistant" + - FileSystem::getOSSlash() ); - if ( !FileSystem::fileExists( pluginsStatePath ) ) - FileSystem::makeDir( pluginsStatePath, true ); - std::string path( pluginsStatePath + mSummary + ".json" ); + std::string conversationsPath = plugin->getConversationsPath(); + if ( !FileSystem::fileExists( conversationsPath ) ) + FileSystem::makeDir( conversationsPath, true ); + std::string path( conversationsPath + mUUID.toString() + " - " + mSummary + ".json" ); FileSystem::fileWrite( path, serialize().dump( 2 ) ); }