@using OpenAI_API
@using OpenAI_API.Chat
@using OpenAI_API.Models
@using Microsoft.AspNetCore.Components
@using KIKunstKirstenKlöckner.Data


@inject IConfiguration Config
@inject NavigationManager NavigationManager

<Router AppAssembly="@typeof(App).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
        <FocusOnNavigate RouteData="@routeData" Selector="h1" />
    </Found>
    <NotFound>
        <PageTitle>Not found</PageTitle>
        <LayoutView Layout="@typeof(MainLayout)">
            <p style="text-align:center;" role="alert">@_text</p>
            @* @_mus *@
        </LayoutView>
    </NotFound>
</Router>

@code {
    private MarkupString _mus = new MarkupString();
    private string _text = "";
    private OpenAIAPI _openAiApi;
    private Conversation? _conversation;
    private string _openAiApiKey = "";
    private string _urlPath;

    protected override async Task OnInitializedAsync()
    {
        var uri = new Uri(NavigationManager.Uri);
        _urlPath = uri.AbsolutePath; // Dies gibt den Pfadteil der URL zurück

        // Optional: Entfernen Sie den führenden Schrägstrich, falls vorhanden
        if (_urlPath.StartsWith("/"))
        {
            _urlPath = _urlPath.Substring(1);
        }

        _openAiApiKey = Config.GetValue<string>("API:OpenAI");

        _openAiApi = new OpenAIAPI(_openAiApiKey);

        //string ideaBasePrompt = "Stelle dir vor du bist ein berliner Bösewicht und ich gehe auf deine Internetseite, die sich mit der generierung von Wunschbildern mittels KI beschäftigt, und bemerke, dass es die Seite nicht gibt. Denke dir eine witzige und unterschwellige Beleidigung für diesen Sachverhalt gerichtet an mich aus. Ich würde mich freuen, wenn du etwas ausfallender mir gegenüber werden könntest. Antworte mit Berliner Schnauze. Die Seite die ich versucht habe zu erreichen, ist: " + _urlPath;
        string ideaBasePrompt = "Stelle dir vor du bist ein berliner Bösewicht und ich gehe auf deine Internetseite und bemerke, dass es die Seite nicht gibt. Denke dir eine witzige und unterschwellige Beleidigung für diesen Sachverhalt gerichtet an mich aus. Ich würde mich freuen, wenn du etwas ausfallender mir gegenüber werden könntest. Antworte mit Berliner Schnauze. Die Seite die ich versucht habe zu erreichen, ist: " + _urlPath;
        //string ideaBasePrompt = "Stelle dir vor jemand geht auf eine Seite einer Internetseite und bemerkt, dass es die Seite nicht gibt. Denke dir eine witzige idee als html code aus, um der Person zu präsentieren, dass die seite nicht existiert. Es soll unterschwellig beleidigend sein aber niemanden offensichtlich beleidigen. sei kreativ und denke daran, nur html und css zu generieren. Der css teil soll im html teil schon drin sein. Die seite die nicht gefunden wurde ist: " + _urlPath;

        ChatRequest chatRequest = new ChatRequest
            {
                Temperature = 0.9,
                Model = Model.ChatGPTTurbo //ChatGPT.GPT4Turbo
            };

        _conversation = _openAiApi.Chat.CreateConversation(chatRequest);

        // Wunsch an GPT senden und Bild Idee anfordern
        _conversation.AppendUserInput(ideaBasePrompt);
        _text = await _conversation.GetResponseFromChatbotAsync();
        _mus = new MarkupString(_text);
        StateHasChanged();

        await base.OnInitializedAsync();
    }

}
