Diese Lösung erstellt mithilfe von RAG (Retrieval Augmented Generation) ein ChatGPT-ähnliches Frontend-Erlebnis für Ihre eigenen Dokumente. Es nutzt Azure OpenAI Service für den Zugriff auf GPT-Modelle und Azure AI Search für die Datenindizierung und den Datenabruf.
Das Backend dieser Lösung ist in Python geschrieben. Es gibt auch JavaScript- , .NET- und Java- Beispiele, die darauf basieren. Erfahren Sie mehr über die Entwicklung von KI-Apps mit Azure AI Services.
Sehen Sie sich eine Videoübersicht der App an.
Dieses Beispiel zeigt einige Ansätze zum Erstellen von ChatGPT-ähnlichen Erfahrungen mit Ihren eigenen Daten mithilfe des Retrieval Augmented Generation-Musters. Es nutzt Azure OpenAI Service für den Zugriff auf ein GPT-Modell (gpt-35-turbo) und Azure AI Search für die Datenindizierung und den Datenabruf.
Das Repo enthält Beispieldaten, sodass es vollständig ausprobiert werden kann. In dieser Beispielanwendung verwenden wir ein fiktives Unternehmen namens Contoso Electronics, und die Erfahrung ermöglicht es seinen Mitarbeitern, Fragen zu den Vorteilen, internen Richtlinien sowie Stellenbeschreibungen und Rollen zu stellen.
WICHTIG: Um dieses Beispiel bereitzustellen und auszuführen, benötigen Sie:
Microsoft.Authorization/roleAssignments/write
Berechtigungen verfügen, z. B. „Rollenbasierter Zugriffskontrolladministrator“, „Benutzerzugriffsadministrator“ oder „Besitzer“. Wenn Sie nicht über Berechtigungen auf Abonnementebene verfügen, müssen Sie RBAC für eine vorhandene Ressourcengruppe erhalten und die Bereitstellung in dieser vorhandenen Gruppe durchführen.Microsoft.Resources/deployments/write
Berechtigungen auf Abonnementebene.Die Preise variieren je nach Region und Nutzung, daher ist es nicht möglich, die genauen Kosten für Ihre Nutzung vorherzusagen. Sie können jedoch den Azure-Preisrechner für die unten aufgeführten Ressourcen ausprobieren.
Um die Kosten zu senken, können Sie für verschiedene Dienste auf kostenlose SKUs umsteigen, diese SKUs unterliegen jedoch Einschränkungen. Weitere Einzelheiten finden Sie in diesem Leitfaden zur Bereitstellung mit minimalen Kosten.
azd down
ausführen.
Sie haben mehrere Möglichkeiten, dieses Projekt einzurichten. Der einfachste Weg zum Einstieg ist GitHub Codespaces, da es alle Tools für Sie einrichtet, Sie können es aber bei Bedarf auch lokal einrichten.
Sie können dieses Repo virtuell ausführen, indem Sie GitHub Codespaces verwenden, wodurch ein webbasierter VS-Code in Ihrem Browser geöffnet wird:
Sobald der Codespace geöffnet ist (dies kann mehrere Minuten dauern), öffnen Sie ein Terminalfenster.
Eine verwandte Option ist VS Code Dev Containers, die das Projekt in Ihrem lokalen VS Code mithilfe der Dev Containers-Erweiterung öffnet:
Starten Sie Docker Desktop (installieren Sie es, falls noch nicht installiert).
Öffnen Sie das Projekt:
Öffnen Sie im sich öffnenden VS-Code-Fenster ein Terminalfenster, sobald die Projektdateien angezeigt werden (dies kann mehrere Minuten dauern).
Installieren Sie die erforderlichen Tools:
python --version
von der Konsole aus ausführen können. Unter Ubuntu müssen Sie möglicherweise sudo apt install python-is-python3
ausführen, um python
mit python3
zu verknüpfen.pwsh.exe
von einem PowerShell-Terminal aus ausführen können. Wenn dies fehlschlägt, müssen Sie wahrscheinlich PowerShell aktualisieren.Erstellen Sie einen neuen Ordner und wechseln Sie im Terminal dorthin.
Führen Sie diesen Befehl aus, um den Projektcode herunterzuladen:
azd init -t azure-search-openai-demo
Beachten Sie, dass dieser Befehl ein Git-Repository initialisiert, sodass Sie dieses Repository nicht klonen müssen.
Mit den folgenden Schritten werden Azure-Ressourcen bereitgestellt und der Anwendungscode in Azure Container Apps bereitgestellt. Um stattdessen eine Bereitstellung für Azure App Service durchzuführen, folgen Sie der App Service-Bereitstellungsanleitung.
Melden Sie sich bei Ihrem Azure-Konto an:
azd auth login
Für GitHub Codespaces-Benutzer: Wenn der vorherige Befehl fehlschlägt, versuchen Sie Folgendes:
azd auth login --use-device-code
Erstellen Sie eine neue Azd-Umgebung:
azd env new
Geben Sie einen Namen ein, der für die Ressourcengruppe verwendet wird. Dadurch wird ein neuer Ordner im .azure
-Ordner erstellt und als aktive Umgebung für alle künftigen Aufrufe von azd
festgelegt.
(Optional) Dies ist der Punkt, an dem Sie die Bereitstellung anpassen können, indem Sie Umgebungsvariablen festlegen, um vorhandene Ressourcen zu verwenden, optionale Funktionen (wie Authentifizierung oder Vision) zu aktivieren oder auf kostenlosen Ebenen bereitzustellen.
Führen Sie azd up
aus – Dadurch werden Azure-Ressourcen bereitgestellt und dieses Beispiel für diese Ressourcen bereitgestellt, einschließlich der Erstellung des Suchindex basierend auf den im Ordner ./data
gefundenen Dateien.
azd down
herunterfahren oder die Ressourcen manuell löschen, um unnötige Ausgaben zu vermeiden.Nachdem die Anwendung erfolgreich bereitgestellt wurde, wird auf der Konsole eine URL angezeigt. Klicken Sie auf diese URL, um mit der Anwendung in Ihrem Browser zu interagieren. Es wird wie folgt aussehen:
HINWEIS: Es kann 5–10 Minuten dauern, bis die Anwendung vollständig bereitgestellt ist, nachdem „ERFOLGREICH“ angezeigt wird. Wenn Sie einen „Python Developer“-Begrüßungsbildschirm oder eine Fehlerseite sehen, warten Sie etwas und aktualisieren Sie die Seite.
Wenn Sie nur den Backend-/Frontend-Code im app
Ordner geändert haben, müssen Sie die Azure-Ressourcen nicht erneut bereitstellen. Sie können einfach Folgendes ausführen:
azd deploy
Wenn Sie die Infrastrukturdateien (Ordner infra
oder azure.yaml
) geändert haben, müssen Sie die Azure-Ressourcen erneut bereitstellen. Sie können dies tun, indem Sie Folgendes ausführen:
azd up
Um einer anderen Person Zugriff auf eine vollständig bereitgestellte und vorhandene Umgebung zu gewähren, können entweder Sie oder die andere Person die folgenden Schritte ausführen:
azd init -t azure-search-openai-demo
aus oder klonen Sie dieses Repository.azd env refresh -e {environment name}
aus. Sie benötigen den azd-Umgebungsnamen, die Abonnement-ID und den Speicherort, um diesen Befehl auszuführen. Sie finden diese Werte in Ihrer Datei .azure/{env name}/.env
. Dadurch wird .env
Datei ihrer azd-Umgebung mit allen Einstellungen gefüllt, die zum lokalen Ausführen der App erforderlich sind.AZURE_PRINCIPAL_ID
entweder in dieser .env
Datei oder in der aktiven Shell auf ihre Azure-ID fest, die sie mit az ad signed-in-user show
abrufen können../scripts/roles.ps1
oder .scripts/roles.sh
aus, um dem Benutzer alle erforderlichen Rollen zuzuweisen. Wenn sie nicht über die erforderliche Berechtigung zum Erstellen von Rollen im Abonnement verfügen, müssen Sie möglicherweise dieses Skript für sie ausführen. Sobald das Skript ausgeführt wird, sollten sie in der Lage sein, die App lokal auszuführen. Sie können den Befehl erst lokal ausführen , nachdem Sie den Befehl azd up
erfolgreich ausgeführt haben. Wenn Sie dies noch nicht getan haben, befolgen Sie die oben genannten Bereitstellungsschritte.
azd auth login
ausapp
./start.ps1
oder ./start.sh
aus oder führen Sie die „VS-Code-Aufgabe: App starten“ aus, um das Projekt lokal zu starten.Weitere Tipps finden Sie im lokalen Entwicklungsleitfaden.
Sobald Sie in der Web-App sind:
So bereinigen Sie alle von diesem Beispiel erstellten Ressourcen:
azd down
y
einy
einDie Ressourcengruppe und alle Ressourcen werden gelöscht.
Neben den folgenden Tipps finden Sie im Ordner „Docs“ eine ausführliche Dokumentation.
Sobald Sie die App erfolgreich bereitgestellt haben, können Sie damit beginnen, sie an Ihre Bedürfnisse anzupassen: Ändern Sie den Text, optimieren Sie die Eingabeaufforderungen und ersetzen Sie die Daten. Weitere Einzelheiten finden Sie im Leitfaden zur App-Anpassung sowie im Leitfaden zur Datenerfassung.
Standardmäßig verwenden bereitgestellte Apps Application Insights für die Nachverfolgung jeder Anforderung sowie für die Protokollierung von Fehlern.
Um die Leistungsdaten anzuzeigen, gehen Sie zur Application Insights-Ressource in Ihrer Ressourcengruppe, klicken Sie auf das Blatt „Untersuchen -> Leistung“ und navigieren Sie zu einer beliebigen HTTP-Anforderung, um die Zeitdaten anzuzeigen. Um die Leistung von Chat-Anfragen zu überprüfen, verwenden Sie die Schaltfläche „Drill into Samples“, um End-to-End-Traces aller API-Aufrufe anzuzeigen, die für jede Chat-Anfrage durchgeführt wurden:
Um Ausnahmen und Serverfehler anzuzeigen, navigieren Sie zum Blatt „Untersuchen -> Fehler“ und verwenden Sie die Filtertools, um eine bestimmte Ausnahme zu finden. Auf der rechten Seite sehen Sie Python-Stack-Traces.
Sie können Diagrammzusammenfassungen auch in einem Dashboard anzeigen, indem Sie den folgenden Befehl ausführen:
azd monitor
Dieses Beispiel soll als Ausgangspunkt für Ihre eigene Produktionsanwendung dienen. Sie sollten jedoch vor der Bereitstellung in der Produktion eine gründliche Überprüfung der Sicherheit und Leistung durchführen. Weitere Informationen finden Sie in unserem Produktionsleitfaden.
Hier sind die häufigsten Fehlerszenarien und Lösungen:
Das Abonnement ( AZURE_SUBSCRIPTION_ID
) hat keinen Zugriff auf den Azure OpenAI-Dienst. Bitte stellen Sie sicher, dass AZURE_SUBSCRIPTION_ID
mit der im OpenAI-Zugriffsanforderungsprozess angegebenen ID übereinstimmt.
Sie versuchen, Ressourcen in Regionen zu erstellen, die nicht für Azure OpenAI aktiviert sind (z. B. Ost-USA 2 statt Ost-USA) oder in denen das Modell, das Sie verwenden möchten, nicht aktiviert ist. Sehen Sie sich diese Matrix der Modellverfügbarkeit an.
Sie haben ein Kontingent überschritten, meist die Anzahl der Ressourcen pro Region. Weitere Informationen zu Quoten und Limits finden Sie in diesem Artikel.
Es werden Konflikte angezeigt, bei denen derselbe Ressourcenname nicht zulässig ist. Das liegt wahrscheinlich daran, dass Sie das Beispiel mehrmals ausgeführt und jedes Mal die von Ihnen erstellten Ressourcen gelöscht haben, aber vergessen haben, sie zu löschen. Azure behält Ressourcen 48 Stunden lang, es sei denn, Sie bereinigen sie durch vorläufiges Löschen. Lesen Sie diesen Artikel zum Bereinigen von Ressourcen.
Wenn das prepdocs.py
-Skript ausgeführt wird, wird CERTIFICATE_VERIFY_FAILED
angezeigt. Dies ist in der Regel auf eine falsche Einrichtung der SSL-Zertifikate auf Ihrem Computer zurückzuführen. Probieren Sie die Vorschläge in dieser StackOverflow-Antwort aus.
Nachdem Sie azd up
gestartet und die Website besucht haben, wird im Browser die Meldung „404 nicht gefunden“ angezeigt. Warten Sie 10 Minuten und versuchen Sie es erneut, da es möglicherweise noch startet. Versuchen Sie dann, azd deploy
auszuführen, und warten Sie erneut. Wenn bei der bereitgestellten App immer noch Fehler auftreten und Sie sie in App Service bereitstellen, lesen Sie die Anleitung zum Debuggen von App Service-Bereitstellungen. Bitte melden Sie ein Problem, wenn die Protokolle nicht zur Behebung des Fehlers beitragen.
Dies ist ein Beispiel, das erstellt wurde, um die Funktionen moderner generativer KI-Apps und deren Erstellung in Azure zu demonstrieren. Wenn Sie Hilfe bei der Bereitstellung dieses Beispiels benötigen, posten Sie bitte in GitHub Issues. Wenn Sie ein Microsoft-Mitarbeiter sind, können Sie auch in unserem Teams-Kanal posten.
Dieses Repository wird von den Betreuern und nicht vom Microsoft-Support unterstützt. Nutzen Sie daher bitte die oben beschriebenen Supportmechanismen. Wir werden unser Bestes tun, um Ihnen zu helfen.
Hinweis: Die in dieser Demo verwendeten PDF-Dokumente enthalten Informationen, die mithilfe eines Sprachmodells (Azure OpenAI Service) generiert wurden. Die in diesen Dokumenten enthaltenen Informationen dienen nur zu Demonstrationszwecken und spiegeln nicht die Meinungen oder Überzeugungen von Microsoft wider. Microsoft gibt keinerlei ausdrückliche oder stillschweigende Zusicherungen oder Gewährleistungen hinsichtlich der Vollständigkeit, Genauigkeit, Zuverlässigkeit, Eignung oder Verfügbarkeit der in diesem Dokument enthaltenen Informationen. Alle Rechte vorbehalten bei Microsoft.