Pushibus mit ImageMaster3000
This commit is contained in:
@ -8,6 +8,8 @@
|
||||
@inject TooltipService TooltipService
|
||||
@inject DialogService DialogService
|
||||
|
||||
@inject IJSRuntime JSRuntime;
|
||||
|
||||
<PageTitle>AiArt</PageTitle>
|
||||
|
||||
<h1>Wunschbilder von KI nur für dich</h1>
|
||||
@ -28,6 +30,7 @@
|
||||
|
||||
<RadzenText TextStyle="TextStyle.H2">Nenne uns deinen Wunsch:</RadzenText>
|
||||
<RadzenTextBox @bind-Value=@request Placeholder="Dein Wunsch"/>
|
||||
|
||||
<RadzenPanel AllowCollapse="true" Style="width: 500px;" Text="Mehr Optionen">
|
||||
<ChildContent>
|
||||
<RadzenCard class="rz-mt-4">
|
||||
@ -45,16 +48,35 @@
|
||||
</ChildContent>
|
||||
</RadzenPanel>
|
||||
|
||||
<RadzenButton Disabled=@_progressVisible Click=@DoStuff>Generate</RadzenButton>
|
||||
|
||||
<RadzenButton Visible=@_buttonVisible Click=@DoStuff>Generate</RadzenButton>
|
||||
|
||||
<RadzenPanel AllowCollapse="true" Style="width: 500px;" Text="Zeige Prompt">
|
||||
<ChildContent>
|
||||
<RadzenCard class="rz-mt-4">
|
||||
<RadzenStack Orientation="Orientation.Horizontal"
|
||||
MouseEnter="@(args => ShowTemperatureTooltip(args))"
|
||||
MouseLeave="TooltipService.Close"
|
||||
AlignItems="AlignItems.Center" Wrap="FlexWrap.Wrap">
|
||||
<RadzenText>@_imagePrompt</RadzenText>
|
||||
</RadzenStack>
|
||||
</RadzenCard>
|
||||
</ChildContent>
|
||||
</RadzenPanel>
|
||||
|
||||
<RadzenText TextStyle="TextStyle.H4">Die Idee, die gemalt wird:</RadzenText>
|
||||
<RadzenText>@_imageDescription</RadzenText>
|
||||
|
||||
<RadzenProgressBarCircular Visible=@_progressVisible ProgressBarStyle="ProgressBarStyle.Secondary" Value="100" ShowValue="false" Mode="ProgressBarMode.Indeterminate" />
|
||||
<RadzenText Visible=@_progressVisible TextStyle="TextStyle.H6" Text=@BusyMessage></RadzenText>
|
||||
|
||||
<RadzenImage Path=@_imageUrl></RadzenImage>
|
||||
|
||||
</RadzenStack>
|
||||
|
||||
@code {
|
||||
|
||||
private bool _progressVisible = false;
|
||||
private bool _buttonVisible = true;
|
||||
|
||||
public string BusyMessage { get; set; } = "Initial Message";
|
||||
|
||||
@ -108,6 +130,8 @@
|
||||
|
||||
private string _basePrompt;
|
||||
|
||||
private string _imageUrl;
|
||||
|
||||
//protected override async Task OnInitializedAsync()
|
||||
//{
|
||||
// _basePrompt = await File.ReadAllTextAsync($"{Directory.GetCurrentDirectory()}{@"\wwwroot\prompt.txt"}");
|
||||
@ -146,19 +170,24 @@
|
||||
BusyMessage = newMessage;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
|
||||
public async Task GenerateImage()
|
||||
{
|
||||
//await JSRuntime.InvokeVoidAsync("DoSexyStuffBridge", _imagePrompt);
|
||||
_imageUrl = await JSRuntime.InvokeAsync<string>("DoSexyStuffBridge", _imagePrompt);
|
||||
}
|
||||
|
||||
private async Task DoStuff()
|
||||
{
|
||||
// Der Dialog blokiert so lange, wie der er offen ist, deshalb dürfen wir hier nicht warten, da wir sonst nie mit der Arbeit anfangen...
|
||||
//Task busyDialog = ShowBusyDialog();
|
||||
_progressVisible = true;
|
||||
_buttonVisible = false;
|
||||
|
||||
await UpdateBusyMessage("Kirstens Assistent zerbricht sich über deine Idee den Kopf...");
|
||||
|
||||
_basePrompt = await File.ReadAllTextAsync($"{Directory.GetCurrentDirectory()}{@"\wwwroot\prompt.txt"}");
|
||||
|
||||
//await Task.Delay(1000);
|
||||
|
||||
|
||||
OpenAIAPI api = new OpenAIAPI("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");
|
||||
|
||||
ChatRequest chatRequest = new ChatRequest
|
||||
@ -185,29 +214,22 @@
|
||||
_imageDescription = response.Substring(lineBreak);
|
||||
|
||||
await UpdateBusyMessage("Kirstens Assistent hat eine Idee! Er wird sie nun malen...");
|
||||
|
||||
Task makeImagesTask = GenerateImage();
|
||||
|
||||
// TODO: Hier bilder generieren
|
||||
//Task makeImagesTask = Task.Delay(10000);
|
||||
|
||||
CancellationTokenSource cancelFunnyMessages = new CancellationTokenSource();
|
||||
|
||||
Task funnyMessagesTask = FunnyMessageSwitcher_ImageGen(cancelFunnyMessages.Token);
|
||||
|
||||
//CancellationTokenSource cancelFunnyMessages = new CancellationTokenSource();
|
||||
|
||||
//Task funnyMessagesTask = FunnyMessageSwitcher_ImageGen(cancelFunnyMessages.Token);
|
||||
|
||||
// Wichtig, erst Bilder awaiten, dann die lustingen Sprüche, sonst warten wir ewig...
|
||||
//await makeImagesTask;
|
||||
await makeImagesTask;
|
||||
|
||||
cancelFunnyMessages.Cancel();
|
||||
//cancelFunnyMessages.Cancel();
|
||||
|
||||
await funnyMessagesTask;
|
||||
|
||||
//DialogService.Close();//
|
||||
|
||||
// Wir warten auf den Task des Dialogs nach dem Schließen, weil das funktioniert.
|
||||
//await busyDialog;
|
||||
//await funnyMessagesTask;
|
||||
|
||||
_progressVisible = false;
|
||||
_buttonVisible = true;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user