Freigeben über


Azure OpenAI-Erweiterung für Azure Functions

Wichtig

Die Azure OpenAI-Erweiterung für Azure Functions befindet sich derzeit in der Vorschau.

Die Azure OpenAI-Erweiterung für Azure Functions implementiert eine Reihe von Triggern und Bindungen, mit denen Sie Features und Verhaltensweisen von Azure OpenAI in Foundry Models einfach in Ihre Funktionscodeausführungen integrieren können.

Azure Functions ist ein ereignisgesteuerter Computedienst, der mehrere Trigger und Bindungen bereitstellt, um das Herstellen von Verbindungen mit anderen Azure-Diensten zu vereinfachen.

Mit der Integration zwischen Azure OpenAI und Functions können Sie Funktionen mit folgenden Fähigkeiten erstellen:

Aktion Trigger/Bindungstyp
Verwenden eines Standardtextprompts für die Vervollständigung von Inhalt Azure OpenAI-Eingabebindung für Textvervollständigung
Antworten auf eine Assistentenanforderung zum Aufrufen einer Funktion Azure OpenAI-Assistententrigger
Erstellen eines Assistenten Azure OpenAI-Ausgabebindung zum Erstellen eines Assistenten
Senden einer Nachricht an einen Assistenten Azure OpenAI-Eingabebindung zum Senden einer Nachricht an den Assistenten
Abrufen des Assistentenverlaufs Azure OpenAI-Eingabebindung zum Abfragen des Assistenten
Lesen von Texteinbettungen Azure OpenAI-Eingabebindung für Einbettungen
Schreiben in eine Vektordatenbank Azure OpenAI-Ausgabebindung zum Speichern von Einbettungen
Lesen aus einer Vektordatenbank Azure OpenAI-Eingabebindung für die semantische Suche

Installieren der Erweiterung

Das NuGet-Erweiterungspaket, das Sie installieren, hängt vom C#-Modus (In-Process oder isolierter Workerprozess) ab, den Sie in Ihrer Funktions-App verwenden:

Fügen Sie Ihrem Projekt die Azure OpenAI-Erweiterung hinzu, indem Sie das NuGet-Paket Microsoft.Azure.Functions.Worker.Extensions.OpenAI installieren. Dazu können Sie die .NET-CLI verwenden:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.OpenAI  --prerelease

Wenn Sie eine Vektordatenbank zum Speichern von Inhalten verwenden, sollten Sie auch mindestens eines der folgenden NuGet-Pakete installieren:

Installieren des Pakets

Sie können die Vorschauerweiterung hinzufügen, indem Sie den folgenden Code in Ihrer host.json Datei hinzufügen oder ersetzen, der speziell auf eine Vorschauversion des 4.x-Bundles ausgerichtet ist, das die OpenAI-Erweiterung enthält:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.*, 5.0.0)"
  }
}

Herstellen einer Verbindung mit OpenAI

Um die Azure OpenAI-Bindungserweiterung zu verwenden, müssen Sie eine Verbindung mit OpenAI angeben. Diese Verbindung wird mithilfe von Anwendungseinstellungen und der AIConnectionName Eigenschaft des Triggers oder der Bindung definiert. Sie können auch Umgebungsvariablen verwenden, um schlüsselbasierte Verbindungen zu definieren.

Es wird empfohlen, verwaltete identitätsbasierte Verbindungen und die AIConnectionName Eigenschaft zu verwenden.

Die OpenAI-Bindungen verfügen über eine AIConnectionName Eigenschaft, mit der Sie die <ConnectionNamePrefix> Für diese Gruppe von App-Einstellungen angeben können, die die Verbindung mit Azure OpenAI definieren:

Einstellungsname Beschreibung
<CONNECTION_NAME_PREFIX>__endpoint Legt den URI-Endpunkt der Azure OpenAI in Foundry Models fest. Diese Einstellung ist immer erforderlich.
<CONNECTION_NAME_PREFIX>__clientId Legt die bestimmte vom Benutzer zugewiesene Identität fest, die beim Abrufen eines Zugriffstokens verwendet werden soll. Erfordert, dass <CONNECTION_NAME_PREFIX>__credential auf managedidentity festgelegt wird. Die Eigenschaft akzeptiert eine Client-ID, die einer vom Benutzer zugewiesenen Identität entspricht, die der Anwendung zugeordnet ist. Es ist nicht möglich, sowohl eine Ressourcen-ID als auch eine Client-ID anzugeben. Wenn nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Diese Eigenschaft wird in Szenarien für die lokale Entwicklung anders verwendet, in denen credential nicht festgelegt werden darf.
<CONNECTION_NAME_PREFIX>__credential Definiert, wie ein Zugriffstoken für die Verbindung abgerufen wird. Wird für die verwaltete Identitätsauthentifizierung verwendet managedidentity . Dieser Wert ist nur gültig, wenn eine verwaltete Identität in der Hostingumgebung verfügbar ist.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Wenn credential auf managedidentity festgelegt ist, kann mit dieser Eigenschaft der Ressourcenbezeichner angegeben werden, der beim Abrufen eines Tokens verwendet werden soll. Die Eigenschaft akzeptiert einen Ressourcenbezeichner, der der Ressourcen-ID der benutzerdefinierten verwalteten Identität entspricht. Es ist nicht möglich, sowohl eine Ressourcen-ID als auch eine Client-ID anzugeben. Wenn nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Diese Eigenschaft wird in Szenarien für die lokale Entwicklung anders verwendet, in denen credential nicht festgelegt werden darf.
<CONNECTION_NAME_PREFIX>__key Legt den freigegebenen geheimen Schlüssel fest, der für den Zugriff auf den Endpunkt von Azure OpenAI mithilfe der schlüsselbasierten Authentifizierung erforderlich ist. Als bewährte Methode für die Sicherheit sollten Sie immer Die Microsoft Entra-ID mit verwalteten Identitäten für die Authentifizierung verwenden.

Berücksichtigen Sie diese Einstellungen für verwaltete Identitätsverbindung, wenn die Eigenschaft AIConnectionName auf myAzureOpenAI:

  • myAzureOpenAI__endpoint=https://contoso.openai.azure.com/
  • myAzureOpenAI__credential=managedidentity
  • myAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222

Zur Laufzeit werden diese Einstellungen gemeinsam vom Host als einzelne myAzureOpenAI Einstellung wie folgt interpretiert:

"myAzureOpenAI":
{
    "endpoint": "https://contoso.openai.azure.com/",
    "credential": "managedidentity",
    "clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}

Achten Sie bei der Verwendung verwalteter Identitäten darauf, Ihre Identität der OpenAI-Benutzerrolle "Cognitive Services" hinzuzufügen.

Wenn Sie lokal ausgeführt werden, müssen Sie diese Einstellungen der local.settings.json Projektdatei hinzufügen. Weitere Informationen finden Sie unter "Lokale Entwicklung mit identitätsbasierten Verbindungen".

Weitere Informationen finden Sie unter Verwenden von Anwendungseinstellungen.