mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 12:20:21 +00:00 
			
		
		
		
	Added a "stop generation" button to assistants (#365)
	
		
			
	
		
	
	
		
	
		
			Some checks are pending
		
		
	
	
		
			
				
	
				Build and Release / Read metadata (push) Waiting to run
				
			
		
			
				
	
				Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg updater) (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg updater) (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage deb updater) (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Build app (linux-arm64) (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Prepare & create release (push) Blocked by required conditions
				
			
		
			
				
	
				Build and Release / Publish release (push) Blocked by required conditions
				
			
		
		
	
	
				
					
				
			
		
			Some checks are pending
		
		
	
	Build and Release / Read metadata (push) Waiting to run
				
			Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg updater) (push) Blocked by required conditions
				
			Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
				
			Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg updater) (push) Blocked by required conditions
				
			Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
				
			Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage deb updater) (push) Blocked by required conditions
				
			Build and Release / Build app (linux-arm64) (push) Blocked by required conditions
				
			Build and Release / Prepare & create release (push) Blocked by required conditions
				
			Build and Release / Publish release (push) Blocked by required conditions
				
			This commit is contained in:
		
							parent
							
								
									b948909afa
								
							
						
					
					
						commit
						c67f17cf41
					
				@ -28,10 +28,17 @@
 | 
			
		||||
                        @this.Body
 | 
			
		||||
                    </CascadingValue>
 | 
			
		||||
                    
 | 
			
		||||
                    <MudButton Disabled="@this.SubmitDisabled" Variant="Variant.Filled" Class="mb-3" OnClick="() => this.SubmitAction()" Style="@this.SubmitButtonStyle">
 | 
			
		||||
                        @this.SubmitText
 | 
			
		||||
                    </MudButton>
 | 
			
		||||
                    
 | 
			
		||||
                    <MudStack Row="true" AlignItems="AlignItems.Center" StretchItems="StretchItems.Start" Class="mb-3">
 | 
			
		||||
                        <MudButton Disabled="@this.SubmitDisabled" Variant="Variant.Filled" OnClick="() => this.SubmitAction()" Style="@this.SubmitButtonStyle">
 | 
			
		||||
                            @this.SubmitText
 | 
			
		||||
                        </MudButton>
 | 
			
		||||
                        @if (this.isProcessing && this.cancellationTokenSource is not null)
 | 
			
		||||
                        {
 | 
			
		||||
                            <MudTooltip Text="Stop generation">
 | 
			
		||||
                                <MudIconButton Variant="Variant.Filled" Icon="@Icons.Material.Filled.Stop" Color="Color.Error" OnClick="() => this.CancelStreaming()"/>
 | 
			
		||||
                            </MudTooltip>
 | 
			
		||||
                        }
 | 
			
		||||
                    </MudStack>
 | 
			
		||||
                }
 | 
			
		||||
            </MudForm>
 | 
			
		||||
            <Issues IssuesData="@(this.inputIssues)"/>
 | 
			
		||||
 | 
			
		||||
@ -100,6 +100,7 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase, IMe
 | 
			
		||||
    
 | 
			
		||||
    private readonly Timer formChangeTimer = new(TimeSpan.FromSeconds(1.6));
 | 
			
		||||
    
 | 
			
		||||
    private CancellationTokenSource? cancellationTokenSource;
 | 
			
		||||
    private ContentBlock? resultingContentBlock;
 | 
			
		||||
    private string[] inputIssues = [];
 | 
			
		||||
    private bool isProcessing;
 | 
			
		||||
@ -286,11 +287,15 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase, IMe
 | 
			
		||||
        this.isProcessing = true;
 | 
			
		||||
        this.StateHasChanged();
 | 
			
		||||
 | 
			
		||||
        // Use the selected provider to get the AI response.
 | 
			
		||||
        // By awaiting this line, we wait for the entire
 | 
			
		||||
        // content to be streamed.
 | 
			
		||||
        this.chatThread = await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.providerSettings.Model, this.lastUserPrompt, this.chatThread);
 | 
			
		||||
        using (this.cancellationTokenSource = new())
 | 
			
		||||
        {
 | 
			
		||||
            // Use the selected provider to get the AI response.
 | 
			
		||||
            // By awaiting this line, we wait for the entire
 | 
			
		||||
            // content to be streamed.
 | 
			
		||||
            this.chatThread = await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.providerSettings.Model, this.lastUserPrompt, this.chatThread, this.cancellationTokenSource.Token);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.cancellationTokenSource = null;
 | 
			
		||||
        this.isProcessing = false;
 | 
			
		||||
        this.StateHasChanged();
 | 
			
		||||
        
 | 
			
		||||
@ -298,6 +303,13 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase, IMe
 | 
			
		||||
        return aiText.Text;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    private async Task CancelStreaming()
 | 
			
		||||
    {
 | 
			
		||||
        if (this.cancellationTokenSource is not null)
 | 
			
		||||
            if(!this.cancellationTokenSource.IsCancellationRequested)
 | 
			
		||||
                await this.cancellationTokenSource.CancelAsync();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    protected async Task CopyToClipboard()
 | 
			
		||||
    {
 | 
			
		||||
        await this.RustService.CopyText2Clipboard(this.Snackbar, this.Result2Copy());
 | 
			
		||||
 | 
			
		||||
@ -1,2 +1,3 @@
 | 
			
		||||
# v0.9.38, build 213 (2025-03-xx xx:xx UTC)
 | 
			
		||||
- Added the "stop generation" button to all assistants.
 | 
			
		||||
- Updated the ERI v1 specification for the ERI server assistant & fixed spelling of the `UNKNOWN` role.
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user