Partager via


Extensions Azure OpenAI pour Azure Functions

Important

L’extension Azure OpenAI pour Azure Functions est actuellement en préversion.

L’extension Azure OpenAI pour Azure Functions implémente un ensemble de déclencheurs et de liaisons qui vous permettent d’intégrer facilement des fonctionnalités et des comportements d’Azure OpenAI dans les modèles Foundry dans vos exécutions de code de fonction.

Azure Functions est un service de calcul basé sur les événements qui fournit un ensemble de déclencheurs et de liaisons pour se connecter facilement à d’autres services Azure.

Avec l’intégration entre Azure OpenAI et Functions, vous pouvez créer des fonctions capables de :

Action Type de déclencheur/liaison
Utiliser une invite de texte standard pour une saisie semi-automatique du contenu Liaison des entrées de saisie semi-automatique de texte Azure OpenAI
Répondre à la requête d’un assistant pour appeler une fonction Déclencheur de l’Assistant Azure OpenAI
Créer un assistant Liaison de création de sorties de l’assistant Azure OpenAI
Envoyer un message à un assistant Liaison post-entrée de l’Assistant Azure OpenAI
Obtenir l’historique de l’assistant Liaison d’entrée de requête de l’assistant Azure OpenAI
Lire des incorporations de texte Liaison d’entrée d’incorporation Azure OpenAI
Écrire dans une base de données vectorielle Liaison de sortie de magasin d’incorporations Azure OpenAI
Lire à partir d’une base de données vectorielle Liaison d’entrée de recherche sémantique Azure OpenAI

Installer l’extension

Le package NuGet d’extension que vous installez dépend du mode C# in-process ou processus worker isolé que vous utilisez dans votre application de fonction :

Ajoutez l’extension Azure OpenAI à votre projet en installant le package NuGet Microsoft.Azure.Functions.Worker.Extensions.OpenAI. Vous pouvez l’effectuer à l’aide de l’interface CLI .NET :

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

Lorsque vous utilisez une base de données vectorielle pour stocker du contenu, vous devez également installer au moins l’un des packages NuGet suivants :

Installer le bundle

Pour pouvoir utiliser cette extension de liaison en préversion dans votre application, vous devez référencer un bundle d’extensions en préversion qui l’inclut.

Ajoutez ou remplacez le code suivant dans votre host.json fichier, qui cible spécifiquement la dernière préversion de l’offre groupée 4.x :

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

Sélectionnez le lien précédent pour vérifier que la dernière version de l’offre groupée en préversion contient l’extension d’aperçu.

Connexion à OpenAI

Pour utiliser l’extension de liaison Azure OpenAI, vous devez spécifier une connexion à OpenAI. Cette connexion est définie à l’aide des paramètres d’application et de la AIConnectionName propriété du déclencheur ou de la liaison. Vous pouvez également utiliser des variables d’environnement pour définir des connexions basées sur des clés.

Nous vous recommandons d’utiliser des connexions basées sur des identités managées et la AIConnectionName propriété.

Les liaisons OpenAI ont une AIConnectionName propriété que vous pouvez utiliser pour spécifier le <ConnectionNamePrefix> groupe de paramètres d’application qui définissent la connexion à Azure OpenAI :

Nom du paramètre Descriptif
<CONNECTION_NAME_PREFIX>__endpoint Définit le point de terminaison d’URI d’Azure OpenAI dans les modèles Foundry. Ce paramètre est toujours requis.
<CONNECTION_NAME_PREFIX>__clientId Définit l’identité affectée par l’utilisateur spécifique à utiliser lors de l’obtention d’un jeton d’accès. Exige que <CONNECTION_NAME_PREFIX>__credential soit défini sur managedidentity. La propriété accepte un ID client correspondant à une identité attribuée par l’utilisateur affectée à l’application. Il incorrect de spécifier à la fois un ID de la ressource et un ID client. Par défaut, l’identité affectée par le système est utilisée. Cette propriété est utilisée différemment dans des scénarios de développement local lorsque credential ne doit pas être défini.
<CONNECTION_NAME_PREFIX>__credential Définit la façon dont un jeton d’accès est obtenu pour la connexion. Utiliser managedidentity pour l’authentification d’identité managée. Cette valeur n’est valide que lorsqu’une identité managée est disponible dans l’environnement d’hébergement.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Lorsque credential a pour valeur managedidentity, cette propriété permet de spécifier l’identifiant de la ressource à utiliser lors de l’obtention d’un jeton. La propriété accepte un identifiant de ressource correspondant à l’ID de la ressource de l’identité managée définie par l’utilisateur. Il n’est pas correct de spécifier à la fois un ID de la ressource et un ID client. Si aucun des deux n’est spécifié, l’identifiant attribué par le système est utilisé. Cette propriété est utilisée différemment dans des scénarios de développement local lorsque credential ne doit pas être défini.
<CONNECTION_NAME_PREFIX>__key Définit la clé secrète partagée requise pour accéder au point de terminaison d’Azure OpenAI à l’aide de l’authentification basée sur des clés. En guise de bonne pratique de sécurité, vous devez toujours utiliser l’ID Microsoft Entra avec des identités managées pour l’authentification.

Tenez compte de ces paramètres de connexion d’identité managée quand la AIConnectionName propriété est définie sur myAzureOpenAI:

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

Au moment de l’exécution, ces paramètres sont interprétés collectivement par l’hôte comme un paramètre unique myAzureOpenAI comme suit :

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

Lorsque vous utilisez des identités managées, veillez à ajouter votre identité au rôle d’utilisateur OpenAI Cognitive Services .

Lors de l’exécution locale, vous devez ajouter ces paramètres au fichier projet local.settings.json . Pour plus d’informations, consultez Développement local avec des connexions basées sur des identités.

Pour plus d’informations, consultez Utiliser des paramètres d’application.