Dieses Repo enthält ein Beispiel für die Implementierung von RAG-Support in Anwendungen, die Voice als Benutzeroberfläche verwenden, die von der GPT-4O-Echtzeit-API für Audio betrieben wird. Wir beschreiben das Muster in diesem Blog -Beitrag ausführlicher und Sie können diese Beispiel -App in diesem kurzen Video in Aktion sehen.
Der RTClient in der Frontend erhält die Audioeingabe, sendet diese an das Python-Backend, das ein RTMiddleTier Objekt verwendet, um mit der Azure OpenAI-Echtzeit-API zu verknüpfen und ein Tool zur Suche nach Azure AI-Suche zu finden.

Dieses Repository enthält Infrastruktur als Code und eine Dockerfile , um die App für Azure -Container -Apps bereitzustellen. Es kann jedoch auch lokal ausgeführt werden, solange Azure AI -Suche und Azure OpenAI -Dienste konfiguriert sind.
Sie haben ein paar Optionen für den Einstieg mit dieser Vorlage. Der schnellste Weg, um loszulegen, sind Github -Codenspace, da alle Tools für Sie eingerichtet werden, aber Sie können es auch lokal einrichten. Sie können auch einen VS -Code -Entwickler -Container verwenden
Sie können dieses Repo virtuell mit GitHub-Codespazis ausführen, mit denen ein webbasiertes VS-Code in Ihrem Browser geöffnet wird:
Sobald der Codespace geöffnet ist (dies kann einige Minuten dauern), öffnen Sie ein neues Terminal und setzen Sie die App bereit.
Sie können das Projekt in Ihrem lokalen VS -Code -Dev -Container mit der Dev Containers -Erweiterung ausführen:
Starten Sie Docker Desktop (installieren Sie ihn, wenn nicht bereits installiert).
Das Projekt öffnen:
Im VS -Codefenster, das sich öffnet, öffnen Sie nach dem Auftauchen der Projektdateien (dies kann einige Minuten dauern) ein neues Terminal und fahren Sie mit der Bereitstellung der App fort.
Installieren Sie die erforderlichen Werkzeuge:
python --version aus der Konsole durchführen können. Auf Ubuntu müssen Sie möglicherweise sudo apt install python-is-python3 um python mit python3 zu verknüpfen. Klon The Repo ( git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio )
Fahren Sie mit dem nächsten Abschnitt fort, um die App bereitzustellen.
In den folgenden Schritten werden Azure -Ressourcen bereitgestellt und den Anwendungscode in Azure -Container -Apps bereitgestellt.
Melden Sie sich bei Ihrem Azure -Konto an:
azd auth loginVersuchen Sie:
azd auth login --use-device-codeErstellen Sie eine neue AZD -Umgebung:
azd env new Geben Sie einen Namen ein, der für die Ressourcengruppe verwendet wird. Dadurch wird im Ordner .azure einen neuen Ordner erstellt und als aktive Umgebung für alle Anrufe bei azd in Zukunft festgelegt.
(Optional) Dies ist der Punkt, an dem Sie die Bereitstellung anpassen können, indem Sie AZD -Umgebungsvariablen festlegen, um vorhandene Dienste zu verwenden oder die Sprachauswahl anzupassen.
Führen Sie diesen einzelnen Befehl aus, um die Ressourcen bereitzustellen, den Code bereitzustellen und die integrierte Vektorisierung für die Beispieldaten einzurichten:
azd upazd down oder die Ressourcen manuell löschen, um unnötige Ausgaben zu vermeiden.Nachdem die Anwendung erfolgreich bereitgestellt wurde, wird eine URL in der Konsole gedruckt. Navigieren Sie zu dieser URL, um mit der App in Ihrem Browser zu interagieren. Um die App auszuprobieren, klicken Sie auf die Schaltfläche "Konversationsstart", sagen Sie "Hallo" und stellen Sie dann eine Frage zu Ihren Daten wie "Wie lautet die Whistleblower -Richtlinie für die Contoso -Elektronik?" Sie können die App jetzt auch lokal ausführen, indem Sie den Anweisungen im nächsten Abschnitt folgen.
Sie können diese App lokal mit den Azure -Diensten ausführen, die Sie durch Befolgen der Bereitstellungsanweisungen oder durch Hinweis auf die lokale App auf bereits vorhandene Dienste.
Wenn Sie mit azd up bereitgestellt werden, sollten Sie eine app/backend/.env -Datei mit den erforderlichen Umgebungsvariablen sehen.
Wenn Sie azd up nicht verwendet haben, müssen Sie app/backend/.env -Datei mit den folgenden Umgebungsvariablen erstellen:
AZURE_OPENAI_ENDPOINT=wss:// < your instance name > .openai.azure.com
AZURE_OPENAI_REALTIME_DEPLOYMENT=gpt-4o-realtime-preview
AZURE_OPENAI_REALTIME_VOICE_CHOICE= < choose one: echo, alloy, shimmer >
AZURE_OPENAI_API_KEY= < your api key >
AZURE_SEARCH_ENDPOINT=https:// < your service name > .search.windows.net
AZURE_SEARCH_INDEX= < your index name >
AZURE_SEARCH_API_KEY= < your api key >Um die Entra -ID zu verwenden (Ihr Benutzer beim lokalen Ausführen, verwaltete Identität beim Bereitstellen) setzen die Schlüssel einfach nicht fest.
Führen Sie diesen Befehl aus, um die App zu starten:
Fenster:
pwsh .scriptsstart.ps1Linux/Mac:
./scripts/start.shDie App ist unter http: // localhost: 8765 verfügbar.
Sobald die App ausgeführt wird, sollten Sie beim Navigieren zur URL den Startbildschirm der App sehen: 
Um die App auszuprobieren, klicken Sie auf die Schaltfläche "Konversationsstart", sagen Sie "Hallo" und stellen Sie dann eine Frage zu Ihren Daten wie "Wie lautet die Whistleblower -Richtlinie für die Contoso -Elektronik?"
Die Preisgestaltung variiert je nach Region und Verwendung, sodass es nicht möglich ist, genaue Kosten für Ihre Verwendung vorherzusagen. Sie können jedoch den Azure Pricing -Rechner für die folgenden Ressourcen ausprobieren.
Um die Kosten zu senken, können Sie für verschiedene Dienstleistungen auf kostenlose SKUs wechseln, diese SKUs haben jedoch Einschränkungen.
azd down .
Diese Vorlage verwendet die verwaltete Identität, um die Notwendigkeit von Entwicklern zu beseitigen, diese Anmeldeinformationen zu verwalten. Anwendungen können verwaltete Identitäten verwenden, um Microsoft Entra -Token zu erhalten, ohne Anmeldeinformationen verwalten zu müssen. Wenn Sie die besten Verfahren in Ihrem Repo sicherstellen, empfehlen wir jedem, Lösungen basierend auf unseren Vorlagen zu erstellen, sicherzustellen, dass die Einstellung des Github Secret Scanning in Ihren Repos aktiviert ist.
Beispieldaten: Die in dieser Demo verwendeten PDF -Dokumente enthalten Informationen, die mit einem Sprachmodell (Azure OpenAI -Dienst) generiert wurden. Die in diesen Dokumenten enthaltenen Informationen dienen nur zu Demonstrationszwecken und spiegeln nicht die Meinungen oder Überzeugungen von Microsoft wider. Microsoft gibt keine Zusicherungen oder Garantien jeglicher Art ausdrücklich oder stillschweigend über die Vollständigkeit, Genauigkeit, Zuverlässigkeit, Eignung oder Verfügbarkeit in Bezug auf die in diesem Dokument enthaltenen Informationen aus. Alle Rechte vorbehalten Microsoft.