mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 03:40:21 +00:00 
			
		
		
		
	Refactored DI usage for CreateFromProviderAsync (#285)
This commit is contained in:
		
							parent
							
								
									98810ce884
								
							
						
					
					
						commit
						7c59aa11fe
					
				@ -117,6 +117,6 @@ public abstract class AgentBase(ILogger<AgentBase> logger, SettingsManager setti
 | 
				
			|||||||
        // Use the selected provider to get the AI response.
 | 
					        // Use the selected provider to get the AI response.
 | 
				
			||||||
        // By awaiting this line, we wait for the entire
 | 
					        // By awaiting this line, we wait for the entire
 | 
				
			||||||
        // content to be streamed.
 | 
					        // content to be streamed.
 | 
				
			||||||
        await aiText.CreateFromProviderAsync(providerSettings.CreateProvider(this.Logger), this.SettingsManager, this.DataSourceService, providerSettings.Model, this.lastUserPrompt, thread);
 | 
					        await aiText.CreateFromProviderAsync(providerSettings.CreateProvider(this.Logger), providerSettings.Model, this.lastUserPrompt, thread);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -293,7 +293,7 @@ public abstract partial class AssistantBase : ComponentBase, IMessageBusReceiver
 | 
				
			|||||||
        // Use the selected provider to get the AI response.
 | 
					        // Use the selected provider to get the AI response.
 | 
				
			||||||
        // By awaiting this line, we wait for the entire
 | 
					        // By awaiting this line, we wait for the entire
 | 
				
			||||||
        // content to be streamed.
 | 
					        // content to be streamed.
 | 
				
			||||||
        await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.SettingsManager, this.DataSourceService, this.providerSettings.Model, this.lastUserPrompt, this.chatThread);
 | 
					        await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.providerSettings.Model, this.lastUserPrompt, this.chatThread);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        this.isProcessing = false;
 | 
					        this.isProcessing = false;
 | 
				
			||||||
        this.StateHasChanged();
 | 
					        this.StateHasChanged();
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,6 @@
 | 
				
			|||||||
using System.Text.Json.Serialization;
 | 
					using System.Text.Json.Serialization;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using AIStudio.Provider;
 | 
					using AIStudio.Provider;
 | 
				
			||||||
using AIStudio.Settings;
 | 
					 | 
				
			||||||
using AIStudio.Tools.Services;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace AIStudio.Chat;
 | 
					namespace AIStudio.Chat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -30,7 +28,7 @@ public sealed class ContentImage : IContent
 | 
				
			|||||||
    public Func<Task> StreamingEvent { get; set; } = () => Task.CompletedTask;
 | 
					    public Func<Task> StreamingEvent { get; set; } = () => Task.CompletedTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <inheritdoc />
 | 
					    /// <inheritdoc />
 | 
				
			||||||
    public Task CreateFromProviderAsync(IProvider provider, SettingsManager settings, DataSourceService dataSourceService, Model chatModel, IContent? lastPrompt, ChatThread? chatChatThread, CancellationToken token = default)
 | 
					    public Task CreateFromProviderAsync(IProvider provider, Model chatModel, IContent? lastPrompt, ChatThread? chatChatThread, CancellationToken token = default)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        throw new NotImplementedException();
 | 
					        throw new NotImplementedException();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -38,12 +38,14 @@ public sealed class ContentText : IContent
 | 
				
			|||||||
    public Func<Task> StreamingEvent { get; set; } = () => Task.CompletedTask;
 | 
					    public Func<Task> StreamingEvent { get; set; } = () => Task.CompletedTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <inheritdoc />
 | 
					    /// <inheritdoc />
 | 
				
			||||||
    public async Task CreateFromProviderAsync(IProvider provider, SettingsManager settings, DataSourceService dataSourceService, Model chatModel, IContent? lastPrompt, ChatThread? chatThread, CancellationToken token = default)
 | 
					    public async Task CreateFromProviderAsync(IProvider provider, Model chatModel, IContent? lastPrompt, ChatThread? chatThread, CancellationToken token = default)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if(chatThread is null)
 | 
					        if(chatThread is null)
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var logger = Program.SERVICE_PROVIDER.GetService<ILogger<ContentText>>()!;
 | 
					        var logger = Program.SERVICE_PROVIDER.GetService<ILogger<ContentText>>()!;
 | 
				
			||||||
 | 
					        var settings = Program.SERVICE_PROVIDER.GetService<SettingsManager>()!;
 | 
				
			||||||
 | 
					        var dataSourceService = Program.SERVICE_PROVIDER.GetService<DataSourceService>()!;
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        //
 | 
					        //
 | 
				
			||||||
        // 1. Check if the user wants to bind any data sources to the chat:
 | 
					        // 1. Check if the user wants to bind any data sources to the chat:
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,6 @@
 | 
				
			|||||||
using System.Text.Json.Serialization;
 | 
					using System.Text.Json.Serialization;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using AIStudio.Provider;
 | 
					using AIStudio.Provider;
 | 
				
			||||||
using AIStudio.Settings;
 | 
					 | 
				
			||||||
using AIStudio.Tools.Services;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace AIStudio.Chat;
 | 
					namespace AIStudio.Chat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -43,5 +41,5 @@ public interface IContent
 | 
				
			|||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Uses the provider to create the content.
 | 
					    /// Uses the provider to create the content.
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public Task CreateFromProviderAsync(IProvider provider, SettingsManager settings, DataSourceService dataSourceService, Model chatModel, IContent? lastPrompt, ChatThread? chatChatThread, CancellationToken token = default);
 | 
					    public Task CreateFromProviderAsync(IProvider provider, Model chatModel, IContent? lastPrompt, ChatThread? chatChatThread, CancellationToken token = default);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -475,7 +475,7 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable
 | 
				
			|||||||
            // Use the selected provider to get the AI response.
 | 
					            // Use the selected provider to get the AI response.
 | 
				
			||||||
            // By awaiting this line, we wait for the entire
 | 
					            // By awaiting this line, we wait for the entire
 | 
				
			||||||
            // content to be streamed.
 | 
					            // content to be streamed.
 | 
				
			||||||
            await aiText.CreateFromProviderAsync(this.Provider.CreateProvider(this.Logger), this.SettingsManager, this.DataSourceService, this.Provider.Model, lastUserPrompt, this.ChatThread, this.cancellationTokenSource.Token);
 | 
					            await aiText.CreateFromProviderAsync(this.Provider.CreateProvider(this.Logger), this.Provider.Model, lastUserPrompt, this.ChatThread, this.cancellationTokenSource.Token);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        this.cancellationTokenSource = null;
 | 
					        this.cancellationTokenSource = null;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,6 @@
 | 
				
			|||||||
using AIStudio.Chat;
 | 
					using AIStudio.Chat;
 | 
				
			||||||
using AIStudio.Components;
 | 
					using AIStudio.Components;
 | 
				
			||||||
using AIStudio.Provider;
 | 
					using AIStudio.Provider;
 | 
				
			||||||
using AIStudio.Tools.Services;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
using Microsoft.AspNetCore.Components;
 | 
					using Microsoft.AspNetCore.Components;
 | 
				
			||||||
using Microsoft.AspNetCore.Components.Web;
 | 
					using Microsoft.AspNetCore.Components.Web;
 | 
				
			||||||
@ -15,9 +14,6 @@ public partial class Writer : MSGComponentBase, IAsyncDisposable
 | 
				
			|||||||
    [Inject]
 | 
					    [Inject]
 | 
				
			||||||
    private ILogger<Chat> Logger { get; init; } = null!;
 | 
					    private ILogger<Chat> Logger { get; init; } = null!;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    [Inject]
 | 
					 | 
				
			||||||
    private DataSourceService DataSourceService { get; init; } = null!;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    private static readonly Dictionary<string, object?> USER_INPUT_ATTRIBUTES = new();
 | 
					    private static readonly Dictionary<string, object?> USER_INPUT_ATTRIBUTES = new();
 | 
				
			||||||
    private readonly Timer typeTimer = new(TimeSpan.FromMilliseconds(1_500));
 | 
					    private readonly Timer typeTimer = new(TimeSpan.FromMilliseconds(1_500));
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -143,7 +139,7 @@ public partial class Writer : MSGComponentBase, IAsyncDisposable
 | 
				
			|||||||
        this.isStreaming = true;
 | 
					        this.isStreaming = true;
 | 
				
			||||||
        this.StateHasChanged();
 | 
					        this.StateHasChanged();
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.SettingsManager, this.DataSourceService, this.providerSettings.Model, lastUserPrompt, this.chatThread);
 | 
					        await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.providerSettings.Model, lastUserPrompt, this.chatThread);
 | 
				
			||||||
        this.suggestion = aiText.Text;
 | 
					        this.suggestion = aiText.Text;
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        this.isStreaming = false;
 | 
					        this.isStreaming = false;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user