Compartilhar via


Extensão do OpenAI do Azure para Azure Functions

Importante

Atualmente, a extensão do OpenAI do Azure para Azure Functions está em versão prévia.

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 de Fundimento 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 facilitar a conexão com outros serviços do Azure.

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

Ação Tipo de gatilho/associação
Usar um prompt de texto padrão para conclusão de conteúdo Associação de entrada de preenchimento de texto do OpenAI do Azure
Responder a uma solicitação do assistente para chamar uma função Gatilho do assistente do OpenAI do Azure
Criar um assistente Associação de saída de criação do assistente do OpenAI do Azure
Enviar mensagem para um assistente Associação de entrada de postagem do assistente do OpenAI do Azure
Obter histórico do assistente Associação de entrada de consulta do assistente do OpenAI do Azure
Ler incorporações de texto Associação de entrada de incorporações do OpenAI do Azure
Gravar em um banco de dados de vetores Associação de saída do repositório de incorporações do OpenAI do Azure
Ler de um banco de dados de vetores Associação de entrada de pesquisa semântica do OpenAI do Azure

Instalar a extensão

O pacote NuGet de extensão instalado depende do processo ou do processo de trabalho isolado do C# que você estiver usando no seu aplicativo de funções:

Adicione a extensão do 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 de vetores para armazenar conteúdo, instale também pelo menos um desses pacotes NuGet:

Instalar pacote

Para poder usar essa extensão de associação de visualização em seu aplicativo, você deve referenciar um pacote de extensão de visualização que a inclua.

Adicione ou substitua o seguinte código em seu host.json arquivo, que tem como destino especificamente a versão prévia 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 associaçã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 da associação. Você também pode usar variáveis de ambiente para definir conexões baseadas em chave.

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

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

Nome da configuração Descrição
<CONNECTION_NAME_PREFIX>__endpoint Define o ponto de extremidade de URI do Azure OpenAI em Modelos de Fundimento. 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 uma 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 especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido.
<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 estiver definido como managedidentity, essa propriedade pode ser definida para especificar o identificador de recurso a ser usado na obtenção de um token. A propriedade aceita um identificador de recurso correspondente à ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar uma ID de recurso e uma ID de cliente. Se nenhuma delas for especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido.
<CONNECTION_NAME_PREFIX>__key Define a chave de segredo compartilhada 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ê sempre deve usar a ID do Microsoft Entra com identidades gerenciadas para autenticação.

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

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

No runtime, 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, adicione 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, confira Trabalhar com configurações de aplicativo.