Was macht SKF.ProductAssistant?
Bietet KI-gestützte Antworten zu SKF-Lagereigenschaften unter Verwendung von C#, Azure Functions, Semantic Kernel und lokalen JSON-Datenblättern mit Kontextverfolgung.
Übersicht
Diese Fähigkeit fungiert als Produktassistent für SKF-Lager. Sie kombiniert die Leistungsfähigkeit von Azure Functions mit Semantic Kernel, um aus einer Reihe lokaler JSON-Datenblätter relevante Lagereigenschaften abzurufen und dem Benutzer in natürlicher Sprache zu präsentieren.
Hauptmerkmale
- Kontextverfolgung: Behält während einer gesamten Unterhaltung den Kontext bei, um Folge- und Präzisierungsfragen zu beantworten.
- Lokale Datenblätter: Verwendet eingebettete JSON-Daten, sodass keine externen Datenbanken oder APIs erforderlich sind.
- C# & Azure Functions: Sorgt für hohe Leistung und einfache Bereitstellung in Cloud-Umgebungen.
- Semantic Kernel: Nutzt fortschrittliche semantische Analyse, um Benutzeranfragen zu verstehen und sie mit den richtigen Attributen abzugleichen.
Funktionsweise
- Der Benutzer stellt eine Frage zu einem SKF-Lagerprodukt (z. B. „Welche Abmessungen hat das Lager 6203?“).
- Der Skill verarbeitet die Anfrage mit Semantic Kernel, um Absicht und Entitäten zu extrahieren.
- Die extrahierten Informationen werden verwendet, um die lokalen JSON-Datenblätter nach dem passenden Lager zu durchsuchen.
- Sobald das Lager gefunden ist, werden die angeforderten Attribute aus den Daten abgerufen.
- Die Antwort wird in natürlicher Sprache formuliert und dem Benutzer präsentiert.
- Der Kontext der aktuellen Sitzung wird aktualisiert, um Folgefragen zu ermöglichen.
Verwendung
Voraussetzungen
- .NET 8 SDK
- Azure Functions Core Tools
- Ein Azure-Abonnement (für die Bereitstellung)
Lokale Ausführung
cd SKF.ProductAssistant
func start
Beispielanfrage
POST http://localhost:7071/api/ask
Content-Type: application/json
{
"question": "Was ist die dynamische Tragzahl des Lagers 6205?",
"sessionId": "user-12345"
}
Beispielantwort
{
"answer": "Die dynamische Tragzahl (C) des Lagers 6205 beträgt 14,8 kN.",
"context": {
"bearing": "6205",
"attribute": "dynamische_tragzahl"
}
}
Datenblatt-Struktur
Die JSON-Datenblätter enthalten ein Array von Lagern mit folgender Struktur:
[
{
"typ": "6200",
"abmessungen": {
"bohrung_d": 10,
"aussendurchmesser_D": 30,
"breite_B": 9
},
"tragzahlen": {
"dynamisch_C": 5.07,
"statisch_C0": 2.36
},
"grenzdrehzahlen": {
"fett": 22000,
"öl": 30000
}
}
]
Kontextverfolgung
Der Skill führt eine Sitzungstabelle mit den letzten Interaktionen jedes Benutzers. So können Fragen wie „Und wie sieht es mit der statischen Tragzahl aus?“ gestellt werden, nachdem die dynamische Tragzahl eines Lagers angegeben wurde.
Bereitstellung
func azure functionapp publish <function-app-name>
Ersetzen Sie <function-app-name> durch den Namen Ihrer Azure Function App.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.