Partilhar via


Extensão do Azure OpenAI para Azure Functions

Importante

A extensão do Azure OpenAI para o Azure Functions está atualmente em visualização.

A extensão do Azure OpenAI para Azure Functions implementa um conjunto de gatilhos e associações que permitem integrar facilmente recursos e comportamentos do Azure OpenAI em Modelos do Foundry em suas execuções de código de função.

O Azure Functions é um serviço de computação controlado por eventos que fornece um conjunto de gatilhos e associações para se conectar facilmente a outros serviços do Azure.

Com a integração entre o Azure OpenAI e o Functions, você pode criar funções que podem:

Ação Tipo de gatilho/ligação
Usar um prompt de texto padrão para conclusão de conteúdo Vinculação de entrada de conclusão de texto do Azure OpenAI
Responder a um pedido de assistente para chamar uma função Gatilho do assistente do Azure OpenAI
Criar um assistente Assistente do Azure OpenAI criar ligação de saída
Envie uma mensagem a um assistente Assistente do Azure OpenAI após vinculação de entrada
Obter histórico do assistente Vinculação de entrada de consulta do assistente do Azure OpenAI
Ler incorporações de texto Azure OpenAI incorpora vinculação de entrada
Gravar em um banco de dados vetorial Azure OpenAI incorpora vinculação de saída de loja
Ler a partir de uma base de dados vetorial Vinculação de entrada de pesquisa semântica do Azure OpenAI

Instalar a extensão

O pacote NuGet de extensão que você instala depende do processo de trabalho isolado ou em processo do modo C# que você está usando em seu aplicativo de função:

Adicione a extensão OpenAI do Azure ao seu projeto instalando o pacote NuGet Microsoft.Azure.Functions.Worker.Extensions.OpenAI, o que você pode fazer usando a CLI do .NET:

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

Ao usar um banco de dados vetorial para armazenar conteúdo, você também deve instalar pelo menos um destes pacotes NuGet:

Instalar pacote

Para poder usar essa extensão de vinculação de visualização em seu aplicativo, você deve fazer referência a um pacote de extensão de visualização que a inclua.

Adicione ou substitua o seguinte código em seu host.json arquivo, que visa especificamente a versão de visualização mais recente do pacote 4.x:

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

Selecione o link anterior para verificar se a versão mais recente do pacote de visualização contém a extensão de visualização.

Conectando-se ao OpenAI

Para usar a extensão de vinculação do Azure OpenAI, você precisa especificar uma conexão com o OpenAI. Essa conexão é definida usando as configurações do aplicativo e a AIConnectionName propriedade do gatilho ou ligação. Você também pode usar variáveis de ambiente para definir conexões baseadas em chave.

Recomendamos que você use conexões gerenciadas baseadas em identidade e a AIConnectionName propriedade.

As associações OpenAI têm uma AIConnectionName propriedade que você pode usar para especificar o <ConnectionNamePrefix> para este grupo de configurações de aplicativo que definem a conexão com o Azure OpenAI:

Nome da definição Descrição
<CONNECTION_NAME_PREFIX>__endpoint Define o ponto de extremidade URI do Azure OpenAI em modelos de fundição. Essa configuração é sempre necessária.
<CONNECTION_NAME_PREFIX>__clientId Define a identidade específica atribuída pelo usuário a ser usada ao obter um token de acesso. Requer que <CONNECTION_NAME_PREFIX>__credential esteja definido como managedidentity. A propriedade aceita um ID de cliente correspondente a uma identidade atribuída pelo usuário atribuída ao aplicativo. É inválido especificar uma ID de recurso e uma ID de cliente. Se não for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida.
<CONNECTION_NAME_PREFIX>__credential Define como um token de acesso é obtido para a conexão. Use managedidentity para autenticação de identidade gerenciada. Esse valor só é válido quando uma identidade gerenciada está disponível no ambiente de hospedagem.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar o Identificador de recurso a ser usado ao obter um token. A propriedade aceita um identificador de recurso correspondente ao ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar um ID de recurso e um ID de cliente. Se nenhum dos dois for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida.
<CONNECTION_NAME_PREFIX>__key Define a chave de segredo compartilhado necessária para acessar o ponto de extremidade do Azure OpenAI usando a autenticação baseada em chave. Como prática recomendada de segurança, você deve sempre usar o Microsoft Entra ID com identidades gerenciadas para autenticação.

Considere estas configurações de conexão de identidade gerenciada quando a AIConnectionName propriedade estiver definida como myAzureOpenAI:

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

No tempo de execução, essas configurações são interpretadas coletivamente pelo host como uma única myAzureOpenAI configuração como esta:

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

Ao usar identidades gerenciadas, certifique-se de adicionar sua identidade à função de Usuário OpenAI dos Serviços Cognitivos .

Ao executar localmente, você deve adicionar essas configurações ao arquivo de projetolocal.settings.json . Para obter mais informações, consulte Desenvolvimento local com conexões baseadas em identidade.

Para obter mais informações, consulte Trabalhar com configurações do aplicativo.