mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-08-11 19:32:10 +00:00
Added support for stopping a running build session
This commit is contained in:
parent
d658d6f77a
commit
832b5e32cc
@ -2278,6 +2278,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
|
||||
-- Kind
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1073024099"] = "Kind"
|
||||
|
||||
-- Stop build
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1150899861"] = "Stop build"
|
||||
|
||||
-- Running
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1160324588"] = "Running"
|
||||
|
||||
@ -2593,6 +2596,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
|
||||
-- Audience expertise
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4279519256"] = "Audience expertise"
|
||||
|
||||
-- Stopping build...
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4290803141"] = "Stopping build..."
|
||||
|
||||
-- If you need help, report the problem and include the project ID.
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4292361710"] = "If you need help, report the problem and include the project ID."
|
||||
|
||||
|
||||
@ -228,6 +228,16 @@
|
||||
</span>
|
||||
</MudTooltip>
|
||||
}
|
||||
@if (this.CurrentBuildSession?.IsActive == true)
|
||||
{
|
||||
<MudButton Variant="Variant.Filled"
|
||||
Color="Color.Error"
|
||||
StartIcon="@Icons.Material.Filled.Stop"
|
||||
OnClick="@this.CancelCurrentBuildAsync"
|
||||
Disabled="@this.IsCurrentBuildCanceling">
|
||||
@(this.IsCurrentBuildCanceling ? T("Stopping build...") : T("Stop build"))
|
||||
</MudButton>
|
||||
}
|
||||
</MudStack>
|
||||
</MudForm>
|
||||
|
||||
|
||||
@ -7,13 +7,20 @@ namespace AIStudio.Assistants.VisualBriefing;
|
||||
|
||||
public partial class VisualBriefingAssistant
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the active or canceling build session for the selected briefing.
|
||||
/// </summary>
|
||||
private AssistantSessionSnapshot? CurrentBuildSession => this.selectedBriefing is null ? null : this.AssistantSessionService.TryGetSnapshot(CreateBuildSessionKey(this.selectedBriefing.BriefingId));
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether cancellation was already requested for the selected briefing build.
|
||||
/// </summary>
|
||||
private bool IsCurrentBuildCanceling => this.CurrentBuildSession?.Status is AssistantSessionStatus.CANCELING;
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether the selected revision cannot be recompiled without model calls.
|
||||
/// </summary>
|
||||
private bool CannotRecompile => this.IsCurrentBusy ||
|
||||
this.selectedBriefing is null ||
|
||||
this.selectedRevisionId == Guid.Empty ||
|
||||
!this.SelectedVersionSupportsEdits;
|
||||
private bool CannotRecompile => this.IsCurrentBusy || this.selectedBriefing is null || this.selectedRevisionId == Guid.Empty || !this.SelectedVersionSupportsEdits;
|
||||
|
||||
/// <summary>
|
||||
/// Defines <c>CannotGenerate</c> for the visual briefing feature.
|
||||
@ -106,7 +113,7 @@ public partial class VisualBriefingAssistant
|
||||
var generationProvider = this.provider;
|
||||
var generationProfile = this.profile;
|
||||
|
||||
var sessionKey = new AssistantSessionKey(ComponentKind.VISUAL_BRIEFING_ASSISTANT, briefingId.ToString("D"));
|
||||
var sessionKey = CreateBuildSessionKey(briefingId);
|
||||
if (this.AssistantSessionService.TryGetSnapshot(sessionKey)?.IsActive == true)
|
||||
return;
|
||||
|
||||
@ -140,12 +147,13 @@ public partial class VisualBriefingAssistant
|
||||
|
||||
if (!generation.Success || generation.Version is null)
|
||||
{
|
||||
this.reusableContentBuildId = generation.CanContinueAsRebuild
|
||||
? generation.Diagnostics.BuildId
|
||||
: null;
|
||||
terminalStatus = generation.FailureCode is VisualBriefingFailureCode.CANCELED ? AssistantSessionStatus.CANCELED : AssistantSessionStatus.FAILED;
|
||||
this.reusableContentBuildId = generation.CanContinueAsRebuild ? generation.Diagnostics.BuildId : null;
|
||||
|
||||
terminalIssue = generation.Issue;
|
||||
this.Snackbar.Add(generation.Issue, Severity.Error);
|
||||
if (terminalStatus is not AssistantSessionStatus.CANCELED)
|
||||
this.Snackbar.Add(generation.Issue, Severity.Error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -211,7 +219,7 @@ public partial class VisualBriefingAssistant
|
||||
|
||||
var recompileBriefing = this.selectedBriefing;
|
||||
var briefingId = recompileBriefing.BriefingId;
|
||||
var sessionKey = new AssistantSessionKey(ComponentKind.VISUAL_BRIEFING_ASSISTANT, briefingId.ToString("D"));
|
||||
var sessionKey = CreateBuildSessionKey(briefingId);
|
||||
if (this.AssistantSessionService.TryGetSnapshot(sessionKey)?.IsActive == true)
|
||||
return;
|
||||
|
||||
@ -241,8 +249,11 @@ public partial class VisualBriefingAssistant
|
||||
|
||||
if (!result.Success || result.Version is null)
|
||||
{
|
||||
terminalStatus = result.FailureCode is VisualBriefingFailureCode.CANCELED ? AssistantSessionStatus.CANCELED : AssistantSessionStatus.FAILED;
|
||||
terminalIssue = result.Issue;
|
||||
this.Snackbar.Add(result.Issue, Severity.Error);
|
||||
if (terminalStatus is not AssistantSessionStatus.CANCELED)
|
||||
this.Snackbar.Add(result.Issue, Severity.Error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -371,6 +382,22 @@ public partial class VisualBriefingAssistant
|
||||
parentRevisionOverride: this.latestBuild.ParentRevisionId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Requests cancellation for the build running on the selected briefing.
|
||||
/// </summary>
|
||||
private async Task CancelCurrentBuildAsync()
|
||||
{
|
||||
if (this.selectedBriefing is null)
|
||||
return;
|
||||
|
||||
var sessionKey = CreateBuildSessionKey(this.selectedBriefing.BriefingId);
|
||||
if (this.AssistantSessionService.TryGetSnapshot(sessionKey)?.Status is not AssistantSessionStatus.RUNNING)
|
||||
return;
|
||||
|
||||
await this.AssistantSessionService.CancelAsync(sessionKey, this);
|
||||
this.StateHasChanged();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the six UI groups for the eight durable build stages.
|
||||
/// </summary>
|
||||
@ -506,7 +533,11 @@ public partial class VisualBriefingAssistant
|
||||
if (this.generatingBriefings.Contains(briefingId))
|
||||
return true;
|
||||
|
||||
var key = new AssistantSessionKey(ComponentKind.VISUAL_BRIEFING_ASSISTANT, briefingId.ToString("D"));
|
||||
return this.AssistantSessionService.TryGetSnapshot(key)?.IsActive == true;
|
||||
return this.AssistantSessionService.TryGetSnapshot(CreateBuildSessionKey(briefingId))?.IsActive == true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates the assistant-session key used by a visual briefing build.
|
||||
/// </summary>
|
||||
private static AssistantSessionKey CreateBuildSessionKey(Guid briefingId) => new(ComponentKind.VISUAL_BRIEFING_ASSISTANT, briefingId.ToString("D"));
|
||||
}
|
||||
@ -2280,6 +2280,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
|
||||
-- Kind
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1073024099"] = "Typ"
|
||||
|
||||
-- Stop build
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1150899861"] = "Erstellung stoppen"
|
||||
|
||||
-- Running
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1160324588"] = "Wird ausgeführt"
|
||||
|
||||
@ -2595,6 +2598,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
|
||||
-- Audience expertise
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4279519256"] = "Fachkenntnisse der Zielgruppe"
|
||||
|
||||
-- Stopping build...
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4290803141"] = "Erstellung wird angehalten …"
|
||||
|
||||
-- If you need help, report the problem and include the project ID.
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4292361710"] = "Wenn Sie Hilfe benötigen, melden Sie das Problem und geben Sie die Projekt-ID an."
|
||||
|
||||
|
||||
@ -2280,6 +2280,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
|
||||
-- Kind
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1073024099"] = "Kind"
|
||||
|
||||
-- Stop build
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1150899861"] = "Stop build"
|
||||
|
||||
-- Running
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1160324588"] = "Running"
|
||||
|
||||
@ -2595,6 +2598,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
|
||||
-- Audience expertise
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4279519256"] = "Audience expertise"
|
||||
|
||||
-- Stopping build...
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4290803141"] = "Stopping build..."
|
||||
|
||||
-- If you need help, report the problem and include the project ID.
|
||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4292361710"] = "If you need help, report the problem and include the project ID."
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user