Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
A extensão do Azure OpenAI para o Funções do Azure está atualmente em visualização.
A extensão do Azure OpenAI para Funções do Azure 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 Funções do Azure é 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:
- Pesquisa de IA do Azure: Microsoft.Azure. Functions.Worker.Extensions.OpenAI.AzureAISearch
- Azure DocumentDB: Microsoft.Azure. Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Azure Cosmos DB para NoSQL: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Azure Data Explorer: Microsoft.Azure. Functions.Worker.Extensions.OpenAI.Kusto
Instalar pacote
Pode adicionar a extensão de pré-visualização adicionando ou substituindo o seguinte código no seu host.json ficheiro, que visa especificamente uma versão de pré-visualização do pacote 4.x que contém a extensão OpenAI:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.*, 5.0.0)"
}
}
O Go não é atualmente suportado para esta funcionalidade.
Connections
Para usar a extensão de ligação Azure OpenAI, precisa de especificar uma ligação a uma definição de modelo OpenAI. Defina a ligação do modelo OpenAI nas suas ligações usando uma destas abordagens:
- Use a
AIConnectionNamepropriedade binding (preferida para Azure OpenAI). - Definir
AZURE_OPENAI_ENDPOINTeAZURE_OPENAI_KEYnas definições da aplicação (para Azure OpenAI). - Definir apenas
Open_API_Keynas definições da aplicação (parahttps://api.openai.com).
A forma como se define a ligação depende tanto da API do modelo como do método de autenticação, conforme indicado na tabela seguinte:
| API de Autenticação/Modelo | Azure OpenAI | OpenAI (https://api.openai.com) |
|---|---|---|
| Ligação de identidade gerida | AIConnectionName |
Não suportado |
| Referência ao Key Vault | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
| Referência de configuração da aplicação | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
| Segredo partilhado | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
Use ligações geridas baseadas em identidade e a propriedade AIConnectionName .
Quando usa AIConnectionName, o valor desta definição de propriedade depende do tipo de ligação:
-
Ligação de identidade gerida: A
AIConnectionNamepropriedade é<CONNECTION_NAME_PREFIX>partilhada por um grupo de definições que, em conjunto, definem uma ligação baseada em identidade ao Azure OpenAI. Para mais informações, consulte Definir ligações de identidade. -
Referência Key Vault: A
AIConnectionNamedefinição de propriedade devolve uma referência Azure Key Vault ao local onde a chave API é mantida centralmente. Para mais informações, consulte Definir ligações ao Key Vault. -
Referência App Configuration: A
AIConnectionNamedefinição de propriedade devolve uma referência Azure App Configuration que devolve uma chave API ou uma referência ao Key Vault. Para mais informações, consulte Azure App Configuration no artigo de ligações. -
Chave API: A
AIConnectionNamedefinição de propriedade resolve para as definições da aplicação que contêm diretamente o endpoint e a chave. Como as chaves partilhadas podem ser comprometidas, utilize ligações de identidade geridas sempre que possível. Para mais informações, veja Definir ligações.
Para saber mais sobre ligações de bindings, consulte Gerir ligações no Funções do Azure.
As ligações OpenAI incluem uma AIConnectionName propriedade que pode usar para especificar <ConnectionNamePrefix> o grupo de definições da aplicação que definem a ligação ao Azure OpenAI:
| Nome da definição | Descrição |
|---|---|
<CONNECTION_NAME_PREFIX>__endpoint |
Define o endpoint URI do serviço Azure OpenAI. 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 especificar esta propriedade, é usada a identidade atribuída pelo sistema. 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 está definido como managedidentity, defina esta propriedade para especificar o Identificador de recurso a usar 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 não especificar nenhum dos dois, é usada a identidade atribuída pelo sistema. 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 secreta partilhada necessária para aceder ao endpoint do serviço Azure OpenAI usando autenticação baseada em chaves. Como melhor prática de segurança, utilize sempre o Microsoft Entra ID com identidades geridas para autenticação. |
Considere estas definições de ligação de identidade gerida quando definir a AIConnectionName propriedade para myAzureOpenAI:
myAzureOpenAI__endpoint=https://contoso.openai.azure.com/myAzureOpenAI__credential=managedidentitymyAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222
Em tempo de execução, o anfitrião interpreta estas definições como uma única myAzureOpenAI definição:
"myAzureOpenAI":
{
"endpoint": "https://contoso.openai.azure.com/",
"credential": "managedidentity",
"clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}
Quando usar identidades geridas, certifique-se de adicionar a sua identidade ao papel de Utilizador OpenAI de Serviços Cognitivos .
Ao executar localmente, adicione estas definições ao ficheirolocal.settings.json projeto. 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.