diff --git a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs index 49ccaf8b..7a1296cc 100644 --- a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs +++ b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs @@ -308,7 +308,7 @@ public partial class AssistantERI : AssistantBaseCore protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with { - SystemPrompt = SystemPrompts.DEFAULT, + SystemPrompt = this.SystemPrompt, }; protected override void ResetForm() @@ -920,7 +920,8 @@ public partial class AssistantERI : AssistantBaseCore return; } - this.CreateChatThread(); + var now = DateTimeOffset.UtcNow; + this.CreateChatThread(KnownWorkspaces.ERI_SERVER_WORKSPACE_ID, $"{now:yyyy-MM-dd HH:mm} - {this.serverName}"); // // --------------------------------- @@ -971,5 +972,7 @@ public partial class AssistantERI : AssistantBaseCore """, true); await this.AddAIResponseAsync(time); } + + await this.SendToAssistant(Tools.Components.CHAT, default); } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Chat/KnownWorkspaces.cs b/app/MindWork AI Studio/Chat/KnownWorkspaces.cs index be19ad2c..eee1bbdf 100644 --- a/app/MindWork AI Studio/Chat/KnownWorkspaces.cs +++ b/app/MindWork AI Studio/Chat/KnownWorkspaces.cs @@ -3,4 +3,5 @@ namespace AIStudio.Chat; public static class KnownWorkspaces { public static readonly Guid BIAS_WORKSPACE_ID = Guid.Parse("82050a4e-ee92-43d7-8ee5-ab512f847e02"); + public static readonly Guid ERI_SERVER_WORKSPACE_ID = Guid.Parse("8ec09cd3-9da7-4736-b245-2d8b67fc342f"); } \ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Chat.razor.cs b/app/MindWork AI Studio/Pages/Chat.razor.cs index fc5f23c1..74d27a7e 100644 --- a/app/MindWork AI Studio/Pages/Chat.razor.cs +++ b/app/MindWork AI Studio/Pages/Chat.razor.cs @@ -60,9 +60,6 @@ public partial class Chat : MSGComponentBase, IAsyncDisposable // Configure the spellchecking for the user input: this.SettingsManager.InjectSpellchecking(USER_INPUT_ATTRIBUTES); - - // Ensure the bias workspace exists: - await WorkspaceBehaviour.EnsureBiasWorkspace(); this.currentProfile = this.SettingsManager.GetPreselectedProfile(Tools.Components.CHAT); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_CHAT).FirstOrDefault(); @@ -88,6 +85,13 @@ public partial class Chat : MSGComponentBase, IAsyncDisposable { this.autoSaveEnabled = true; this.mustStoreChat = true; + + // Ensure the workspace exists: + if(this.chatThread.WorkspaceId == KnownWorkspaces.ERI_SERVER_WORKSPACE_ID) + await WorkspaceBehaviour.EnsureERIServerWorkspace(); + + else if (this.chatThread.WorkspaceId == KnownWorkspaces.BIAS_WORKSPACE_ID) + await WorkspaceBehaviour.EnsureBiasWorkspace(); } } diff --git a/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs b/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs index 58cc70b5..a054232f 100644 --- a/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs +++ b/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs @@ -118,15 +118,19 @@ public static class WorkspaceBehaviour Directory.Delete(chatDirectory, true); } - public static async Task EnsureBiasWorkspace() + private static async Task EnsureWorkspace(Guid workspaceId, string workspaceName) { - var workspacePath = Path.Join(SettingsManager.DataDirectory, "workspaces", KnownWorkspaces.BIAS_WORKSPACE_ID.ToString()); + var workspacePath = Path.Join(SettingsManager.DataDirectory, "workspaces", workspaceId.ToString()); if(Path.Exists(workspacePath)) return; Directory.CreateDirectory(workspacePath); var workspaceNamePath = Path.Join(workspacePath, "name"); - await File.WriteAllTextAsync(workspaceNamePath, "Bias of the Day", Encoding.UTF8); + await File.WriteAllTextAsync(workspaceNamePath, workspaceName, Encoding.UTF8); } + + public static async Task EnsureBiasWorkspace() => await EnsureWorkspace(KnownWorkspaces.BIAS_WORKSPACE_ID, "Bias of the Day"); + + public static async Task EnsureERIServerWorkspace() => await EnsureWorkspace(KnownWorkspaces.ERI_SERVER_WORKSPACE_ID, "ERI Servers"); } \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.9.23.md b/app/MindWork AI Studio/wwwroot/changelog/v0.9.23.md index ae964d7c..e1c4498a 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v0.9.23.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.9.23.md @@ -1,5 +1,6 @@ # v0.9.23, build 198 (2024-12-xx xx:xx UTC) - Added an ERI server coding assistant as a preview feature behind the RAG feature flag. This helps you implement an ERI server to gain access to, e.g., your enterprise data from within AI Studio. - Improved provider requests by handling rate limits by retrying requests. +- Improved the creation of the "the bias of the day" workspace; create that workspace only when the bias of the day feature is used. - Fixed layout issues when selecting `other` items (e.g., programming languages). - Fixed a bug about the bias of the day workspace when the workspace component was hidden. \ No newline at end of file