Ein KI-Assistent in Ihrer Blazor-Anwendung, kein weiteres Chatfenster
Wie Sie einer Blazor-Geschäftsanwendung einen KI-Assistenten hinzufügen, der Ihre Daten kennt und Benutzerrechte respektiert, mit Microsoft.Extensions.AI.
Vlado Pandžić · Gründer · Senior .NET-Architekt
Veröffentlicht · 5 Min. Lesezeit
Die meisten Mitarbeitenden nutzen ChatGPT bereits. Sie kopieren einen Auftrag, eine Reklamation oder einen Vertragsabsatz hinein, bekommen eine Antwort und kopieren sie zurück. Das hilft, aber Unternehmensdaten landen in einem Werkzeug, das niemand kontrolliert, und der Assistent weiß nichts über Ihre Kunden, Ihre Aufträge oder darüber, wer was sehen darf.
Ein Assistent in Ihrer eigenen Blazor-Anwendung funktioniert anders. Er sitzt neben dem Bildschirm, an dem der Nutzer arbeitet, liest Daten über dieselben Services, die die Anwendung bereits nutzt, und sieht nur, was dieser Nutzer sehen darf.
Was er an einem normalen Arbeitstag kann
- „Welche Aufträge von Kunde Novak sind verspätet, und warum?“ Der Assistent sucht Aufträge und Liefertermine heraus und antwortet in zwei Sätzen, statt dass der Nutzer drei Tabellen filtert.
- „Entwirf eine Antwort auf diese Reklamation.“ Er liest die Reklamation und die Auftragshistorie und bereitet einen Entwurf vor, den der Nutzer anpasst und versendet.
- „Fasse diesen Vertrag zusammen und liste die Fristen auf.“ Er liest das angehängte Dokument und zieht heraus, was zählt, mit einem Verweis auf die genaue Stelle im Text.
In jedem Fall entscheidet der Mensch. Der Assistent sucht und bereitet vor, der Nutzer bestätigt. Denselben Ansatz im Postfach oder Helpdesk beschreibt der Artikel E-Mails mit KI beantworten.
So funktioniert es, in einfachen Worten
- 1Der Nutzer fragt auf dem Bildschirm
- 2Das Modell entscheidet, welche Daten es braucht
- 3Ihre Services holen sie, mit den Rechten des Nutzers
- 4Die Antwort erscheint, während sie entsteht
Der Kern: Das Modell geht nie selbst in die Datenbank. Sie geben ihm „Tools“, also gewöhnliche Methoden Ihrer bestehenden Services, und nur diese darf es aufrufen. Will es verspätete Aufträge, ruft es OrderService auf, und OrderService prüft die Berechtigungen genau wie bei jedem anderen Bildschirm.
Wie das in .NET aussieht
In .NET baut man das mit Microsoft.Extensions.AI, das eine gemeinsame Schnittstelle IChatClient für Azure OpenAI und andere Modelle bietet. Der Client wird einmal registriert, mit automatischem Aufruf von Tools. Die Anwendung meldet sich mit ihrer eigenen Managed Identity bei Azure an, also steht kein API-Schlüssel in der Konfiguration:
builder.Services.AddSingleton<IChatClient>(
new ChatClientBuilder(
new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential())
.GetChatClient(deployment).AsIChatClient())
.UseFunctionInvocation()
.Build());
Die Blazor-Komponente im Modus Interactive Server gibt dem Modell ein Tool und zeigt die Antwort, während sie eintrifft:
@inject IChatClient Chat
@inject OrderService Orders
@inject AuthenticationStateProvider Auth
<textarea @bind="question"></textarea>
<button @onclick="AskAsync">Ask</button>
<p>@answer</p>
@code {
private string question = "";
private string answer = "";
private async Task AskAsync()
{
var user = (await Auth.GetAuthenticationStateAsync()).User;
var options = new ChatOptions
{
Tools = [AIFunctionFactory.Create(
(string customer) => Orders.GetLateOrdersAsync(customer, user),
"get_late_orders",
"Returns late orders for a customer that the current user is allowed to see")]
};
answer = "";
await foreach (var update in Chat.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, question)], options))
{
answer += update.Text;
StateHasChanged();
}
}
}
GetLateOrdersAsync bekommt den angemeldeten Nutzer, der Assistent kann also nie mehr sehen, als dieser Nutzer auf irgendeinem anderen Bildschirm sehen würde. Das ist dieselbe Regel wie in der Blazor-Sicherheits-Checkliste: Berechtigungen gehören in den Service, nicht in die Oberfläche und nicht in den Prompt.
Ein Prototyp an einem Tag, Produktion in Wochen
Microsoft hat eine Vorlage AI Chat Web App (dotnet new aichatweb). Sie erstellt eine Blazor-Interactive-Server-Anwendung mit fertiger Chatoberfläche, die Fragen zu Dokumenten beantwortet, die Sie in einen Ordner legen. Das ist ein hervorragender Weg, der Geschäftsführung an einem Tag zu zeigen, wie ein Assistent mit Ihren eigenen Dokumenten aussieht.
Aber es ist ein Prototyp, keine Produktion. Für den echten Einsatz braucht es noch Ihre Berechtigungen, Ihre Datenquellen, Protokollierung und Kostenkontrolle.
Regeln für die Produktion
- Der Assistent sieht nur, was der Nutzer sieht. Jedes Tool ruft Ihre Services mit dem angemeldeten Nutzer auf, und der Service prüft die Berechtigungen.
- Jede Aktion bestätigt ein Mensch. Der Assistent darf eine E-Mail, eine Auftragsänderung oder eine Gutschrift vorbereiten, aber der Nutzer klickt auf Senden.
- Schlüssel und Modell bleiben auf dem Server. Ein weiterer Grund, den Assistenten-Bildschirm im Modus Interactive Server statt WebAssembly zu betreiben, wie im Artikel Blazor Server vs WebAssembly vs Auto erklärt.
- Alles wird protokolliert und überwacht. Microsoft.Extensions.AI unterstützt OpenTelemetry, also landen Fragen, Tool-Aufrufe und Antwortzeiten im selben Monitoring wie der Rest der Anwendung.
- Kosten haben eine Grenze. Ein Limit pro Nutzer und Tag und ein Blick darauf, welche Fragen am teuersten sind.
- Daten bleiben, wo sie hingehören. Laut Microsoft sind Prompts und Antworten in Azure OpenAI für OpenAI nicht zugänglich und werden nicht zum Training von Modellen genutzt. Bei einem regionalen Deployment werden sie in der gewählten Geografie verarbeitet, Global- und Data-Zone-Deployments können sie breiter verarbeiten, also wählen Sie den Deployment-Typ bewusst.
Wo anfangen
Wählen Sie einen Bildschirm und eine Art von Frage, die Ihr Team jeden Tag stellt und die heute mehrere Klicks oder einen Anruf braucht. Bauen Sie den Assistenten nur dafür, messen Sie, wie viel Zeit er spart, und erweitern Sie erst dann. Einen breiteren Blick darauf, welche KI-Funktionen sich in .NET-Anwendungen lohnen, gibt der Artikel über KI in einer bestehenden .NET-Anwendung.
Wie wir arbeiten
Genau das machen wir: Wir bringen KI in Geschäftsprozesse, auch als Assistenten in bestehenden Blazor- und .NET-Anwendungen, mit Berechtigungen, Bestätigung durch einen Menschen und Kostenkontrolle vom ersten Tag an. Wir beginnen mit einem Bildschirm und einer messbaren Einsparung. Mehr über unsere Arbeit mit KI, und der erste Schritt ist ein kostenloses 30-minütiges Gespräch.
Quellen
- Microsoft.Extensions.AI libraries, Microsoft Learn
- Invoke .NET functions using an AI model, Microsoft Learn
- Build an AI chat app with .NET, Microsoft Learn
- Create a .NET AI app using the AI app template, Microsoft Learn
- Data, privacy and security for Azure OpenAI, Microsoft Learn
Dieser Artikel dient nur der allgemeinen Information und ist keine Rechts-, Steuer-, Finanz- oder sonstige Fachberatung. Szenarien, Beispiele und Berechnungen dienen der Veranschaulichung. Nutzungsbedingungen und Haftungsausschluss.