Delen via


Azure OpenAI-extensie voor Azure Functions

Belangrijk

De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.

De Azure OpenAI-extensie voor Azure Functions implementeert een set triggers en bindingen waarmee u eenvoudig functies en gedrag van Azure OpenAI in Foundry-modellen kunt integreren in de uitvoering van uw functiecode.

Azure Functions is een gebeurtenisgestuurde rekenservice die een set triggers en bindingen biedt om eenvoudig verbinding te maken met andere Azure-services.

Met de integratie tussen Azure OpenAI en Functions kunt u functies bouwen die het volgende kunnen doen:

Actie Type trigger/binding
Een standaardtekstprompt gebruiken voor voltooiing van inhoud Invoerbinding voor voltooiing van Azure OpenAI-tekst
Reageren op een assistentaanvraag om een functie aan te roepen Azure OpenAI-assistenttrigger
Een assistent maken Azure OpenAI-assistent: uitvoerbinding maken
Een assistent een bericht sturen Azure OpenAI-assistent na invoerbinding
Assistentgeschiedenis ophalen Queryinvoerbinding voor Azure OpenAI-assistent
Tekst insluitingen lezen Invoerbinding voor Azure OpenAI-insluitingen
Schrijven naar een vectordatabase Uitvoerbinding voor Azure OpenAI-insluitingen opslaan
Lezen uit een vectordatabase Azure OpenAI semantische zoekinvoerbinding

De extensie installeren

Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus in-proces of geïsoleerd werkproces dat u gebruikt in uw functie-app:

Voeg de Azure OpenAI-extensie toe aan uw project door het NuGet-pakket Microsoft.Azure.Functions.Worker.Extensions.OpenAI te installeren. Dit kunt u doen met behulp van de .NET CLI:

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

Wanneer u een vectordatabase gebruikt voor het opslaan van inhoud, moet u ook ten minste een van deze NuGet-pakketten installeren:

Bundel installeren

U kunt de preview-extensie toevoegen door de volgende code toe te voegen aan of te vervangen in uw host.json bestand, die specifiek is gericht op een preview-versie van de 4.x-bundel die de OpenAI-extensie bevat:

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

Verbinding maken met OpenAI

Als u de Azure OpenAI-bindingsextensie wilt gebruiken, moet u een verbinding met OpenAI opgeven. Deze verbinding wordt gedefinieerd met toepassingsinstellingen en de AIConnectionName eigenschap van de trigger of binding. U kunt ook omgevingsvariabelen gebruiken om verbindingen op basis van sleutels te definiëren.

U wordt aangeraden beheerde identiteitsverbindingen en de AIConnectionName eigenschap te gebruiken.

De OpenAI-bindingen hebben een AIConnectionName eigenschap die u kunt gebruiken om de <ConnectionNamePrefix> voor deze groep app-instellingen op te geven waarmee de verbinding met Azure OpenAI wordt gedefinieerd:

Naam instelling Beschrijving
<CONNECTION_NAME_PREFIX>__endpoint Hiermee stelt u het URI-eindpunt van de Azure OpenAI in Foundry-modellen in. Deze instelling is altijd vereist.
<CONNECTION_NAME_PREFIX>__clientId Hiermee stelt u de specifieke door de gebruiker toegewezen identiteit in die moet worden gebruikt bij het verkrijgen van een toegangstoken. Vereist dat deze <CONNECTION_NAME_PREFIX>__credential is ingesteld op managedidentity. De eigenschap accepteert een client-id die overeenkomt met een door de gebruiker toegewezen identiteit die aan de toepassing is toegewezen. Het is ongeldig om zowel een resource-id als een client-id op te geven. Als dit niet is opgegeven, wordt de door het systeem toegewezen identiteit gebruikt. Deze eigenschap wordt anders gebruikt in lokale ontwikkelscenario's, wanneer credential deze niet moeten worden ingesteld.
<CONNECTION_NAME_PREFIX>__credential Hiermee definieert u hoe een toegangstoken wordt verkregen voor de verbinding. Gebruiken managedidentity voor verificatie van beheerde identiteiten. Deze waarde is alleen geldig wanneer een beheerde identiteit beschikbaar is in de hostingomgeving.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Wanneer credential deze eigenschap is ingesteld managedidentityop, kan deze eigenschap worden ingesteld om de resource-id op te geven die moet worden gebruikt bij het verkrijgen van een token. De eigenschap accepteert een resource-id die overeenkomt met de resource-id van de door de gebruiker gedefinieerde beheerde identiteit. Het is ongeldig om zowel een resource-id als een client-id op te geven. Als er geen van beide zijn opgegeven, wordt de door het systeem toegewezen identiteit gebruikt. Deze eigenschap wordt anders gebruikt in lokale ontwikkelscenario's, wanneer credential deze niet moeten worden ingesteld.
<CONNECTION_NAME_PREFIX>__key Hiermee stelt u de gedeelde geheime sleutel in die is vereist voor toegang tot het eindpunt van Azure OpenAI met behulp van verificatie op basis van sleutels. Als best practice voor beveiliging moet u altijd Microsoft Entra ID gebruiken met beheerde identiteiten voor verificatie.

Houd rekening met deze verbindingsinstellingen voor beheerde identiteiten wanneer de AIConnectionName eigenschap is ingesteld op myAzureOpenAI:

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

Tijdens runtime worden deze instellingen gezamenlijk door de host geïnterpreteerd als één myAzureOpenAI instelling als volgt:

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

Wanneer u beheerde identiteiten gebruikt, moet u uw identiteit toevoegen aan de gebruikersrol Cognitive Services OpenAI .

Wanneer u lokaal werkt, moet u deze instellingen toevoegen aan het local.settings.json projectbestand. Zie Lokale ontwikkeling met op identiteit gebaseerde verbindingen voor meer informatie.

Zie Werken met toepassingsinstellingen voor meer informatie.