Udostępnij za pomocą


Rozszerzenie Azure OpenAI dla usługi Azure Functions

Ważne

Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.

Rozszerzenie Azure OpenAI dla usługi Azure Functions implementuje zestaw wyzwalaczy i powiązań, które umożliwiają łatwe integrowanie funkcji i zachowań usługi Azure OpenAI w modelach foundry do wykonywania kodu funkcji.

Azure Functions to oparta na zdarzeniach usługa obliczeniowa, która udostępnia zestaw wyzwalaczy i powiązań umożliwiających łatwe łączenie się z innymi usługami platformy Azure.

Dzięki integracji między usługami Azure OpenAI i Functions można tworzyć funkcje, które mogą:

Akcja Typ wyzwalacza/powiązania
Używanie standardowego monitu tekstowego o uzupełnianie zawartości Powiązanie wejściowe uzupełniania tekstu w usłudze Azure OpenAI
Odpowiadanie na żądanie asystenta w celu wywołania funkcji Wyzwalacz asystenta usługi Azure OpenAI
Tworzenie asystenta Asystent usługi Azure OpenAI — tworzenie powiązania wyjściowego
Komunikat asystenta Asystent usługi Azure OpenAI po powiązaniu wejściowym
Uzyskiwanie historii asystenta Powiązanie danych wejściowych zapytań asystenta usługi Azure OpenAI
Osadzanie tekstu do odczytu Osadzanie powiązania wejściowego usługi Azure OpenAI
Zapisywanie w wektorowej bazy danych Osadzanie w usłudze Azure OpenAI przechowuje powiązanie wyjściowe
Odczyt z wektorowej bazy danych Powiązanie danych wejściowych wyszukiwania semantycznego usługi Azure OpenAI

Instalowanie rozszerzenia

Instalowany pakiet NuGet rozszerzenia zależy od trybu W# w procesie lub izolowanym procesie roboczym używanym w aplikacji funkcji:

Dodaj rozszerzenie Azure OpenAI do projektu, instalując pakiet NuGet Microsoft.Azure.Functions.Worker.Extensions.OpenAI , który można zrobić przy użyciu interfejsu wiersza polecenia platformy .NET:

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

W przypadku używania wektorowej bazy danych do przechowywania zawartości należy również zainstalować co najmniej jeden z tych pakietów NuGet:

Instalowanie pakietu

Aby móc korzystać z tego rozszerzenia powiązania w wersji zapoznawczej w aplikacji, należy odwołać się do pakietu rozszerzeń w wersji zapoznawczej, który go zawiera.

Dodaj lub zastąp następujący kod w host.json pliku, który jest przeznaczony dla najnowszej wersji zapoznawczej pakietu 4.x:

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

Wybierz poprzedni link, aby sprawdzić, czy najnowsza wersja pakietu w wersji zapoznawczej zawiera rozszerzenie wersji zapoznawczej.

Nawiązywanie połączenia z usługą OpenAI

Aby użyć rozszerzenia powiązania Azure OpenAI, należy określić połączenie z usługą OpenAI. To połączenie jest definiowane przy użyciu ustawień aplikacji oraz AIConnectionName właściwości wyzwalacza lub powiązania. Można również użyć zmiennych środowiskowych do zdefiniowania połączeń opartych na kluczach.

Zalecamy używanie połączeń opartych na tożsamościach zarządzanych i AIConnectionName właściwości.

Powiązania interfejsu OpenAI mają AIConnectionName właściwość , której można użyć do określenia <ConnectionNamePrefix> dla tej grupy ustawień aplikacji definiujących połączenie z usługą Azure OpenAI:

Nazwa ustawienia opis
<CONNECTION_NAME_PREFIX>__endpoint Ustawia punkt końcowy identyfikatora URI usługi Azure OpenAI w modelach usługi Foundry. To ustawienie jest zawsze wymagane.
<CONNECTION_NAME_PREFIX>__clientId Ustawia określoną tożsamość przypisaną przez użytkownika do użycia podczas uzyskiwania tokenu dostępu. Wymaga, aby <CONNECTION_NAME_PREFIX>__credential było ustawione na managedidentity. Właściwość akceptuje identyfikator klienta odpowiadający tożsamości przypisanej przez użytkownika do aplikacji. Jest to nieprawidłowe określenie zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać.
<CONNECTION_NAME_PREFIX>__credential Definiuje sposób uzyskiwania tokenu dostępu dla połączenia. Służy managedidentity do uwierzytelniania tożsamości zarządzanej. Ta wartość jest prawidłowa tylko wtedy, gdy tożsamość zarządzana jest dostępna w środowisku hostingu.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Gdy credential jest ustawiona managedidentitywartość , tę właściwość można ustawić, aby określić identyfikator zasobu, który ma być używany podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator zasobu odpowiadający identyfikatorowi zasobu tożsamości zarządzanej zdefiniowanej przez użytkownika. Nie można określić zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli żadna z nich nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać.
<CONNECTION_NAME_PREFIX>__key Ustawia wspólny klucz tajny wymagany do uzyskania dostępu do punktu końcowego usługi Azure OpenAI przy użyciu uwierzytelniania opartego na kluczach. Najlepszym rozwiązaniem w zakresie zabezpieczeń jest zawsze użycie identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi do uwierzytelniania.

Rozważ te ustawienia połączenia tożsamości zarządzanej, gdy AIConnectionName właściwość jest ustawiona na myAzureOpenAI:

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

W czasie wykonywania te ustawienia są wspólnie interpretowane przez hosta jako jedno myAzureOpenAI ustawienie w następujący sposób:

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

W przypadku korzystania z tożsamości zarządzanych pamiętaj o dodaniu tożsamości do roli użytkownika openAI usług Cognitive Services .

Podczas uruchamiania lokalnego należy dodać te ustawienia do pliku projektu local.settings.json . Aby uzyskać więcej informacji, zobacz Programowanie lokalne przy użyciu połączeń opartych na tożsamościach.

Aby uzyskać więcej informacji, zobacz Praca z ustawieniami aplikacji.