mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-18 09:57:59 +00:00
Add support for context materials in SWOT Analysis
This commit is contained in:
1 parent
4b04a3b2c8
commit
f74f4030be
3 files changed
+53
-17
No files matched your search
@@ -1,4 +1,5 @@
|
||||
using AIStudio.Dialogs.Settings;
|
||||
using AIStudio.Chat;
|
||||
using AIStudio.Dialogs.Settings;
|
||||
using AIStudio.Tools.AssistantSessions;
|
||||
|
||||
namespace AIStudio.Assistants.SWOTAnalysis;
|
||||
@@ -50,6 +51,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
{
|
||||
this.inputText = string.Empty;
|
||||
this.analysisGoal = string.Empty;
|
||||
this.contextMaterials.Clear();
|
||||
if (!this.MightPreselectValues())
|
||||
{
|
||||
this.showWebContentReader = false;
|
||||
@@ -80,6 +82,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
private string inputText = string.Empty;
|
||||
private string analysisGoal = string.Empty;
|
||||
private string importantAspects = string.Empty;
|
||||
private HashSet<FileAttachment> contextMaterials = [];
|
||||
private bool isAgentRunning;
|
||||
private CommonLanguages selectedTargetLanguage = CommonLanguages.AS_IS;
|
||||
private string customTargetLanguage = string.Empty;
|
||||
@@ -88,6 +91,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
private static readonly AssistantSessionStateKey<string> INPUT_TEXT_STATE_KEY = new(nameof(inputText));
|
||||
private static readonly AssistantSessionStateKey<string> ANALYSIS_GOAL_STATE_KEY = new(nameof(analysisGoal));
|
||||
private static readonly AssistantSessionStateKey<string> IMPORTANT_ASPECTS_STATE_KEY = new(nameof(importantAspects));
|
||||
private static readonly AssistantSessionStateKey<HashSet<FileAttachment>> CONTEXT_MATERIALS_STATE_KEY = new(nameof(contextMaterials));
|
||||
private static readonly AssistantSessionStateKey<bool> IS_AGENT_RUNNING_STATE_KEY = new(nameof(isAgentRunning));
|
||||
private static readonly AssistantSessionStateKey<CommonLanguages> SELECTED_TARGET_LANGUAGE_STATE_KEY = new(nameof(selectedTargetLanguage));
|
||||
private static readonly AssistantSessionStateKey<string> CUSTOM_TARGET_LANGUAGE_STATE_KEY = new(nameof(customTargetLanguage));
|
||||
@@ -100,6 +104,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
state.Set(INPUT_TEXT_STATE_KEY, this.inputText);
|
||||
state.Set(ANALYSIS_GOAL_STATE_KEY, this.analysisGoal);
|
||||
state.Set(IMPORTANT_ASPECTS_STATE_KEY, this.importantAspects);
|
||||
state.SetHashSet(CONTEXT_MATERIALS_STATE_KEY, this.contextMaterials);
|
||||
state.Set(IS_AGENT_RUNNING_STATE_KEY, this.isAgentRunning);
|
||||
state.Set(SELECTED_TARGET_LANGUAGE_STATE_KEY, this.selectedTargetLanguage);
|
||||
state.Set(CUSTOM_TARGET_LANGUAGE_STATE_KEY, this.customTargetLanguage);
|
||||
@@ -113,6 +118,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
state.Restore(INPUT_TEXT_STATE_KEY, value => this.inputText = value);
|
||||
state.Restore(ANALYSIS_GOAL_STATE_KEY, value => this.analysisGoal = value);
|
||||
state.Restore(IMPORTANT_ASPECTS_STATE_KEY, value => this.importantAspects = value);
|
||||
state.RestoreHashSet(CONTEXT_MATERIALS_STATE_KEY, this.contextMaterials);
|
||||
state.Restore(IS_AGENT_RUNNING_STATE_KEY, value => this.isAgentRunning = value);
|
||||
state.Restore(SELECTED_TARGET_LANGUAGE_STATE_KEY, value => this.selectedTargetLanguage = value);
|
||||
state.Restore(CUSTOM_TARGET_LANGUAGE_STATE_KEY, value => this.customTargetLanguage = value);
|
||||
@@ -139,6 +145,14 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
return null;
|
||||
}
|
||||
|
||||
private string? ValidatingAnalysisGoal(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text))
|
||||
return T("Please describe the goal the SWOT analysis should support.");
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private string? ValidateCustomLanguage(string language)
|
||||
{
|
||||
if (this.selectedTargetLanguage == CommonLanguages.OTHER && string.IsNullOrWhiteSpace(language))
|
||||
@@ -149,9 +163,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
|
||||
private string BuildUserRequest()
|
||||
{
|
||||
var analysisGoal = string.IsNullOrWhiteSpace(this.analysisGoal)
|
||||
? "No specific analysis goal was provided."
|
||||
: $"Analysis goal: {this.analysisGoal}";
|
||||
var analysisGoal = $"Analysis goal: {this.analysisGoal}";
|
||||
var analysisFocus = string.IsNullOrWhiteSpace(this.importantAspects)
|
||||
? "No additional analysis focus was provided."
|
||||
: $"Analysis focus: {this.importantAspects}";
|
||||
@@ -175,7 +187,7 @@ public partial class AssistantSWOTAnalysis : AssistantBaseCore<SettingsDialogSWO
|
||||
return;
|
||||
|
||||
this.CreateChatThread();
|
||||
var time = this.AddUserRequest(this.BuildUserRequest(), hideContentFromUser: true);
|
||||
var time = this.AddUserRequest(this.BuildUserRequest(), hideContentFromUser: true, this.contextMaterials.ToList());
|
||||
|
||||
await this.AddAIResponseAsync(time);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user