Wie wir an einem Tag KI in unser Produkt integriert haben
2 Min. Lesezeit – Die Geschichte unseres internen Hack-Days, an dem wir KI innerhalb eines Tages in unser Produkt integriert haben

In den letzten Jahren haben sich grosse Sprachmodelle (Large Language Models) von einer akademischen Kuriosität zu öffentlich zugänglichen Technologien entwickelt, die für eine Vielzahl von Anwendungen genutzt werden können. Dank Diensten wie Azure OpenAI (jetzt in Schweizer Rechenzentren verfügbar) haben Unternehmen wie unseres Zugriff auf leistungsstarke KI-Funktionen unter Bedingungen, die unserer eigenen Kontrolle entsprechen. Doch das Versprechen von KI liegt nicht nur in den Modellen selbst, sondern in den Werkzeugen, die es uns ermöglichen, diese Modelle effektiv einzusetzen. Hier kommen KI-Orchestrierungs-Frameworks wie Semantic Kernel und LangChain ins Spiel, die die Integration von KI-Diensten vereinfachen.
Stellen Sie sich Folgendes vor: ein interner Hack-Day des Unternehmens, der sich ausschliesslich auf die Integration von KI in unsere Plattform für die Zusammenarbeit bei Schwachstellen konzentriert. Die Herausforderung? Einen Anwendungsfall zu konzipieren, zu entwickeln und umzusetzen, der einen unmittelbaren Mehrwert bietet – und das alles innerhalb eines einzigen Tages.
Auswahl des Anwendungsfalls
Der erste Schritt bestand aus Brainstorming und Entscheidungsfindung, wobei wir den Mehrwert gegen die Komplexität der Umsetzung abwägten. Angesichts unseres eintägigen Zeitrahmens entschieden wir uns dafür, Schwachstellenberichte auf eine für Menschen verständliche Weise zusammenzufassen. Diese Berichte sind mit unstrukturierten Daten gefüllt, die die wichtigsten Details zu Schwachstellen enthalten. Benutzer müssen den vollständigen Text der Berichte während ihres Lebenszyklus normalerweise wiederholt durchlesen. Daher kann die Erstellung prägnanter Zusammenfassungen die Effizienz erheblich steigern und die Interpretation in grossem Massstab erleichtern.
Beispielbericht

Was ist Semantic Kernel?
Doch wie erreichen wir das? Hier kommt Semantic Kernel ins Spiel, das Open-Source-KI-Orchestrierungs-Framework von Microsoft. Dieses SDK ermöglicht es Entwicklern, eine Reihe von Prompts (semantische Funktionen) zu orchestrieren und diese mit nativem Code (native Funktionen) zu kombinieren, um ein bestimmtes Ergebnis zu erzielen. Microsoft setzt Semantic Kernel in seinen eigenen KI-Copiloten und Assistenten ein, was es zu einem bewährten und entwicklerfreundlichen Open-Source-Tool macht.
Implementierung
Der Einstieg in Semantic Kernel war einfach und in diesem Kochbuch gut dokumentiert. Nachdem wir die Modell-Endpunkte und API-Schlüssel hinterlegt hatten, haben wir den folgenden Code verwendet, um den Semantic Kernel zu instanziieren:
var builder = new KernelBuilder();
builder.WithAzureChatCompletionService(
configuration.GetAzureOpenAiDeploymentName(),
configuration.GetAzureOpenAiUrl(),
configuration.GetAzureOpenAiApiKey());
Kernel = builder.Build();
Vorverarbeitung und Prompting
Wir haben den Datenkontext vorverarbeitet und sämtliche Formatierungen entfernt (Quill Delta in unserem Fall) aus den vollständigen Textberichten:

Wir haben synthetische Testdaten erstellt, um die Ergebnisse unseres Prompts zu bewerten und zu verfeinern. Anschliessend haben wir unseren Zusammenfassungs-Prompt entwickelt, inspiriert durch diese Ressource. Das Prompt-Engineering nahm die meiste Zeit in Anspruch und erforderte mehrere Iterationen, um konsistente Ergebnisse für unser gesamtes Testset zu erzielen.
[ZUSAMMENFASSUNGSREGELN]
KEINE WORTVERSCHWENDUNG
KURZE, KLARE SÄTZE VERWENDEN
MAXIMALE DETAILS
AUF DEN INHALT KONZENTRIEREN
AUF DIE SCHWACHSTELLENART UND DIE AUSWIRKUNGEN KONZENTRIEREN
[...]
Fasse diesen Bericht zusammen:
{{$input}}
Semantische Funktion
Als Nächstes haben wir unsere erste semantische Funktion «FindingSummary» erstellt und sie im Semantic Kernel registriert:
var functionConfig = new SemanticFunctionConfig(promptConfig, promptTemplate);
var summaryFunction = kernel.RegisterSemanticFunction("SummarizeFindingSkill", "FindingSummary", functionConfig);
Eine semantische Funktion besteht aus zwei Hauptelementen:
- Der Prompt-Vorlage , die den Prompt sowie Platzhalter für Eingabeparameter enthält, wie im vorherigen Abschnitt gezeigt
- Der Prompt-Konfiguration , die Parameter wie die maximale Token-Anzahl und die Temperatur steuert
Zusammenfassungs-API
Zum Abschluss des Tages haben wir unseren API-Endpunkt für die Zusammenfassung von Ergebnissen implementiert. Er führt Berechtigungsprüfungen durch, ruft Daten aus der Datenbank ab und ruft anschliessend die semantische Funktion auf:
var summary = await summaryFunction.InvokeAsync(input);
Die Funktion gibt daraufhin das zusammengefasste Ergebnis zurück, das wie folgt aussehen könnte:
Auf www.example.com wurde eine Insecure Direct Object Reference (IDOR)-Schwachstelle entdeckt, insbesondere im /users-Endpunkt. Diese Sicherheitslücke ermöglicht es unbefugten Benutzern, auf sensible Daten anderer Benutzer zuzugreifen oder diese zu verändern.
Wichtige Erkenntnisse
- Microsoft Azure OpenAI ermöglicht den Einsatz grosser Sprachmodelle in der Schweiz auch bei sensiblen Kundendaten, sofern spezielle Vorkehrungen getroffen werden, wie angepasste Inhaltsfilter und Missbrauchsüberwachung.
- Semantic Kernel vereinfacht die KI-Orchestrierung so weit, dass selbst ein eintägiger Hackathon sofortigen Mehrwert bietet.
- Die grösste Herausforderung bestand darin, das Prompt-Engineering so zu gestalten, dass qualitativ hochwertige Ergebnisse erzielt werden.
Der weitere Weg
Der Erfolg unseres Hack-Days ist erst der Anfang einer spannenden Reise. Zukünftige, komplexere Anwendungsfälle umfassen eine stärkere Kombination aus semantischen Funktionen, die grosse Sprachmodelle abfragen, und nativen Funktionen, die mit der Plattform und ihren Daten interagieren. All dies mit dem Ziel, eine Copilot-Erfahrung zu bieten, die rohe und unstrukturierte Daten verarbeiten und in verständliche Erkenntnisse umwandeln kann.
Verantwortungsvoller KI-Einsatz
Wir setzen uns für einen verantwortungsvollen Umgang mit KI ein. Seien Sie versichert:
- Unsere Modelle werden niemals mit sensiblen Kundendaten trainiert.
- Kundendaten bleiben sicher und innerhalb definierter Grenzen getrennt.
- Wir wahren die Privatsphäre unserer Nutzer, indem wir sicherstellen, dass bei KI-Interaktionen keine Prompts protokolliert werden.
Mit diesen Prinzipien als Leitfaden für unsere KI-Integrationsreise sind wir bereit, das volle Potenzial von KI im Bereich der Cybersicherheit auszuschöpfen.
Externe Links
https://github.com/microsoft/semantic-kernel
https://learn.microsoft.com/en-us/semantic-kernel/ai-orchestration


